diff --git a/cutejava-front/src/views/system/user/center.vue b/cutejava-front/src/views/system/user/center.vue index 417f2d6e..bf16d427 100644 --- a/cutejava-front/src/views/system/user/center.vue +++ b/cutejava-front/src/views/system/user/center.vue @@ -104,7 +104,7 @@ diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java index fa6ff6cc..508881f8 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java @@ -54,13 +54,6 @@ public class SystemDictDetailController { return ResponseEntity.ok(systemDictDetailService.searchDictDetail(pageArgs.getArgs(), page)); } - @ApiOperation("查询多个字典详情") - @GetMapping(value = "/getDictDetailMaps") - public ResponseEntity>> getDictDetailMaps(@RequestParam String dictName) { - Map> dictMap = systemDictDetailService.getDictDetailMap(dictName); - return ResponseEntity.ok(dictMap); - } - @OperationLog @ApiOperation("新增字典详情") @PostMapping(value = "/saveDictDetail") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemRoleMapper.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemRoleMapper.java index ffe20a7d..25a566ed 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemRoleMapper.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemRoleMapper.java @@ -17,7 +17,9 @@ package cn.odboy.system.dal.mysql; import cn.odboy.system.dal.dataobject.SystemRoleTb; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 角色 Mapper @@ -27,4 +29,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface SystemRoleMapper extends BaseMapper { + List listRoleLevelByRoleIds(@Param("roleIds") List roleIds); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemUserMapper.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemUserMapper.java index 097da24b..f1ada109 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemUserMapper.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemUserMapper.java @@ -18,8 +18,10 @@ package cn.odboy.system.dal.mysql; import cn.odboy.system.dal.dataobject.SystemUserTb; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; import java.util.Set; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 用户 Mapper @@ -49,4 +51,6 @@ public interface SystemUserMapper extends BaseMapper { wrapper.set(SystemUserTb::getPassword, password); update(null, wrapper); } + + List listUsernameByIds(@Param("userIds") Set userIds); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemUserRoleMapper.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemUserRoleMapper.java index f7deb075..149b07a4 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemUserRoleMapper.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemUserRoleMapper.java @@ -18,6 +18,7 @@ package cn.odboy.system.dal.mysql; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.dataobject.SystemUserRoleTb; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; import java.util.Set; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -26,4 +27,5 @@ import org.apache.ibatis.annotations.Param; public interface SystemUserRoleMapper extends BaseMapper { Set listUserRoleByUserId(@Param("userId") Long userId); + List listUserRoleLevelByUserId(@Param("userId") Long userId); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java index 718cc3eb..04cc2c0f 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java @@ -32,7 +32,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -140,13 +139,4 @@ public class SystemDictDetailService { } return detailVos; } - - public Map> getDictDetailMap(String dictName) { - String[] names = dictName.split("[,, ]"); - Map> dictMap = new HashMap<>(16); - for (String name : names) { - dictMap.put(name, this.listDictDetailByName(name)); - } - return dictMap; - } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java index 8a1a2169..3944c3de 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java @@ -150,8 +150,4 @@ public class SystemJobService { } KitExcelExporter.exportSimple(response, "岗位数据", SystemJobExportRowVo.class, rowVos); } - - public List listByIds(Set jobIds) { - return systemJobMapper.selectByIds(jobIds); - } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java index 28bbee2d..3e0ab847 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java @@ -218,7 +218,7 @@ public class SystemMenuService { * @return / */ public List listMenuByUserId(Long currentUserId) { - List roles = systemUserRoleService.queryRoleVoByUsersId(currentUserId); + List roles = systemUserRoleService.listRoleVoByUsersId(currentUserId); Set roleIds = roles.stream().map(SystemRoleVo::getId).collect(Collectors.toSet()); return new ArrayList<>(systemRoleMenuService.queryMenuByRoleIds(roleIds)); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java index 1b6fe46d..25bce45f 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java @@ -222,7 +222,7 @@ public class SystemRoleService { permissions.add("admin"); return permissions.stream().map(SystemRoleCodeVo::new).collect(Collectors.toList()); } - List roles = systemUserRoleService.queryRoleVoByUsersId(user.getId()); + List roles = systemUserRoleService.listRoleVoByUsersId(user.getId()); permissions = roles.stream().flatMap(role -> role.getMenus().stream()).map(SystemMenuVo::getPermission) .filter(StrUtil::isNotBlank).collect(Collectors.toSet()); return permissions.stream().map(SystemRoleCodeVo::new).collect(Collectors.toList()); @@ -268,7 +268,7 @@ public class SystemRoleService { * @return / */ private int checkRoleLevels(Integer level) { - List levels = systemUserRoleService.queryRoleVoByUsersId(KitSecurityHelper.getCurrentUserId()).stream() + List levels = systemUserRoleService.listRoleVoByUsersId(KitSecurityHelper.getCurrentUserId()).stream() .map(SystemRoleVo::getLevel).collect(Collectors.toList()); int min = Collections.min(levels); if (level != null) { diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java index b4291d5f..9408f1f8 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java @@ -99,7 +99,7 @@ public class SystemUserRoleService { * @param userId 用户ID * @return / */ - public List queryRoleVoByUsersId(Long userId) { + public List listRoleVoByUsersId(Long userId) { Set roles = this.listUserRoleByUserId(userId); return roles.stream().map(this::convertToRoleVo).collect(Collectors.toList()); } @@ -115,16 +115,12 @@ public class SystemUserRoleService { // 最小权限 return Integer.MAX_VALUE; } - List roleIds = - roles.stream().map(SystemRoleTb::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + List roleIds = roles.stream().map(SystemRoleTb::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); if (CollUtil.isEmpty(roleIds)) { // 最小权限 return Integer.MAX_VALUE; } - List roleLevels = systemRoleMapper.selectList( - new LambdaQueryWrapper().select(SystemRoleTb::getLevel).isNotNull(SystemRoleTb::getLevel) - .in(SystemRoleTb::getId, roleIds)).stream().map(SystemRoleTb::getLevel).distinct() - .collect(Collectors.toList()); + List roleLevels = systemRoleMapper.listRoleLevelByRoleIds(roleIds); if (CollUtil.isEmpty(roleLevels)) { // 最小权限 return Integer.MAX_VALUE; @@ -138,9 +134,8 @@ public class SystemUserRoleService { * @param args / */ public void checkLevel(SystemUserVo args) { - Integer currentLevel = Collections.min( - this.queryRoleVoByUsersId(KitSecurityHelper.getCurrentUserId()).stream().map(SystemRoleVo::getLevel) - .collect(Collectors.toList())); + List roleLevels = systemUserRoleMapper.listUserRoleLevelByUserId(KitSecurityHelper.getCurrentUserId()); + Integer currentLevel = Collections.min(roleLevels); Integer optLevel = this.getDeptLevelByRoles(args.getRoles()); if (currentLevel > optLevel) { throw new BadRequestException("角色权限不足"); @@ -159,4 +154,8 @@ public class SystemUserRoleService { public Set listUserRoleByUserId(Long userId) { return systemUserRoleMapper.listUserRoleByUserId(userId); } + + public List listUserRoleLevelByUserId(Long userId) { + return systemUserRoleMapper.listUserRoleLevelByUserId(userId); + } } 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 6d16f3ec..f69b450a 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 @@ -32,7 +32,6 @@ import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.export.SystemUserExportRowVo; import cn.odboy.system.dal.model.request.SystemQueryUserArgs; import cn.odboy.system.dal.model.request.SystemUpdateUserPasswordArgs; -import cn.odboy.system.dal.model.response.SystemRoleVo; import cn.odboy.system.dal.model.response.SystemUserVo; import cn.odboy.system.dal.mysql.SystemUserMapper; import cn.odboy.system.dal.redis.SystemUserInfoDAO; @@ -42,7 +41,6 @@ import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitRsaEncryptUtil; -import cn.odboy.util.KitValidUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -91,7 +89,7 @@ public class SystemUserService { private PasswordEncoder passwordEncoder; /** - * 新增用户 + * 新增用户 -> TestPassed * * @param args / */ @@ -102,13 +100,13 @@ public class SystemUserService { // 默认密码 123456 record.setPassword(passwordEncoder.encode("123456")); record.setDeptId(args.getDept().getId()); - if (this.getUserByUsername(record.getUsername()) != null) { + if (this.existUserWithUsername(record.getUsername())) { throw new BadRequestException("用户名已存在"); } - if (this.getUserByEmail(record.getEmail()) != null) { + if (this.existUserWithEmail(record.getEmail())) { throw new BadRequestException("邮箱已存在"); } - if (this.getUserByPhone(record.getPhone()) != null) { + if (this.existUserWithPhone(record.getPhone())) { throw new BadRequestException("手机号已存在"); } // 保存用户 @@ -119,8 +117,29 @@ public class SystemUserService { systemUserRoleService.batchInsertUserRole(args.getRoles(), record.getId()); } + private boolean existUserWithPhone(String phone) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SystemUserTb::getPhone, phone); + wrapper.eq(SystemUserTb::getEnabled, 1); + return systemUserMapper.exists(wrapper); + } + + private boolean existUserWithEmail(String email) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SystemUserTb::getEmail, email); + wrapper.eq(SystemUserTb::getEnabled, 1); + return systemUserMapper.exists(wrapper); + } + + private boolean existUserWithUsername(String username) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SystemUserTb::getUsername, username); + wrapper.eq(SystemUserTb::getEnabled, 1); + return systemUserMapper.exists(wrapper); + } + /** - * 编辑用户 + * 编辑用户 -> TestPassed * * @param args / */ @@ -128,16 +147,13 @@ public class SystemUserService { public void updateUserById(SystemUserVo args) { systemUserRoleService.checkLevel(args); SystemUserTb user = systemUserMapper.selectById(args.getId()); - SystemUserTb user1 = this.getUserByUsername(args.getUsername()); - SystemUserTb user2 = this.getUserByEmail(args.getEmail()); - SystemUserTb user3 = this.getUserByPhone(args.getPhone()); - if (user1 != null && !user.getId().equals(user1.getId())) { + if (this.existUserWithUsernameNeSelf(args.getUsername(), user.getId())) { throw new BadRequestException("用户名已存在"); } - if (user2 != null && !user.getId().equals(user2.getId())) { + if (this.existUserWithEmailNeSelf(args.getEmail(), user.getId())) { throw new BadRequestException("邮箱已存在"); } - if (user3 != null && !user.getId().equals(user3.getId())) { + if (this.existUserWithPhoneNeSelf(args.getPhone(), user.getId())) { throw new BadRequestException("手机号已存在"); } // 如果用户被禁用, 则清除用户登录信息 @@ -162,8 +178,29 @@ public class SystemUserService { systemUserRoleService.batchInsertUserRole(args.getRoles(), args.getId()); } + private boolean existUserWithPhoneNeSelf(String phone, Long currentUserId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SystemUserTb::getPhone, phone); + wrapper.ne(SystemUserTb::getId, currentUserId); + return systemUserMapper.exists(wrapper); + } + + private boolean existUserWithEmailNeSelf(String email, Long currentUserId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SystemUserTb::getEmail, email); + wrapper.ne(SystemUserTb::getId, currentUserId); + return systemUserMapper.exists(wrapper); + } + + private boolean existUserWithUsernameNeSelf(String username, Long currentUserId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SystemUserTb::getUsername, username); + wrapper.ne(SystemUserTb::getId, currentUserId); + return systemUserMapper.exists(wrapper); + } + /** - * 用户自助修改资料 + * 用户自助修改资料 -> TestPassed * * @param args / */ @@ -173,19 +210,18 @@ public class SystemUserService { throw new BadRequestException("不能修改他人资料"); } SystemUserTb user = systemUserMapper.selectById(args.getId()); - SystemUserTb user1 = this.getUserByPhone(args.getPhone()); - if (user1 != null && !user.getId().equals(user1.getId())) { + if (this.existUserWithPhoneNeSelf(args.getPhone(), user.getId())) { throw new BadRequestException("手机号已存在"); } user.setNickName(args.getNickName()); user.setPhone(args.getPhone()); user.setGender(args.getGender()); - systemUserMapper.insertOrUpdate(user); + systemUserMapper.updateById(user); systemUserInfoDAO.deleteUserLoginInfoByUserName(user.getUsername()); } /** - * 删除用户 + * 删除用户 -> TestPassed * * @param ids / */ @@ -194,19 +230,15 @@ public class SystemUserService { Long currentUserId = KitSecurityHelper.getCurrentUserId(); // 校验权限 for (Long id : ids) { - Integer currentLevel = Collections.min( - systemUserRoleService.queryRoleVoByUsersId(currentUserId).stream().map(SystemRoleVo::getLevel) - .collect(Collectors.toList())); - Integer optLevel = Collections.min( - systemUserRoleService.queryRoleVoByUsersId(id).stream().map(SystemRoleVo::getLevel) - .collect(Collectors.toList())); + Integer currentLevel = Collections.min(systemUserRoleService.listUserRoleLevelByUserId(currentUserId)); + Integer optLevel = Collections.min(systemUserRoleService.listUserRoleLevelByUserId(id)); if (currentLevel > optLevel) { - throw new BadRequestException("角色权限不足, 不能删除:" + this.getUserById(id).getUsername()); + SystemUserTb systemUserTb = systemUserMapper.selectById(id); + throw new BadRequestException("角色权限不足, 不能删除:" + systemUserTb.getUsername()); } } // 清理缓存 - List usernameList = systemUserMapper.selectByIds(ids).stream().map(SystemUserTb::getUsername).distinct() - .collect(Collectors.toList()); + List usernameList = systemUserMapper.listUsernameByIds(ids); for (String username : usernameList) { systemUserInfoDAO.deleteUserLoginInfoByUserName(username); } @@ -219,7 +251,7 @@ public class SystemUserService { } /** - * 修改密码 + * 修改密码 -> TestPassed * * @param username 用户名 * @param args 参数 @@ -241,27 +273,27 @@ public class SystemUserService { } /** - * 重置密码 + * 重置密码 -> TestPassed * * @param ids 用户id */ @Transactional(rollbackFor = Exception.class) public void resetUserPasswordByIds(Set ids) { String defaultPwd = passwordEncoder.encode("123456"); - List users = systemUserMapper.selectByIds(ids); + List users = systemUserMapper.listUsernameByIds(ids); // 清除缓存 - for (SystemUserTb user : users) { + for (String username : users) { // 清除缓存 - systemUserInfoDAO.deleteUserLoginInfoByUserName(user.getUsername()); + systemUserInfoDAO.deleteUserLoginInfoByUserName(username); // 强制退出 - systemUserOnlineInfoDAO.kickOutByUsername(user.getUsername()); + systemUserOnlineInfoDAO.kickOutByUsername(username); } // 重置密码 systemUserMapper.updateUserPasswordByUserIds(defaultPwd, ids); } /** - * 修改头像 + * 修改头像 -> TestPassed * * @param multipartFile 文件 * @return / @@ -271,7 +303,7 @@ public class SystemUserService { SystemUserTb user = this.getUserByUsername(KitSecurityHelper.getCurrentUsername()); String username = user.getUsername(); if (StrUtil.isBlank(username)) { - throw new BadRequestException("异常用户数据, 请联系管理员处理"); + throw new BadRequestException("异常用户数据, 请联系管理员处理!"); } // 文件大小验证 KitFileUtil.checkSize(fileUploadPathHelper.getAvatarMaxSize(), multipartFile.getSize()); @@ -279,13 +311,13 @@ public class SystemUserService { String image = "gif jpg png jpeg"; String fileType = KitFileUtil.getSuffix(multipartFile.getOriginalFilename()); if (fileType != null && !image.contains(fileType)) { - throw new BadRequestException("文件格式错误!, 仅支持 " + image + " 格式"); + throw new BadRequestException("文件格式错误, 仅支持 " + image + " 格式!"); } String oldPath = user.getAvatarPath(); File file = KitFileUtil.upload(multipartFile, fileUploadPathHelper.getPath()); user.setAvatarPath(Objects.requireNonNull(file).getPath()); user.setAvatarName(file.getName()); - systemUserMapper.insertOrUpdate(user); + systemUserMapper.updateById(user); if (StrUtil.isNotBlank(oldPath)) { KitFileUtil.del(oldPath); } @@ -296,7 +328,7 @@ public class SystemUserService { } /** - * 修改邮箱 + * 修改邮箱 -> TestPassed * * @param username 用户名 * @param args 参数 @@ -304,8 +336,7 @@ public class SystemUserService { */ @Transactional(rollbackFor = Exception.class) public void updateUserEmailByUsername(String username, SystemUserTb args, String code) throws Exception { - String password = - KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), args.getPassword()); + String password = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), args.getPassword()); SystemUserTb user = this.getUserByUsername(username); if (!passwordEncoder.matches(password, user.getPassword())) { throw new BadRequestException("密码错误"); @@ -316,7 +347,7 @@ public class SystemUserService { } /** - * 查询全部 + * 查询全部 -> TestPassed * * @param args 条件 * @param page 分页参数 @@ -328,8 +359,7 @@ public class SystemUserService { IPage userPage = systemUserMapper.selectPage(page, wrapper); List users = userPage.getRecords(); // 转换为SystemUserVo并关联查询 - List userVos = - users.stream().map(m -> this.convertToUserVo(m, false)).collect(Collectors.toList()); + List userVos = users.stream().map(m -> this.convertToUserVo(m, false)).collect(Collectors.toList()); return KitPageUtil.toPage(userVos, userPage.getTotal()); } @@ -338,16 +368,6 @@ public class SystemUserService { return systemUserMapper.selectCount(wrapper); } - /** - * 根据ID查询 - * - * @param id ID - * @return / - */ - public SystemUserTb getUserById(long id) { - return systemUserMapper.selectById(id); - } - public List queryUserMetadataOptions(KitPageArgs pageArgs) { SystemQueryUserArgs args = pageArgs.getArgs(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -372,36 +392,37 @@ public class SystemUserService { } /** - * 构建用户查询条件 + * 构建用户查询条件 -> TestPassed * * @param args 查询条件 * @return / */ private LambdaQueryWrapper buildUserQueryWrapper(SystemQueryUserArgs args) { - KitValidUtil.notNull(args); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - if (args.getId() != null) { - wrapper.eq(SystemUserTb::getId, args.getId()); - } - if (args.getEnabled() != null) { - wrapper.eq(SystemUserTb::getEnabled, args.getEnabled()); - } - if (CollUtil.isNotEmpty(args.getDeptIds())) { - 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())); - } - if (CollUtil.isNotEmpty(args.getCreateTime()) && args.getCreateTime().size() >= 2) { - wrapper.between(SystemUserTb::getCreateTime, args.getCreateTime().get(0), args.getCreateTime().get(1)); + if (args != null) { + if (args.getId() != null) { + wrapper.eq(SystemUserTb::getId, args.getId()); + } + if (args.getEnabled() != null) { + wrapper.eq(SystemUserTb::getEnabled, args.getEnabled()); + } + if (CollUtil.isNotEmpty(args.getDeptIds())) { + 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())); + } + if (CollUtil.isNotEmpty(args.getCreateTime()) && args.getCreateTime().size() >= 2) { + wrapper.between(SystemUserTb::getCreateTime, args.getCreateTime().get(0), args.getCreateTime().get(1)); + } } wrapper.orderByDesc(SystemUserTb::getCreateTime); return wrapper; } /** - * 转换为SystemUserVo并关联查询部门、角色、岗位信息 + * 转换为SystemUserVo并关联查询部门、角色、岗位信息 -> TestPassed * * @param user 用户基本信息 * @param includePassword 是否包含用户密码 @@ -442,28 +463,16 @@ public class SystemUserService { return this.convertToUserVo(this.getUserByUsername(username), false); } - public SystemUserTb getUserByEmail(String email) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(SystemUserTb::getEmail, email); - wrapper.eq(SystemUserTb::getEnabled, 1); - return systemUserMapper.selectOne(wrapper); - } - - public SystemUserTb getUserByPhone(String phone) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(SystemUserTb::getPhone, phone); - wrapper.eq(SystemUserTb::getEnabled, 1); - return systemUserMapper.selectOne(wrapper); - } - + /** + * 聚合查询 -> TestPassed + */ public KitPageResult aggregationSearchUserByArgs(Page page, SystemQueryUserArgs args, String currentUsername) { if (!ObjectUtils.isEmpty(args.getDeptId())) { args.getDeptIds().add(args.getDeptId()); // 先查找是否存在子节点 List data = systemDeptService.listDeptByPid(args.getDeptId()); - Map> deptPidMap = - systemDeptService.listPidNonNull().stream().collect(Collectors.groupingBy(SystemDeptTb::getPid)); + Map> deptPidMap = systemDeptService.listPidNonNull().stream().collect(Collectors.groupingBy(SystemDeptTb::getPid)); // 然后把子节点的ID都加入到集合中 args.getDeptIds().addAll(systemDeptService.queryChildDeptIdByDeptIds(data, deptPidMap)); } @@ -484,6 +493,9 @@ public class SystemUserService { return KitPageUtil.emptyData(); } + /** + * 导出 -> TestPassed + */ public void exportUserXlsx(HttpServletResponse response, SystemQueryUserArgs args) { long totalCount = this.countUserByArgs(args); KitExcelExporter.exportByPage(response, "用户数据", SystemUserExportRowVo.class, totalCount, diff --git a/cutejava/cutejava-module-system/src/main/resources/mapper/SystemRoleMapper.xml b/cutejava/cutejava-module-system/src/main/resources/mapper/SystemRoleMapper.xml new file mode 100644 index 00000000..f2b977fc --- /dev/null +++ b/cutejava/cutejava-module-system/src/main/resources/mapper/SystemRoleMapper.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/cutejava/cutejava-module-system/src/main/resources/mapper/SystemUserMapper.xml b/cutejava/cutejava-module-system/src/main/resources/mapper/SystemUserMapper.xml new file mode 100644 index 00000000..87c7aad5 --- /dev/null +++ b/cutejava/cutejava-module-system/src/main/resources/mapper/SystemUserMapper.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/cutejava/cutejava-module-system/src/main/resources/mapper/SystemUserRoleMapper.xml b/cutejava/cutejava-module-system/src/main/resources/mapper/SystemUserRoleMapper.xml index 177b248e..c2ab58c6 100644 --- a/cutejava/cutejava-module-system/src/main/resources/mapper/SystemUserRoleMapper.xml +++ b/cutejava/cutejava-module-system/src/main/resources/mapper/SystemUserRoleMapper.xml @@ -7,4 +7,10 @@ LEFT JOIN system_users_roles t2 ON t1.role_id = t2.role_id WHERE t2.user_id = #{userId} +