Search in sources :

Example 6 with SysUser

use of com.hccake.ballcat.system.model.entity.SysUser in project ballcat by ballcat-projects.

the class SysUserServiceImpl method updateAvatar.

@Override
@Transactional(rollbackFor = Exception.class)
public String updateAvatar(MultipartFile file, Integer userId) throws IOException {
    Assert.isTrue(adminUserChecker.hasModifyPermission(getById(userId)), "当前用户不允许修改!");
    // 获取系统用户头像的文件名
    String objectName = "sysuser/" + userId + "/avatar/" + LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE) + StrUtil.SLASH + IdUtil.fastSimpleUUID() + StrUtil.DOT + FileUtil.extName(file.getOriginalFilename());
    objectName = fileService.upload(file.getInputStream(), objectName, file.getSize());
    SysUser sysUser = new SysUser();
    sysUser.setUserId(userId);
    sysUser.setAvatar(objectName);
    baseMapper.updateById(sysUser);
    return objectName;
}
Also used : SysUser(com.hccake.ballcat.system.model.entity.SysUser) Transactional(org.springframework.transaction.annotation.Transactional)

Example 7 with SysUser

use of com.hccake.ballcat.system.model.entity.SysUser in project ballcat by ballcat-projects.

the class SysUserController method getSysUserInfo.

/**
 * 获取指定用户的基本信息
 * @param userId 用户ID
 * @return SysUserInfo
 */
@GetMapping("/{userId}")
@PreAuthorize("@per.hasPermission('system:user:read')")
@Operation(summary = "获取指定用户的基本信息")
public R<SysUserInfo> getSysUserInfo(@PathVariable("userId") Integer userId) {
    SysUser sysUser = sysUserService.getById(userId);
    if (sysUser == null) {
        return R.ok();
    }
    SysUserInfo sysUserInfo = SysUserConverter.INSTANCE.poToInfo(sysUser);
    return R.ok(sysUserInfo);
}
Also used : SysUser(com.hccake.ballcat.system.model.entity.SysUser) SysUserInfo(com.hccake.ballcat.system.model.vo.SysUserInfo) Operation(io.swagger.v3.oas.annotations.Operation) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize)

Example 8 with SysUser

use of com.hccake.ballcat.system.model.entity.SysUser in project ballcat by ballcat-projects.

the class SysUserController method addSysUser.

/**
 * 新增用户
 * @param sysUserDTO userInfo
 * @return success/false
 */
@PostMapping
@CreateOperationLogging(msg = "新增系统用户")
@PreAuthorize("@per.hasPermission('system:user:add')")
@Operation(summary = "新增系统用户", description = "新增系统用户")
public R<Void> addSysUser(@Valid @RequestBody SysUserDTO sysUserDTO) {
    SysUser user = sysUserService.getByUsername(sysUserDTO.getUsername());
    if (user != null) {
        return R.failed(BaseResultCode.LOGIC_CHECK_ERROR, "用户名已存在");
    }
    // 明文密码
    String password = PasswordUtils.decodeAES(sysUserDTO.getPass(), securityProperties.getPasswordSecretKey());
    sysUserDTO.setPassword(password);
    return sysUserService.addSysUser(sysUserDTO) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "新增系统用户失败");
}
Also used : SysUser(com.hccake.ballcat.system.model.entity.SysUser) CreateOperationLogging(com.hccake.ballcat.common.log.operation.annotation.CreateOperationLogging) Operation(io.swagger.v3.oas.annotations.Operation) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize)

Example 9 with SysUser

use of com.hccake.ballcat.system.model.entity.SysUser in project ballcat by ballcat-projects.

the class AnnouncementLoginEventListener method onAuthenticationSuccessEvent.

/**
 * 登陆成功时间监听 用户未读公告生成
 * @param event 登陆成功 event
 */
@EventListener(AuthenticationSuccessEvent.class)
public void onAuthenticationSuccessEvent(AuthenticationSuccessEvent event) throws InterruptedException {
    AbstractAuthenticationToken source = (AbstractAuthenticationToken) event.getSource();
    Object details = source.getDetails();
    if (!(details instanceof HashMap)) {
        return;
    }
    // https://github.com/spring-projects-experimental/spring-authorization-server
    if ("password".equals(((HashMap) details).get("grant_type"))) {
        User user = (User) source.getPrincipal();
        SysUser sysUser = getSysUser(user);
        // 获取当前用户未拉取过的公告信息
        Integer userId = sysUser.getUserId();
        List<Announcement> announcements = announcementService.listUnPulled(userId);
        // 获取当前用户的各个过滤属性
        Map<Integer, Object> filterAttrs = recipientHandler.getFilterAttrs(sysUser);
        // 获取符合当前用户条件的,且接收类型包含站内的公告,保存其关联关系
        List<UserAnnouncement> userAnnouncements = announcements.stream().filter(x -> x.getReceiveMode().contains(NotifyChannelEnum.STATION.getValue())).filter(x -> filterMatched(x, filterAttrs)).map(Announcement::getId).map(id -> userAnnouncementService.prodUserAnnouncement(userId, id)).collect(Collectors.toList());
        try {
            userAnnouncementService.saveBatch(userAnnouncements);
        } catch (Exception exception) {
            log.error("用户公告保存失败:[{}]", userAnnouncements, exception);
        }
    }
}
Also used : Announcement(com.hccake.ballcat.notify.model.entity.Announcement) RequiredArgsConstructor(lombok.RequiredArgsConstructor) EventListener(org.springframework.context.event.EventListener) HashMap(java.util.HashMap) Collectors(java.util.stream.Collectors) AuthenticationSuccessEvent(org.springframework.security.authentication.event.AuthenticationSuccessEvent) NotifyChannelEnum(com.hccake.ballcat.notify.enums.NotifyChannelEnum) User(com.hccake.ballcat.common.security.userdetails.User) AnnouncementService(com.hccake.ballcat.notify.service.AnnouncementService) UserAnnouncement(com.hccake.ballcat.notify.model.entity.UserAnnouncement) Slf4j(lombok.extern.slf4j.Slf4j) Component(org.springframework.stereotype.Component) List(java.util.List) RecipientHandler(com.hccake.ballcat.notify.recipient.RecipientHandler) SysUser(com.hccake.ballcat.system.model.entity.SysUser) AbstractAuthenticationToken(org.springframework.security.authentication.AbstractAuthenticationToken) Map(java.util.Map) UserAnnouncementService(com.hccake.ballcat.notify.service.UserAnnouncementService) User(com.hccake.ballcat.common.security.userdetails.User) SysUser(com.hccake.ballcat.system.model.entity.SysUser) SysUser(com.hccake.ballcat.system.model.entity.SysUser) Announcement(com.hccake.ballcat.notify.model.entity.Announcement) UserAnnouncement(com.hccake.ballcat.notify.model.entity.UserAnnouncement) HashMap(java.util.HashMap) UserAnnouncement(com.hccake.ballcat.notify.model.entity.UserAnnouncement) AbstractAuthenticationToken(org.springframework.security.authentication.AbstractAuthenticationToken) EventListener(org.springframework.context.event.EventListener)

Example 10 with SysUser

use of com.hccake.ballcat.system.model.entity.SysUser in project ballcat by ballcat-projects.

the class MailNotifyPusher method push.

@Override
public void push(NotifyInfo notifyInfo, List<SysUser> userList) {
    String[] emails = userList.stream().map(SysUser::getEmail).filter(StrUtil::isNotBlank).toArray(String[]::new);
    // 密送群发,不展示其他收件人
    MailDetails mailDetails = new MailDetails();
    mailDetails.setShowHtml(true);
    mailDetails.setSubject(notifyInfo.getTitle());
    mailDetails.setContent(notifyInfo.getContent());
    mailDetails.setBcc(emails);
    mailSender.sendMail(mailDetails);
}
Also used : SysUser(com.hccake.ballcat.system.model.entity.SysUser) MailDetails(com.hccake.ballcat.common.mail.model.MailDetails)

Aggregations

SysUser (com.hccake.ballcat.system.model.entity.SysUser)12 Transactional (org.springframework.transaction.annotation.Transactional)3 User (com.hccake.ballcat.common.security.userdetails.User)2 UserAnnouncement (com.hccake.ballcat.notify.model.entity.UserAnnouncement)2 Operation (io.swagger.v3.oas.annotations.Operation)2 HashMap (java.util.HashMap)2 EventListener (org.springframework.context.event.EventListener)2 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)2 BusinessException (com.hccake.ballcat.common.core.exception.BusinessException)1 CreateOperationLogging (com.hccake.ballcat.common.log.operation.annotation.CreateOperationLogging)1 MailDetails (com.hccake.ballcat.common.mail.model.MailDetails)1 NotifyChannelEnum (com.hccake.ballcat.notify.enums.NotifyChannelEnum)1 NotifyInfo (com.hccake.ballcat.notify.model.domain.NotifyInfo)1 Announcement (com.hccake.ballcat.notify.model.entity.Announcement)1 RecipientHandler (com.hccake.ballcat.notify.recipient.RecipientHandler)1 AnnouncementService (com.hccake.ballcat.notify.service.AnnouncementService)1 UserAnnouncementService (com.hccake.ballcat.notify.service.UserAnnouncementService)1 UserCreatedEvent (com.hccake.ballcat.system.event.UserCreatedEvent)1 UserOrganizationChangeEvent (com.hccake.ballcat.system.event.UserOrganizationChangeEvent)1 UserInfoDTO (com.hccake.ballcat.system.model.dto.UserInfoDTO)1