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;
}
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);
}
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, "新增系统用户失败");
}
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);
}
}
}
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);
}
Aggregations