diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserJwtVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserJwtVo.java index 4f8de448..53d69c63 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserJwtVo.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserJwtVo.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.dal.model; -import cn.odboy.system.dal.dataobject.SystemUserTb; import com.alibaba.fastjson2.annotation.JSONField; import io.swagger.annotations.ApiModelProperty; import java.util.List; @@ -29,47 +28,50 @@ import org.springframework.security.core.userdetails.UserDetails; @AllArgsConstructor public class SystemUserJwtVo implements UserDetails { - @ApiModelProperty(value = "用户") private final SystemUserTb user; - @ApiModelProperty(value = "数据权限") private final List dataScopes; - @ApiModelProperty(value = "角色") private final List authorities; + @ApiModelProperty(value = "用户") + private final SystemUserVo user; + @ApiModelProperty(value = "数据权限") + private final List dataScopes; + @ApiModelProperty(value = "角色") + private final List authorities; - public Set getRoles() { - return authorities.stream().map(SystemRoleCodeVo::getAuthority).collect(Collectors.toSet()); - } + public Set getRoles() { + return authorities.stream().map(SystemRoleCodeVo::getAuthority).collect(Collectors.toSet()); + } - @Override - @JSONField(serialize = false) - public String getPassword() { - return user.getPassword(); - } + @Override + @JSONField(serialize = false) + public String getPassword() { + return user.getPassword(); + } - @Override - @JSONField(serialize = false) - public String getUsername() { - return user.getUsername(); - } + @Override + @JSONField(serialize = false) + public String getUsername() { + return user.getUsername(); + } - @Override - @JSONField(serialize = false) - public boolean isAccountNonExpired() { - return true; - } + @Override + @JSONField(serialize = false) + public boolean isAccountNonExpired() { + return true; + } - @Override - @JSONField(serialize = false) - public boolean isAccountNonLocked() { - return true; - } + @Override + @JSONField(serialize = false) + public boolean isAccountNonLocked() { + return true; + } - @Override - @JSONField(serialize = false) - public boolean isCredentialsNonExpired() { - return true; - } + @Override + @JSONField(serialize = false) + public boolean isCredentialsNonExpired() { + return true; + } - @Override - @JSONField(serialize = false) - public boolean isEnabled() { - return user.getEnabled(); - } + @Override + @JSONField(serialize = false) + public boolean isEnabled() { + return user.getEnabled(); + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/UserDetailsHandler.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/UserDetailsHandler.java index f5d235be..d7519022 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/UserDetailsHandler.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/UserDetailsHandler.java @@ -13,13 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.system.framework.permission.core.handler; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.SystemRoleCodeVo; import cn.odboy.system.dal.model.SystemUserJwtVo; +import cn.odboy.system.dal.model.SystemUserVo; import cn.odboy.system.dal.redis.SystemUserInfoDAO; import cn.odboy.system.service.SystemDataService; import cn.odboy.system.service.SystemRoleService; @@ -36,30 +35,35 @@ import org.springframework.stereotype.Service; @Slf4j @Service("userDetailsService") public class UserDetailsHandler implements UserDetailsService { - @Autowired private SystemRoleService systemRoleService; - @Autowired private SystemUserService systemUserService; - @Autowired private SystemDataService systemDataService; - @Autowired private SystemUserInfoDAO systemUserInfoDAO; - @Override - public SystemUserJwtVo loadUserByUsername(String username) { - SystemUserJwtVo userJwtVo = systemUserInfoDAO.getUserLoginInfoByUserName(username); - if (userJwtVo == null) { - SystemUserTb user = systemUserService.getUserByUsername(username); - if (user == null) { - throw new BadRequestException("用户不存在"); - } else { - if (!user.getEnabled()) { - throw new BadRequestException("账号未激活"); - } - // 获取用户的权限 - List authorities = systemRoleService.buildUserRolePermissions(user); - // 初始化JwtUserDto - userJwtVo = new SystemUserJwtVo(user, systemDataService.queryDeptIdByArgs(user), authorities); - // 添加缓存数据 - systemUserInfoDAO.saveUserLoginInfoByUserName(username, userJwtVo); - } + @Autowired + private SystemRoleService systemRoleService; + @Autowired + private SystemUserService systemUserService; + @Autowired + private SystemDataService systemDataService; + @Autowired + private SystemUserInfoDAO systemUserInfoDAO; + + @Override + public SystemUserJwtVo loadUserByUsername(String username) { + SystemUserJwtVo userJwtVo = systemUserInfoDAO.getUserLoginInfoByUserName(username); + if (userJwtVo == null) { + SystemUserVo user = systemUserService.getUserVoByUsername(username); + if (user == null) { + throw new BadRequestException("用户不存在"); + } else { + if (!user.getEnabled()) { + throw new BadRequestException("账号未激活"); } - return userJwtVo; + // 获取用户的权限 + List authorities = systemRoleService.buildUserRolePermissions(user); + // 初始化JwtUserDto + userJwtVo = new SystemUserJwtVo(user, systemDataService.queryDeptIdByArgs(user), authorities); + // 添加缓存数据 + systemUserInfoDAO.saveUserLoginInfoByUserName(username, userJwtVo); + } } + return userJwtVo; + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java index 23bd7c87..62d32455 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java @@ -66,17 +66,28 @@ import org.springframework.web.multipart.MultipartFile; @Service public class SystemUserService { - @Autowired private SystemUserMapper systemUserMapper; - @Autowired private SystemUserJobService systemUserJobService; - @Autowired private SystemUserRoleService systemUserRoleService; - @Autowired private SystemUserInfoDAO systemUserInfoDAO; - @Autowired private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO; - @Autowired private KitFileLocalUploadHelper fileUploadPathHelper; - @Autowired private SystemUserJobMapper systemUserJobMapper; - @Autowired private SystemUserRoleMapper systemUserRoleMapper; - @Autowired private SystemJobMapper systemJobMapper; - @Autowired private SystemRoleMapper systemRoleMapper; - @Autowired private SystemDeptMapper systemDeptMapper; + @Autowired + private SystemUserMapper systemUserMapper; + @Autowired + private SystemUserJobService systemUserJobService; + @Autowired + private SystemUserRoleService systemUserRoleService; + @Autowired + private SystemUserInfoDAO systemUserInfoDAO; + @Autowired + private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO; + @Autowired + private KitFileLocalUploadHelper fileUploadPathHelper; + @Autowired + private SystemUserJobMapper systemUserJobMapper; + @Autowired + private SystemUserRoleMapper systemUserRoleMapper; + @Autowired + private SystemJobMapper systemJobMapper; + @Autowired + private SystemRoleMapper systemRoleMapper; + @Autowired + private SystemDeptMapper systemDeptMapper; /** * 新增用户 @@ -401,12 +412,13 @@ public class SystemUserService { wrapper.in(SystemUserTb::getDeptId, args.getDeptIds()); } if (StrUtil.isNotBlank(args.getBlurry())) { - wrapper.and(w -> w.like(SystemUserTb::getUsername, args.getBlurry()).or() - .like(SystemUserTb::getNickName, args.getBlurry()).or() - .like(SystemUserTb::getEmail, args.getBlurry())); + wrapper.and(w -> w.like(SystemUserTb::getUsername, args.getBlurry()) + .or().like(SystemUserTb::getNickName, args.getBlurry()) + .or().like(SystemUserTb::getEmail, args.getBlurry())); } if (CollUtil.isNotEmpty(args.getCreateTime()) && args.getCreateTime().size() >= 2) { - wrapper.between(SystemUserTb::getCreateTime, args.getCreateTime().get(0), args.getCreateTime().get(1)); + wrapper.between(SystemUserTb::getCreateTime, args.getCreateTime().get(0), + args.getCreateTime().get(1)); } } wrapper.orderByDesc(SystemUserTb::getCreateTime); @@ -461,6 +473,10 @@ public class SystemUserService { return systemUserMapper.selectOne(wrapper); } + public SystemUserVo getUserVoByUsername(String username) { + return this.convertToUserVo(this.getUserByUsername(username)); + } + public long countUserByDeptIds(Set deptIds) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.in(SystemUserTb::getDeptId, deptIds); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserJwtVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserJwtVo.java index 6e7a22df..dbbd3545 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserJwtVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserJwtVo.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.dal.model; -import cn.odboy.system.dal.dataobject.SystemUserTb; import com.alibaba.fastjson2.annotation.JSONField; import io.swagger.annotations.ApiModelProperty; import java.util.List; @@ -30,7 +29,7 @@ import org.springframework.security.core.userdetails.UserDetails; public class SystemUserJwtVo implements UserDetails { @ApiModelProperty(value = "用户") - private final SystemUserTb user; + private final SystemUserVo user; @ApiModelProperty(value = "数据权限") private final List dataScopes; @ApiModelProperty(value = "角色") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/UserDetailsHandler.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/UserDetailsHandler.java index ca8a6d09..1c0c0e27 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/UserDetailsHandler.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/UserDetailsHandler.java @@ -16,9 +16,9 @@ package cn.odboy.system.framework.permission.core.handler; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.SystemRoleCodeVo; import cn.odboy.system.dal.model.SystemUserJwtVo; +import cn.odboy.system.dal.model.SystemUserVo; import cn.odboy.system.dal.redis.SystemUserInfoDAO; import cn.odboy.system.service.SystemDataService; import cn.odboy.system.service.SystemRoleService; @@ -49,7 +49,7 @@ public class UserDetailsHandler implements UserDetailsService { public SystemUserJwtVo loadUserByUsername(String username) { SystemUserJwtVo userJwtVo = systemUserInfoDAO.getUserLoginInfoByUserName(username); if (userJwtVo == null) { - SystemUserTb user = systemUserService.getUserByUsername(username); + SystemUserVo user = systemUserService.getUserVoByUsername(username); if (user == null) { throw new BadRequestException("用户不存在"); } else { diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java index 2aa9b7bf..218a94f9 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java @@ -473,6 +473,10 @@ public class SystemUserService { return systemUserMapper.selectOne(wrapper); } + public SystemUserVo getUserVoByUsername(String username) { + return this.convertToUserVo(this.getUserByUsername(username)); + } + public long countUserByDeptIds(Set deptIds) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.in(SystemUserTb::getDeptId, deptIds);