mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 10:57:13 +08:00 
			
		
		
		
	优化:基于阿里巴巴 Java 开发手册(黄山版)优化部分变量和方法命名
1.编程规约>命名风格>第14条:
【推荐】在常量与变量命名时,表示类型的名词放在词尾,以提升辨识度。
正例:startTime / workQueue / nameList / TERMINATED_THREAD_COUNT
反例:startedAt / QueueOfWork / listName / COUNT_TERMINATED_THREAD
2.编程规约>命名风格>第19条:
【参考】各层命名规约:
  A)Service / DAO 层方法命名规约:
  1)获取单个对象的方法用 get 做前缀。
  2)获取多个对象的方法用 list 做前缀,复数结尾,如:listObjects
  3)获取统计值的方法用 count 做前缀。
  4)插入的方法用 save / insert 做前缀。
  5)删除的方法用 remove / delete 做前缀。
  6)修改的方法用 update 做前缀。
个人理解及应用 🔥:
  1)在变量命名方面:
    a)方法体内局部变量,命名时表示类型的名词放在词尾,以提升辨识度;
      正例:nameList、nameArr。
    b)方法声明上参数(局部变量),命名时尽量采用复数形式,以和方法名保持一致;
      正例:List<String> listNameByIds(List<Long> ids);
    c)成员变量,命名时尽量采用复数形式。
  2)在方法命名方面:
    a)CRUD 类方法可以简化命名;
      正例:UserService:page、list、add、update、delete...;
      说明:UserService 是围绕 User 为核心的业务接口,简化命名的方法也很容易理解操作的是什么。
    b)其他方法,查询信息名词采用单数(与其纠结单数、复数,那就用单数,简单粗暴一点),以上述第2条要求为命名前缀。
      正例:RoleService:listNameByIds(根据 ID 查询名称列表)
           RoleService:listRoleCodeByUserId(根据用户 ID 查询角色编码列表)
           UserRoleService:listRoleIdByUserId(根据用户 ID 查询角色 ID 列表)
           UserService:getByUsername(根据用户名查询用户)
			
			
This commit is contained in:
		| @@ -30,15 +30,20 @@ import cn.hutool.core.text.StrPool; | |||||||
| @NoArgsConstructor(access = AccessLevel.PRIVATE) | @NoArgsConstructor(access = AccessLevel.PRIVATE) | ||||||
| public class StringConsts implements StrPool { | public class StringConsts implements StrPool { | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 空字符串 | ||||||
|  |      */ | ||||||
|  |     public static final String EMPTY = ""; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 分号 |      * 分号 | ||||||
|      */ |      */ | ||||||
|     public static final String SEMICOLON = ";"; |     public static final String SEMICOLON = ";"; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 空字符串 |      * 中文逗号 | ||||||
|      */ |      */ | ||||||
|     public static final String EMPTY = ""; |     public static final String CHINESE_COMMA = ","; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 标准日期时间格式 |      * 标准日期时间格式 | ||||||
|   | |||||||
| @@ -27,9 +27,9 @@ public interface CommonUserService { | |||||||
|     /** |     /** | ||||||
|      * 根据 ID 查询昵称 |      * 根据 ID 查询昵称 | ||||||
|      * |      * | ||||||
|      * @param userId |      * @param id | ||||||
|      *            用户 ID |      *            ID | ||||||
|      * @return 昵称 |      * @return 昵称 | ||||||
|      */ |      */ | ||||||
|     String getNicknameById(Long userId); |     String getNicknameById(Long id); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -157,5 +157,4 @@ public class ExceptionUtils { | |||||||
|          */ |          */ | ||||||
|         T get() throws Exception; |         T get() throws Exception; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -53,5 +53,5 @@ public class LogProperties { | |||||||
|     /** |     /** | ||||||
|      * 脱敏字段 |      * 脱敏字段 | ||||||
|      */ |      */ | ||||||
|     private List<String> desensitize = new ArrayList<>(); |     private List<String> desensitizeFields = new ArrayList<>(); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -258,7 +258,7 @@ public class LogInterceptor implements HandlerInterceptor { | |||||||
|                 return desensitizeDataStr; |                 return desensitizeDataStr; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             for (String desensitizeProperty : operationLogProperties.getDesensitize()) { |             for (String desensitizeProperty : operationLogProperties.getDesensitizeFields()) { | ||||||
|                 waitDesensitizeData.computeIfPresent(desensitizeProperty, (k, v) -> ENCRYPT_SYMBOL); |                 waitDesensitizeData.computeIfPresent(desensitizeProperty, (k, v) -> ENCRYPT_SYMBOL); | ||||||
|                 waitDesensitizeData.computeIfPresent(desensitizeProperty.toLowerCase(), (k, v) -> ENCRYPT_SYMBOL); |                 waitDesensitizeData.computeIfPresent(desensitizeProperty.toLowerCase(), (k, v) -> ENCRYPT_SYMBOL); | ||||||
|                 waitDesensitizeData.computeIfPresent(desensitizeProperty.toUpperCase(), (k, v) -> ENCRYPT_SYMBOL); |                 waitDesensitizeData.computeIfPresent(desensitizeProperty.toUpperCase(), (k, v) -> ENCRYPT_SYMBOL); | ||||||
|   | |||||||
| @@ -74,10 +74,10 @@ public class LogServiceImpl implements LogService { | |||||||
|         QueryWrapper<LogDO> queryWrapper = QueryHelper.build(query); |         QueryWrapper<LogDO> queryWrapper = QueryHelper.build(query); | ||||||
|  |  | ||||||
|         // 限定查询信息 |         // 限定查询信息 | ||||||
|         String[] fieldsName = ReflectUtils.getNonStaticFieldsName(OperationLogVO.class); |         String[] fieldNameArr = ReflectUtils.getNonStaticFieldsName(OperationLogVO.class); | ||||||
|         List<String> columns = Arrays.stream(fieldsName).map(StrUtil::toUnderlineCase) |         List<String> columnNameList = Arrays.stream(fieldNameArr).map(StrUtil::toUnderlineCase) | ||||||
|             .filter(n -> !n.endsWith("string")).collect(Collectors.toList()); |             .filter(n -> !n.endsWith("string")).collect(Collectors.toList()); | ||||||
|         queryWrapper.select(columns); |         queryWrapper.select(columnNameList); | ||||||
|  |  | ||||||
|         // 分页查询 |         // 分页查询 | ||||||
|         IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper); |         IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper); | ||||||
| @@ -100,10 +100,10 @@ public class LogServiceImpl implements LogService { | |||||||
|             .like(LogDO::getRequestUrl, SysConsts.LOGOUT_URI)); |             .like(LogDO::getRequestUrl, SysConsts.LOGOUT_URI)); | ||||||
|  |  | ||||||
|         // 限定查询信息 |         // 限定查询信息 | ||||||
|         String[] fieldsName = ReflectUtils.getNonStaticFieldsName(LoginLogVO.class); |         String[] fieldNameArr = ReflectUtils.getNonStaticFieldsName(LoginLogVO.class); | ||||||
|         List<String> columns = Arrays.stream(fieldsName).map(StrUtil::toUnderlineCase) |         List<String> columnNameList = Arrays.stream(fieldNameArr).map(StrUtil::toUnderlineCase) | ||||||
|             .filter(n -> !n.endsWith("string")).collect(Collectors.toList()); |             .filter(n -> !n.endsWith("string")).collect(Collectors.toList()); | ||||||
|         queryWrapper.select(columns); |         queryWrapper.select(columnNameList); | ||||||
|  |  | ||||||
|         // 分页查询 |         // 分页查询 | ||||||
|         IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper); |         IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper); | ||||||
| @@ -119,10 +119,10 @@ public class LogServiceImpl implements LogService { | |||||||
|         QueryWrapper<LogDO> queryWrapper = QueryHelper.build(query); |         QueryWrapper<LogDO> queryWrapper = QueryHelper.build(query); | ||||||
|  |  | ||||||
|         // 限定查询信息 |         // 限定查询信息 | ||||||
|         String[] fieldsName = ReflectUtils.getNonStaticFieldsName(SystemLogVO.class); |         String[] fieldNameArr = ReflectUtils.getNonStaticFieldsName(SystemLogVO.class); | ||||||
|         List<String> columns = Arrays.stream(fieldsName).map(StrUtil::toUnderlineCase) |         List<String> columnNameList = Arrays.stream(fieldNameArr).map(StrUtil::toUnderlineCase) | ||||||
|             .filter(n -> !n.endsWith("string")).collect(Collectors.toList()); |             .filter(n -> !n.endsWith("string")).collect(Collectors.toList()); | ||||||
|         queryWrapper.select(columns); |         queryWrapper.select(columnNameList); | ||||||
|  |  | ||||||
|         // 分页查询 |         // 分页查询 | ||||||
|         IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper); |         IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper); | ||||||
| @@ -134,13 +134,13 @@ public class LogServiceImpl implements LogService { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public SystemLogDetailVO get(Long logId) { |     public SystemLogDetailVO get(Long id) { | ||||||
|         LogDO logDO = logMapper.selectById(logId); |         LogDO logDO = logMapper.selectById(id); | ||||||
|         CheckUtils.throwIfNull(logDO, String.format("ID为 [%s] 的日志已不存在", logId)); |         CheckUtils.throwIfNull(logDO, String.format("ID为 [%s] 的日志已不存在", id)); | ||||||
|  |  | ||||||
|         SystemLogDetailVO systemLogDetailVO = BeanUtil.copyProperties(logDO, SystemLogDetailVO.class); |         SystemLogDetailVO detailVO = BeanUtil.copyProperties(logDO, SystemLogDetailVO.class); | ||||||
|         this.fill(systemLogDetailVO); |         this.fill(detailVO); | ||||||
|         return systemLogDetailVO; |         return detailVO; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -33,7 +33,7 @@ public interface PermissionService { | |||||||
|      *            用户 ID |      *            用户 ID | ||||||
|      * @return 权限码集合 |      * @return 权限码集合 | ||||||
|      */ |      */ | ||||||
|     Set<String> listPermissionsByUserId(Long userId); |     Set<String> listPermissionByUserId(Long userId); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 根据用户 ID 查询角色编码 |      * 根据用户 ID 查询角色编码 | ||||||
| @@ -42,5 +42,5 @@ public interface PermissionService { | |||||||
|      *            用户 ID |      *            用户 ID | ||||||
|      * @return 角色编码集合 |      * @return 角色编码集合 | ||||||
|      */ |      */ | ||||||
|     Set<String> listRoleCodesByUserId(Long userId); |     Set<String> listRoleCodeByUserId(Long userId); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -60,8 +60,8 @@ public class LoginServiceImpl implements LoginService { | |||||||
|         // 登录 |         // 登录 | ||||||
|         LoginUser loginUser = BeanUtil.copyProperties(userDO, LoginUser.class); |         LoginUser loginUser = BeanUtil.copyProperties(userDO, LoginUser.class); | ||||||
|         loginUser.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(loginUser.getDeptId()).getDeptName())); |         loginUser.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(loginUser.getDeptId()).getDeptName())); | ||||||
|         loginUser.setPermissions(permissionService.listPermissionsByUserId(userId)); |         loginUser.setPermissions(permissionService.listPermissionByUserId(userId)); | ||||||
|         loginUser.setRoles(permissionService.listRoleCodesByUserId(userId)); |         loginUser.setRoles(permissionService.listRoleCodeByUserId(userId)); | ||||||
|         LoginHelper.login(loginUser); |         LoginHelper.login(loginUser); | ||||||
|  |  | ||||||
|         // 返回令牌 |         // 返回令牌 | ||||||
|   | |||||||
| @@ -43,17 +43,17 @@ public class PermissionServiceImpl implements PermissionService { | |||||||
|     private final RoleService roleService; |     private final RoleService roleService; | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public Set<String> listPermissionsByUserId(Long userId) { |     public Set<String> listPermissionByUserId(Long userId) { | ||||||
|         Set<String> roleCodeSet = this.listRoleCodesByUserId(userId); |         Set<String> roleCodeSet = this.listRoleCodeByUserId(userId); | ||||||
|         // 超级管理员赋予全部权限 |         // 超级管理员赋予全部权限 | ||||||
|         if (roleCodeSet.contains(SysConsts.SUPER_ADMIN)) { |         if (roleCodeSet.contains(SysConsts.SUPER_ADMIN)) { | ||||||
|             return CollUtil.newHashSet(SysConsts.ALL_PERMISSION); |             return CollUtil.newHashSet(SysConsts.ALL_PERMISSION); | ||||||
|         } |         } | ||||||
|         return menuService.listPermissionsByUserId(userId); |         return menuService.listPermissionByUserId(userId); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public Set<String> listRoleCodesByUserId(Long userId) { |     public Set<String> listRoleCodeByUserId(Long userId) { | ||||||
|         return roleService.listRoleCodesByUserId(userId); |         return roleService.listRoleCodeByUserId(userId); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -38,5 +38,5 @@ public interface MenuMapper extends BaseMapper<MenuDO> { | |||||||
|      *            用户 ID |      *            用户 ID | ||||||
|      * @return 权限码集合 |      * @return 权限码集合 | ||||||
|      */ |      */ | ||||||
|     Set<String> selectPermissionsByUserId(@Param("userId") Long userId); |     Set<String> selectPermissionByUserId(@Param("userId") Long userId); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -40,5 +40,5 @@ public interface RoleDeptMapper extends BaseMapper<RoleDeptDO> { | |||||||
|      * @return 部门 ID 列表 |      * @return 部门 ID 列表 | ||||||
|      */ |      */ | ||||||
|     @Select("SELECT `dept_id` FROM `sys_role_dept` WHERE `role_id` = #{roleId}") |     @Select("SELECT `dept_id` FROM `sys_role_dept` WHERE `role_id` = #{roleId}") | ||||||
|     List<Long> selectDeptIdsByRoleId(@Param("roleId") Long roleId); |     List<Long> selectDeptIdByRoleId(@Param("roleId") Long roleId); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -36,5 +36,5 @@ public interface RoleMenuMapper extends BaseMapper<RoleMenuDO> { | |||||||
|      *            角色 ID 列表 |      *            角色 ID 列表 | ||||||
|      * @return 菜单 ID 列表 |      * @return 菜单 ID 列表 | ||||||
|      */ |      */ | ||||||
|     List<Long> selectMenuIdsByRoleIds(List<Long> roleIds); |     List<Long> selectMenuIdByRoleIds(List<Long> roleIds); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -40,5 +40,5 @@ public interface UserRoleMapper extends BaseMapper<UserRoleDO> { | |||||||
|      * @return 角色 ID 列表 |      * @return 角色 ID 列表 | ||||||
|      */ |      */ | ||||||
|     @Select("SELECT `role_id` FROM `sys_user_role` WHERE `user_id` = #{userId}") |     @Select("SELECT `role_id` FROM `sys_user_role` WHERE `user_id` = #{userId}") | ||||||
|     List<Long> selectRoleIdsByUserId(@Param("userId") Long userId); |     List<Long> selectRoleIdByUserId(@Param("userId") Long userId); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -38,5 +38,5 @@ public interface MenuService extends BaseService<MenuVO, MenuVO, MenuQuery, Menu | |||||||
|      *            用户 ID |      *            用户 ID | ||||||
|      * @return 权限码集合 |      * @return 权限码集合 | ||||||
|      */ |      */ | ||||||
|     Set<String> listPermissionsByUserId(Long userId); |     Set<String> listPermissionByUserId(Long userId); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -44,13 +44,13 @@ public interface RoleService extends BaseService<RoleVO, RoleDetailVO, RoleQuery | |||||||
|     List<LabelValueVO<Long>> buildDict(List<RoleVO> list); |     List<LabelValueVO<Long>> buildDict(List<RoleVO> list); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 根据角色 ID 列表查询 |      * 根据 ID 列表查询 | ||||||
|      * |      * | ||||||
|      * @param roleIds |      * @param ids | ||||||
|      *            角色 ID 列表 |      *            ID 列表 | ||||||
|      * @return 角色名称列表 |      * @return 名称列表 | ||||||
|      */ |      */ | ||||||
|     List<String> listRoleNamesByRoleIds(List<Long> roleIds); |     List<String> listNameByIds(List<Long> ids); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 根据用户 ID 查询角色编码 |      * 根据用户 ID 查询角色编码 | ||||||
| @@ -59,5 +59,5 @@ public interface RoleService extends BaseService<RoleVO, RoleDetailVO, RoleQuery | |||||||
|      *            用户 ID |      *            用户 ID | ||||||
|      * @return 角色编码集合 |      * @return 角色编码集合 | ||||||
|      */ |      */ | ||||||
|     Set<String> listRoleCodesByUserId(Long userId); |     Set<String> listRoleCodeByUserId(Long userId); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -52,5 +52,5 @@ public interface UserRoleService { | |||||||
|      *            用户 ID |      *            用户 ID | ||||||
|      * @return 角色 ID 列表 |      * @return 角色 ID 列表 | ||||||
|      */ |      */ | ||||||
|     List<Long> listRoleIdsByUserId(Long userId); |     List<Long> listRoleIdByUserId(Long userId); | ||||||
| } | } | ||||||
| @@ -41,11 +41,11 @@ public interface UserService extends BaseService<UserVO, UserDetailVO, UserQuery | |||||||
|      * |      * | ||||||
|      * @param avatar |      * @param avatar | ||||||
|      *            头像文件 |      *            头像文件 | ||||||
|      * @param userId |      * @param id | ||||||
|      *            用户 ID |      *            ID | ||||||
|      * @return 新头像路径 |      * @return 新头像路径 | ||||||
|      */ |      */ | ||||||
|     String uploadAvatar(MultipartFile avatar, Long userId); |     String uploadAvatar(MultipartFile avatar, Long id); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 修改密码 |      * 修改密码 | ||||||
| @@ -54,10 +54,10 @@ public interface UserService extends BaseService<UserVO, UserDetailVO, UserQuery | |||||||
|      *            当前密码 |      *            当前密码 | ||||||
|      * @param newPassword |      * @param newPassword | ||||||
|      *            新密码 |      *            新密码 | ||||||
|      * @param userId |      * @param id | ||||||
|      *            用户 ID |      *            ID | ||||||
|      */ |      */ | ||||||
|     void updatePassword(String oldPassword, String newPassword, Long userId); |     void updatePassword(String oldPassword, String newPassword, Long id); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 修改邮箱 |      * 修改邮箱 | ||||||
| @@ -66,28 +66,28 @@ public interface UserService extends BaseService<UserVO, UserDetailVO, UserQuery | |||||||
|      *            新邮箱 |      *            新邮箱 | ||||||
|      * @param currentPassword |      * @param currentPassword | ||||||
|      *            当前密码 |      *            当前密码 | ||||||
|      * @param userId |      * @param id | ||||||
|      *            用户ID |      *            ID | ||||||
|      */ |      */ | ||||||
|     void updateEmail(String newEmail, String currentPassword, Long userId); |     void updateEmail(String newEmail, String currentPassword, Long id); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 重置密码 |      * 重置密码 | ||||||
|      * |      * | ||||||
|      * @param userId |      * @param id | ||||||
|      *            用户 ID |      *            ID | ||||||
|      */ |      */ | ||||||
|     void resetPassword(Long userId); |     void resetPassword(Long id); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 修改角色 |      * 修改角色 | ||||||
|      * |      * | ||||||
|      * @param request |      * @param request | ||||||
|      *            修改信息 |      *            修改信息 | ||||||
|      * @param userId |      * @param id | ||||||
|      *            用户 ID |      *            ID | ||||||
|      */ |      */ | ||||||
|     void updateUserRole(UpdateUserRoleRequest request, Long userId); |     void updateRole(UpdateUserRoleRequest request, Long id); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 根据用户名查询 |      * 根据用户名查询 | ||||||
|   | |||||||
| @@ -73,8 +73,8 @@ public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuVO, | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public Set<String> listPermissionsByUserId(Long userId) { |     public Set<String> listPermissionByUserId(Long userId) { | ||||||
|         return baseMapper.selectPermissionsByUserId(userId); |         return baseMapper.selectPermissionByUserId(userId); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -56,6 +56,6 @@ public class RoleDeptServiceImpl implements RoleDeptService { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public List<Long> listDeptIdByRoleId(Long roleId) { |     public List<Long> listDeptIdByRoleId(Long roleId) { | ||||||
|         return roleDeptMapper.selectDeptIdsByRoleId(roleId); |         return roleDeptMapper.selectDeptIdByRoleId(roleId); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -60,6 +60,6 @@ public class RoleMenuServiceImpl implements RoleMenuService { | |||||||
|         if (CollUtil.isEmpty(roleIds)) { |         if (CollUtil.isEmpty(roleIds)) { | ||||||
|             return new ArrayList<>(0); |             return new ArrayList<>(0); | ||||||
|         } |         } | ||||||
|         return roleMenuMapper.selectMenuIdsByRoleIds(roleIds); |         return roleMenuMapper.selectMenuIdByRoleIds(roleIds); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -130,15 +130,14 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO, | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public List<String> listRoleNamesByRoleIds(List<Long> roleIds) { |     public List<String> listNameByIds(List<Long> ids) { | ||||||
|         List<RoleDO> roleList = |         List<RoleDO> roleList = baseMapper.lambdaQuery().select(RoleDO::getRoleName).in(RoleDO::getRoleId, ids).list(); | ||||||
|             baseMapper.lambdaQuery().select(RoleDO::getRoleName).in(RoleDO::getRoleId, roleIds).list(); |  | ||||||
|         return roleList.stream().map(RoleDO::getRoleName).collect(Collectors.toList()); |         return roleList.stream().map(RoleDO::getRoleName).collect(Collectors.toList()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public Set<String> listRoleCodesByUserId(Long userId) { |     public Set<String> listRoleCodeByUserId(Long userId) { | ||||||
|         List<Long> roleIds = userRoleService.listRoleIdsByUserId(userId); |         List<Long> roleIds = userRoleService.listRoleIdByUserId(userId); | ||||||
|         List<RoleDO> roleList = |         List<RoleDO> roleList = | ||||||
|             baseMapper.lambdaQuery().select(RoleDO::getRoleCode).in(RoleDO::getRoleId, roleIds).list(); |             baseMapper.lambdaQuery().select(RoleDO::getRoleCode).in(RoleDO::getRoleId, roleIds).list(); | ||||||
|         return roleList.stream().map(RoleDO::getRoleCode).collect(Collectors.toSet()); |         return roleList.stream().map(RoleDO::getRoleCode).collect(Collectors.toSet()); | ||||||
|   | |||||||
| @@ -60,7 +60,7 @@ public class UserRoleServiceImpl implements UserRoleService { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public List<Long> listRoleIdsByUserId(Long userId) { |     public List<Long> listRoleIdByUserId(Long userId) { | ||||||
|         return userRoleMapper.selectRoleIdsByUserId(userId); |         return userRoleMapper.selectRoleIdByUserId(userId); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -35,6 +35,7 @@ import cn.hutool.core.util.StrUtil; | |||||||
| import top.charles7c.cnadmin.common.base.BaseServiceImpl; | import top.charles7c.cnadmin.common.base.BaseServiceImpl; | ||||||
| import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties; | import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties; | ||||||
| import top.charles7c.cnadmin.common.constant.FileConsts; | import top.charles7c.cnadmin.common.constant.FileConsts; | ||||||
|  | import top.charles7c.cnadmin.common.constant.StringConsts; | ||||||
| import top.charles7c.cnadmin.common.constant.SysConsts; | import top.charles7c.cnadmin.common.constant.SysConsts; | ||||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||||
| import top.charles7c.cnadmin.common.model.dto.LoginUser; | import top.charles7c.cnadmin.common.model.dto.LoginUser; | ||||||
| @@ -108,22 +109,22 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|         if (detailObj instanceof UserDetailVO) { |         if (detailObj instanceof UserDetailVO) { | ||||||
|             UserDetailVO detailVO = (UserDetailVO)detailObj; |             UserDetailVO detailVO = (UserDetailVO)detailObj; | ||||||
|             detailVO.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(detailVO.getDeptId()).getDeptName())); |             detailVO.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(detailVO.getDeptId()).getDeptName())); | ||||||
|             List<Long> roleIds = userRoleService.listRoleIdsByUserId(detailVO.getUserId()); |             List<Long> roleIdList = userRoleService.listRoleIdByUserId(detailVO.getUserId()); | ||||||
|             detailVO.setRoleIds(roleIds); |             detailVO.setRoleIds(roleIdList); | ||||||
|             detailVO.setRoleNames(String.join(",", roleService.listRoleNamesByRoleIds(roleIds))); |             detailVO.setRoleNames(String.join(StringConsts.CHINESE_COMMA, roleService.listNameByIds(roleIdList))); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     @Transactional(rollbackFor = Exception.class) |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public String uploadAvatar(MultipartFile avatarFile, Long userId) { |     public String uploadAvatar(MultipartFile avatarFile, Long id) { | ||||||
|         Long avatarMaxSizeInMb = localStorageProperties.getAvatarMaxSizeInMb(); |         Long avatarMaxSizeInMb = localStorageProperties.getAvatarMaxSizeInMb(); | ||||||
|         CheckUtils.throwIf(() -> avatarFile.getSize() > avatarMaxSizeInMb * 1024 * 1024, |         CheckUtils.throwIf(() -> avatarFile.getSize() > avatarMaxSizeInMb * 1024 * 1024, | ||||||
|             String.format("请上传小于 %s MB 的图片", avatarMaxSizeInMb)); |             String.format("请上传小于 %s MB 的图片", avatarMaxSizeInMb)); | ||||||
|         String avatarImageType = FileNameUtil.extName(avatarFile.getOriginalFilename()); |         String avatarImageType = FileNameUtil.extName(avatarFile.getOriginalFilename()); | ||||||
|         String[] avatarSupportImgTypes = FileConsts.AVATAR_SUPPORTED_IMG_TYPES; |         String[] avatarSupportImgTypes = FileConsts.AVATAR_SUPPORTED_IMG_TYPES; | ||||||
|         CheckUtils.throwIf(() -> !StrUtil.equalsAnyIgnoreCase(avatarImageType, avatarSupportImgTypes), |         CheckUtils.throwIf(() -> !StrUtil.equalsAnyIgnoreCase(avatarImageType, avatarSupportImgTypes), | ||||||
|             String.format("头像仅支持 %s 格式的图片", String.join(",", avatarSupportImgTypes))); |             String.format("头像仅支持 %s 格式的图片", String.join(StringConsts.CHINESE_COMMA, avatarSupportImgTypes))); | ||||||
|  |  | ||||||
|         // 上传新头像 |         // 上传新头像 | ||||||
|         String avatarPath = localStorageProperties.getPath().getAvatar(); |         String avatarPath = localStorageProperties.getPath().getAvatar(); | ||||||
| @@ -133,7 +134,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|  |  | ||||||
|         // 更新用户头像 |         // 更新用户头像 | ||||||
|         String newAvatar = newAvatarFile.getName(); |         String newAvatar = newAvatarFile.getName(); | ||||||
|         baseMapper.lambdaUpdate().set(UserDO::getAvatar, newAvatar).eq(UserDO::getUserId, userId).update(); |         baseMapper.lambdaUpdate().set(UserDO::getAvatar, newAvatar).eq(UserDO::getUserId, id).update(); | ||||||
|  |  | ||||||
|         // 删除原头像 |         // 删除原头像 | ||||||
|         LoginUser loginUser = LoginHelper.getLoginUser(); |         LoginUser loginUser = LoginHelper.getLoginUser(); | ||||||
| @@ -150,15 +151,15 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     @Transactional(rollbackFor = Exception.class) |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public void updatePassword(String oldPassword, String newPassword, Long userId) { |     public void updatePassword(String oldPassword, String newPassword, Long id) { | ||||||
|         CheckUtils.throwIfEqual(newPassword, oldPassword, "新密码不能与当前密码相同"); |         CheckUtils.throwIfEqual(newPassword, oldPassword, "新密码不能与当前密码相同"); | ||||||
|         UserDO userDO = super.getById(userId); |         UserDO userDO = super.getById(id); | ||||||
|         CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(oldPassword, userId.toString()), userDO.getPassword(), "当前密码错误"); |         CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(oldPassword, id.toString()), userDO.getPassword(), "当前密码错误"); | ||||||
|  |  | ||||||
|         // 更新密码和密码重置时间 |         // 更新密码和密码重置时间 | ||||||
|         LocalDateTime now = LocalDateTime.now(); |         LocalDateTime now = LocalDateTime.now(); | ||||||
|         baseMapper.lambdaUpdate().set(UserDO::getPassword, SecureUtils.md5Salt(newPassword, userId.toString())) |         baseMapper.lambdaUpdate().set(UserDO::getPassword, SecureUtils.md5Salt(newPassword, id.toString())) | ||||||
|             .set(UserDO::getPwdResetTime, now).eq(UserDO::getUserId, userId).update(); |             .set(UserDO::getPwdResetTime, now).eq(UserDO::getUserId, id).update(); | ||||||
|  |  | ||||||
|         // 更新登录用户信息 |         // 更新登录用户信息 | ||||||
|         LoginUser loginUser = LoginHelper.getLoginUser(); |         LoginUser loginUser = LoginHelper.getLoginUser(); | ||||||
| @@ -168,16 +169,15 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     @Transactional(rollbackFor = Exception.class) |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public void updateEmail(String newEmail, String currentPassword, Long userId) { |     public void updateEmail(String newEmail, String currentPassword, Long id) { | ||||||
|         UserDO userDO = super.getById(userId); |         UserDO userDO = super.getById(id); | ||||||
|         CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(currentPassword, userId.toString()), userDO.getPassword(), |         CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(currentPassword, id.toString()), userDO.getPassword(), "当前密码错误"); | ||||||
|             "当前密码错误"); |  | ||||||
|         Long count = baseMapper.lambdaQuery().eq(UserDO::getEmail, newEmail).count(); |         Long count = baseMapper.lambdaQuery().eq(UserDO::getEmail, newEmail).count(); | ||||||
|         CheckUtils.throwIf(() -> count > 0, "邮箱已绑定其他账号,请更换其他邮箱"); |         CheckUtils.throwIf(() -> count > 0, "邮箱已绑定其他账号,请更换其他邮箱"); | ||||||
|         CheckUtils.throwIfEqual(newEmail, userDO.getEmail(), "新邮箱不能与当前邮箱相同"); |         CheckUtils.throwIfEqual(newEmail, userDO.getEmail(), "新邮箱不能与当前邮箱相同"); | ||||||
|  |  | ||||||
|         // 更新邮箱 |         // 更新邮箱 | ||||||
|         baseMapper.lambdaUpdate().set(UserDO::getEmail, newEmail).eq(UserDO::getUserId, userId).update(); |         baseMapper.lambdaUpdate().set(UserDO::getEmail, newEmail).eq(UserDO::getUserId, id).update(); | ||||||
|  |  | ||||||
|         // 更新登录用户信息 |         // 更新登录用户信息 | ||||||
|         LoginUser loginUser = LoginHelper.getLoginUser(); |         LoginUser loginUser = LoginHelper.getLoginUser(); | ||||||
| @@ -186,18 +186,18 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void resetPassword(Long userId) { |     public void resetPassword(Long id) { | ||||||
|         UserDO userDO = super.getById(userId); |         UserDO userDO = super.getById(id); | ||||||
|         userDO.setPassword(SecureUtils.md5Salt(SysConsts.DEFAULT_PASSWORD, userId.toString())); |         userDO.setPassword(SecureUtils.md5Salt(SysConsts.DEFAULT_PASSWORD, id.toString())); | ||||||
|         userDO.setPwdResetTime(LocalDateTime.now()); |         userDO.setPwdResetTime(LocalDateTime.now()); | ||||||
|         baseMapper.updateById(userDO); |         baseMapper.updateById(userDO); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void updateUserRole(UpdateUserRoleRequest request, Long userId) { |     public void updateRole(UpdateUserRoleRequest request, Long id) { | ||||||
|         super.getById(userId); |         super.getById(id); | ||||||
|         // 保存用户和角色关联 |         // 保存用户和角色关联 | ||||||
|         userRoleService.save(request.getRoleIds(), userId); |         userRoleService.save(request.getRoleIds(), id); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -211,8 +211,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public String getNicknameById(Long userId) { |     public String getNicknameById(Long id) { | ||||||
|         return super.getById(userId).getNickname(); |         return super.getById(id).getNickname(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8" ?> | <?xml version="1.0" encoding="UTF-8" ?> | ||||||
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||||||
| <mapper namespace="top.charles7c.cnadmin.system.mapper.MenuMapper"> | <mapper namespace="top.charles7c.cnadmin.system.mapper.MenuMapper"> | ||||||
|     <select id="selectPermissionsByUserId" resultType="java.lang.String"> |     <select id="selectPermissionByUserId" resultType="java.lang.String"> | ||||||
|         SELECT DISTINCT m.`permission` |         SELECT DISTINCT m.`permission` | ||||||
|         FROM `sys_menu` m |         FROM `sys_menu` m | ||||||
|                  LEFT JOIN `sys_role_menu` rm ON rm.`menu_id` = m.`menu_id` |                  LEFT JOIN `sys_role_menu` rm ON rm.`menu_id` = m.`menu_id` | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8" ?> | <?xml version="1.0" encoding="UTF-8" ?> | ||||||
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||||||
| <mapper namespace="top.charles7c.cnadmin.system.mapper.RoleMenuMapper"> | <mapper namespace="top.charles7c.cnadmin.system.mapper.RoleMenuMapper"> | ||||||
|     <select id="selectMenuIdsByRoleIds" resultType="java.lang.Long"> |     <select id="selectMenuIdByRoleIds" resultType="java.lang.Long"> | ||||||
|         SELECT |         SELECT | ||||||
|             `menu_id` |             `menu_id` | ||||||
|         FROM `sys_role_menu` |         FROM `sys_role_menu` | ||||||
|   | |||||||
| @@ -81,8 +81,8 @@ public class CommonController { | |||||||
|     @GetMapping("/dict/role") |     @GetMapping("/dict/role") | ||||||
|     public R<List<LabelValueVO<Long>>> listRoleDict(@Validated RoleQuery query, @Validated SortQuery sortQuery) { |     public R<List<LabelValueVO<Long>>> listRoleDict(@Validated RoleQuery query, @Validated SortQuery sortQuery) { | ||||||
|         List<RoleVO> list = roleService.list(query, sortQuery); |         List<RoleVO> list = roleService.list(query, sortQuery); | ||||||
|         List<LabelValueVO<Long>> dictList = roleService.buildDict(list); |         List<LabelValueVO<Long>> labelValueVOList = roleService.buildDict(list); | ||||||
|         return R.ok(dictList); |         return R.ok(labelValueVOList); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Operation(summary = "查询枚举字典", description = "查询枚举字典列表") |     @Operation(summary = "查询枚举字典", description = "查询枚举字典列表") | ||||||
| @@ -98,10 +98,10 @@ public class CommonController { | |||||||
|         // 转换枚举为字典列表 |         // 转换枚举为字典列表 | ||||||
|         Class<?> enumClass = first.get(); |         Class<?> enumClass = first.get(); | ||||||
|         Object[] enumConstants = enumClass.getEnumConstants(); |         Object[] enumConstants = enumClass.getEnumConstants(); | ||||||
|         List<LabelValueVO> dictList = Arrays.stream(enumConstants).map(e -> { |         List<LabelValueVO> labelValueVOList = Arrays.stream(enumConstants).map(e -> { | ||||||
|             BaseEnum<Integer, String> baseEnum = (BaseEnum<Integer, String>)e; |             BaseEnum<Integer, String> baseEnum = (BaseEnum<Integer, String>)e; | ||||||
|             return new LabelValueVO(baseEnum.getDescription(), baseEnum.getValue()); |             return new LabelValueVO<>(baseEnum.getDescription(), baseEnum.getValue()); | ||||||
|         }).collect(Collectors.toList()); |         }).collect(Collectors.toList()); | ||||||
|         return R.ok(dictList); |         return R.ok(labelValueVOList); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -80,9 +80,9 @@ public class LogController { | |||||||
|  |  | ||||||
|     @Log(module = "系统日志") |     @Log(module = "系统日志") | ||||||
|     @Operation(summary = "查看系统日志详情") |     @Operation(summary = "查看系统日志详情") | ||||||
|     @GetMapping("/system/{logId}") |     @GetMapping("/system/{id}") | ||||||
|     public R<SystemLogDetailVO> get(@PathVariable Long logId) { |     public R<SystemLogDetailVO> get(@PathVariable Long id) { | ||||||
|         SystemLogDetailVO detailVO = logService.get(logId); |         SystemLogDetailVO detailVO = logService.get(id); | ||||||
|         return R.ok(detailVO); |         return R.ok(detailVO); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -60,17 +60,17 @@ public class UserController extends BaseController<UserService, UserVO, UserDeta | |||||||
|  |  | ||||||
|     @Operation(summary = "重置密码", description = "重置用户登录密码为默认密码") |     @Operation(summary = "重置密码", description = "重置用户登录密码为默认密码") | ||||||
|     @SaCheckPermission("system:user:password:reset") |     @SaCheckPermission("system:user:password:reset") | ||||||
|     @PatchMapping("/{userId}/password") |     @PatchMapping("/{id}/password") | ||||||
|     public R resetPassword(@PathVariable Long userId) { |     public R resetPassword(@PathVariable Long id) { | ||||||
|         baseService.resetPassword(userId); |         baseService.resetPassword(id); | ||||||
|         return R.ok(String.format("重置密码成功,请牢记默认密码:%s", SysConsts.DEFAULT_PASSWORD)); |         return R.ok(String.format("重置密码成功,请牢记默认密码:%s", SysConsts.DEFAULT_PASSWORD)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Operation(summary = "分配角色", description = "为用户新增或移除角色") |     @Operation(summary = "分配角色", description = "为用户新增或移除角色") | ||||||
|     @SaCheckPermission("system:user:role:update") |     @SaCheckPermission("system:user:role:update") | ||||||
|     @PatchMapping("/{userId}/role") |     @PatchMapping("/{id}/role") | ||||||
|     public R updateUserRole(@PathVariable Long userId, @Validated @RequestBody UpdateUserRoleRequest request) { |     public R updateRole(@PathVariable Long id, @Validated @RequestBody UpdateUserRoleRequest request) { | ||||||
|         baseService.updateUserRole(request, userId); |         baseService.updateRole(request, id); | ||||||
|         return R.ok("分配成功"); |         return R.ok("分配成功"); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -41,7 +41,7 @@ logging: | |||||||
|     #excludeMethods: |     #excludeMethods: | ||||||
|     #  - GET |     #  - GET | ||||||
|     # 脱敏字段 |     # 脱敏字段 | ||||||
|     desensitize: |     desensitizeFields: | ||||||
|       - password |       - password | ||||||
|       - Authorization |       - Authorization | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user