Commit 3d3c88dd4f52922c79692c9ceed6d3d6f30ad124
1 parent
1d3ca8a9
完善 AdminUserServiceImpl 单元测试
Showing
13 changed files
with
357 additions
and
142 deletions
yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/util/DataPermissionUtils.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.datapermission.core.util; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; | ||
| 4 | +import cn.iocoder.yudao.framework.datapermission.core.aop.DataPermissionContextHolder; | ||
| 5 | +import lombok.SneakyThrows; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * 数据权限 Util | ||
| 9 | + * | ||
| 10 | + * @author 芋道源码 | ||
| 11 | + */ | ||
| 12 | +public class DataPermissionUtils { | ||
| 13 | + | ||
| 14 | + private static DataPermission DATA_PERMISSION_DISABLE; | ||
| 15 | + | ||
| 16 | + @DataPermission(enable = false) | ||
| 17 | + @SneakyThrows | ||
| 18 | + private static DataPermission getDisableDataPermissionDisable() { | ||
| 19 | + if (DATA_PERMISSION_DISABLE == null) { | ||
| 20 | + DATA_PERMISSION_DISABLE = DataPermissionUtils.class | ||
| 21 | + .getDeclaredMethod("getDisableDataPermissionDisable") | ||
| 22 | + .getAnnotation(DataPermission.class); | ||
| 23 | + } | ||
| 24 | + return DATA_PERMISSION_DISABLE; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + /** | ||
| 28 | + * 忽略数据权限,执行对应的逻辑 | ||
| 29 | + * | ||
| 30 | + * @param runnable 逻辑 | ||
| 31 | + */ | ||
| 32 | + public static void executeIgnore(Runnable runnable) { | ||
| 33 | + DataPermission dataPermission = getDisableDataPermissionDisable(); | ||
| 34 | + DataPermissionContextHolder.add(dataPermission); | ||
| 35 | + try { | ||
| 36 | + // 执行 runnable | ||
| 37 | + runnable.run(); | ||
| 38 | + } finally { | ||
| 39 | + DataPermissionContextHolder.remove(); | ||
| 40 | + } | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | +} |
yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/test/java/cn/iocoder/yudao/framework/datapermission/core/util/DataPermissionUtilsTest.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.datapermission.core.util; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.datapermission.core.aop.DataPermissionContextHolder; | ||
| 4 | +import org.junit.jupiter.api.Test; | ||
| 5 | + | ||
| 6 | +import static org.junit.jupiter.api.Assertions.*; | ||
| 7 | + | ||
| 8 | +public class DataPermissionUtilsTest { | ||
| 9 | + | ||
| 10 | + @Test | ||
| 11 | + public void testExecuteIgnore() { | ||
| 12 | + DataPermissionUtils.executeIgnore(() -> assertFalse(DataPermissionContextHolder.get().enable())); | ||
| 13 | + } | ||
| 14 | + | ||
| 15 | +} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java
| @@ -220,7 +220,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService { | @@ -220,7 +220,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService { | ||
| 220 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.POST.getType())) { | 220 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.POST.getType())) { |
| 221 | postApi.validPostList(options); | 221 | postApi.validPostList(options); |
| 222 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER.getType())) { | 222 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER.getType())) { |
| 223 | - adminUserApi.validUsers(options); | 223 | + adminUserApi.validateUserList(options); |
| 224 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER_GROUP.getType())) { | 224 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER_GROUP.getType())) { |
| 225 | userGroupService.validUserGroups(options); | 225 | userGroupService.validUserGroups(options); |
| 226 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.SCRIPT.getType())) { | 226 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.SCRIPT.getType())) { |
| @@ -288,7 +288,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService { | @@ -288,7 +288,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService { | ||
| 288 | } | 288 | } |
| 289 | 289 | ||
| 290 | private Set<Long> calculateTaskCandidateUsersByDeptMember(BpmTaskAssignRuleDO rule) { | 290 | private Set<Long> calculateTaskCandidateUsersByDeptMember(BpmTaskAssignRuleDO rule) { |
| 291 | - List<AdminUserRespDTO> users = adminUserApi.getUsersByDeptIds(rule.getOptions()); | 291 | + List<AdminUserRespDTO> users = adminUserApi.getUserListByDeptIds(rule.getOptions()); |
| 292 | return convertSet(users, AdminUserRespDTO::getId); | 292 | return convertSet(users, AdminUserRespDTO::getId); |
| 293 | } | 293 | } |
| 294 | 294 |
yudao-module-bpm/yudao-module-bpm-biz/src/test/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImplTest.java
| @@ -86,7 +86,7 @@ public class BpmTaskAssignRuleServiceImplTest extends BaseDbUnitTest { | @@ -86,7 +86,7 @@ public class BpmTaskAssignRuleServiceImplTest extends BaseDbUnitTest { | ||
| 86 | // mock 方法 | 86 | // mock 方法 |
| 87 | List<AdminUserRespDTO> users = CollectionUtils.convertList(asSet(11L, 22L), | 87 | List<AdminUserRespDTO> users = CollectionUtils.convertList(asSet(11L, 22L), |
| 88 | id -> new AdminUserRespDTO().setId(id)); | 88 | id -> new AdminUserRespDTO().setId(id)); |
| 89 | - when(adminUserApi.getUsersByDeptIds(eq(rule.getOptions()))).thenReturn(users); | 89 | + when(adminUserApi.getUserListByDeptIds(eq(rule.getOptions()))).thenReturn(users); |
| 90 | mockGetUserMap(asSet(11L, 22L)); | 90 | mockGetUserMap(asSet(11L, 22L)); |
| 91 | 91 | ||
| 92 | // 调用 | 92 | // 调用 |
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java
| @@ -6,7 +6,6 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; | @@ -6,7 +6,6 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; | ||
| 6 | import java.util.Collection; | 6 | import java.util.Collection; |
| 7 | import java.util.List; | 7 | import java.util.List; |
| 8 | import java.util.Map; | 8 | import java.util.Map; |
| 9 | -import java.util.Set; | ||
| 10 | 9 | ||
| 11 | /** | 10 | /** |
| 12 | * Admin 用户 API 接口 | 11 | * Admin 用户 API 接口 |
| @@ -29,7 +28,7 @@ public interface AdminUserApi { | @@ -29,7 +28,7 @@ public interface AdminUserApi { | ||
| 29 | * @param ids 用户 ID 们 | 28 | * @param ids 用户 ID 们 |
| 30 | * @return 用户对象信息 | 29 | * @return 用户对象信息 |
| 31 | */ | 30 | */ |
| 32 | - List<AdminUserRespDTO> getUsers(Collection<Long> ids); | 31 | + List<AdminUserRespDTO> getUserList(Collection<Long> ids); |
| 33 | 32 | ||
| 34 | /** | 33 | /** |
| 35 | * 获得指定部门的用户数组 | 34 | * 获得指定部门的用户数组 |
| @@ -37,7 +36,7 @@ public interface AdminUserApi { | @@ -37,7 +36,7 @@ public interface AdminUserApi { | ||
| 37 | * @param deptIds 部门数组 | 36 | * @param deptIds 部门数组 |
| 38 | * @return 用户数组 | 37 | * @return 用户数组 |
| 39 | */ | 38 | */ |
| 40 | - List<AdminUserRespDTO> getUsersByDeptIds(Collection<Long> deptIds); | 39 | + List<AdminUserRespDTO> getUserListByDeptIds(Collection<Long> deptIds); |
| 41 | 40 | ||
| 42 | /** | 41 | /** |
| 43 | * 获得指定岗位的用户数组 | 42 | * 获得指定岗位的用户数组 |
| @@ -54,7 +53,7 @@ public interface AdminUserApi { | @@ -54,7 +53,7 @@ public interface AdminUserApi { | ||
| 54 | * @return 用户 Map | 53 | * @return 用户 Map |
| 55 | */ | 54 | */ |
| 56 | default Map<Long, AdminUserRespDTO> getUserMap(Collection<Long> ids) { | 55 | default Map<Long, AdminUserRespDTO> getUserMap(Collection<Long> ids) { |
| 57 | - List<AdminUserRespDTO> users = getUsers(ids); | 56 | + List<AdminUserRespDTO> users = getUserList(ids); |
| 58 | return CollectionUtils.convertMap(users, AdminUserRespDTO::getId); | 57 | return CollectionUtils.convertMap(users, AdminUserRespDTO::getId); |
| 59 | } | 58 | } |
| 60 | 59 | ||
| @@ -65,6 +64,6 @@ public interface AdminUserApi { | @@ -65,6 +64,6 @@ public interface AdminUserApi { | ||
| 65 | * | 64 | * |
| 66 | * @param ids 用户编号数组 | 65 | * @param ids 用户编号数组 |
| 67 | */ | 66 | */ |
| 68 | - void validUsers(Set<Long> ids); | 67 | + void validateUserList(Collection<Long> ids); |
| 69 | 68 | ||
| 70 | } | 69 | } |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java
| @@ -9,7 +9,6 @@ import org.springframework.stereotype.Service; | @@ -9,7 +9,6 @@ import org.springframework.stereotype.Service; | ||
| 9 | import javax.annotation.Resource; | 9 | import javax.annotation.Resource; |
| 10 | import java.util.Collection; | 10 | import java.util.Collection; |
| 11 | import java.util.List; | 11 | import java.util.List; |
| 12 | -import java.util.Set; | ||
| 13 | 12 | ||
| 14 | /** | 13 | /** |
| 15 | * Admin 用户 API 实现类 | 14 | * Admin 用户 API 实现类 |
| @@ -29,26 +28,26 @@ public class AdminUserApiImpl implements AdminUserApi { | @@ -29,26 +28,26 @@ public class AdminUserApiImpl implements AdminUserApi { | ||
| 29 | } | 28 | } |
| 30 | 29 | ||
| 31 | @Override | 30 | @Override |
| 32 | - public List<AdminUserRespDTO> getUsers(Collection<Long> ids) { | ||
| 33 | - List<AdminUserDO> users = userService.getUsers(ids); | 31 | + public List<AdminUserRespDTO> getUserList(Collection<Long> ids) { |
| 32 | + List<AdminUserDO> users = userService.getUserList(ids); | ||
| 34 | return UserConvert.INSTANCE.convertList4(users); | 33 | return UserConvert.INSTANCE.convertList4(users); |
| 35 | } | 34 | } |
| 36 | 35 | ||
| 37 | @Override | 36 | @Override |
| 38 | - public List<AdminUserRespDTO> getUsersByDeptIds(Collection<Long> deptIds) { | ||
| 39 | - List<AdminUserDO> users = userService.getUsersByDeptIds(deptIds); | 37 | + public List<AdminUserRespDTO> getUserListByDeptIds(Collection<Long> deptIds) { |
| 38 | + List<AdminUserDO> users = userService.getUserListByDeptIds(deptIds); | ||
| 40 | return UserConvert.INSTANCE.convertList4(users); | 39 | return UserConvert.INSTANCE.convertList4(users); |
| 41 | } | 40 | } |
| 42 | 41 | ||
| 43 | @Override | 42 | @Override |
| 44 | public List<AdminUserRespDTO> getUsersByPostIds(Collection<Long> postIds) { | 43 | public List<AdminUserRespDTO> getUsersByPostIds(Collection<Long> postIds) { |
| 45 | - List<AdminUserDO> users = userService.getUsersByPostIds(postIds); | 44 | + List<AdminUserDO> users = userService.getUserListByPostIds(postIds); |
| 46 | return UserConvert.INSTANCE.convertList4(users); | 45 | return UserConvert.INSTANCE.convertList4(users); |
| 47 | } | 46 | } |
| 48 | 47 | ||
| 49 | @Override | 48 | @Override |
| 50 | - public void validUsers(Set<Long> ids) { | ||
| 51 | - userService.validUsers(ids); | 49 | + public void validateUserList(Collection<Long> ids) { |
| 50 | + userService.validateUserList(ids); | ||
| 52 | } | 51 | } |
| 53 | 52 | ||
| 54 | } | 53 | } |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java
| @@ -111,9 +111,9 @@ public class UserController { | @@ -111,9 +111,9 @@ public class UserController { | ||
| 111 | 111 | ||
| 112 | @GetMapping("/list-all-simple") | 112 | @GetMapping("/list-all-simple") |
| 113 | @ApiOperation(value = "获取用户精简信息列表", notes = "只包含被开启的用户,主要用于前端的下拉选项") | 113 | @ApiOperation(value = "获取用户精简信息列表", notes = "只包含被开启的用户,主要用于前端的下拉选项") |
| 114 | - public CommonResult<List<UserSimpleRespVO>> getSimpleUsers() { | 114 | + public CommonResult<List<UserSimpleRespVO>> getSimpleUserList() { |
| 115 | // 获用户列表,只要开启状态的 | 115 | // 获用户列表,只要开启状态的 |
| 116 | - List<AdminUserDO> list = userService.getUsersByStatus(CommonStatusEnum.ENABLE.getStatus()); | 116 | + List<AdminUserDO> list = userService.getUserListByStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 117 | // 排序后,返回给前端 | 117 | // 排序后,返回给前端 |
| 118 | return success(UserConvert.INSTANCE.convertList04(list)); | 118 | return success(UserConvert.INSTANCE.convertList04(list)); |
| 119 | } | 119 | } |
| @@ -122,7 +122,7 @@ public class UserController { | @@ -122,7 +122,7 @@ public class UserController { | ||
| 122 | @ApiOperation("获得用户详情") | 122 | @ApiOperation("获得用户详情") |
| 123 | @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) | 123 | @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) |
| 124 | @PreAuthorize("@ss.hasPermission('system:user:query')") | 124 | @PreAuthorize("@ss.hasPermission('system:user:query')") |
| 125 | - public CommonResult<UserRespVO> getInfo(@RequestParam("id") Long id) { | 125 | + public CommonResult<UserRespVO> getUser(@RequestParam("id") Long id) { |
| 126 | return success(UserConvert.INSTANCE.convert(userService.getUser(id))); | 126 | return success(UserConvert.INSTANCE.convert(userService.getUser(id))); |
| 127 | } | 127 | } |
| 128 | 128 | ||
| @@ -130,10 +130,10 @@ public class UserController { | @@ -130,10 +130,10 @@ public class UserController { | ||
| 130 | @ApiOperation("导出用户") | 130 | @ApiOperation("导出用户") |
| 131 | @PreAuthorize("@ss.hasPermission('system:user:export')") | 131 | @PreAuthorize("@ss.hasPermission('system:user:export')") |
| 132 | @OperateLog(type = EXPORT) | 132 | @OperateLog(type = EXPORT) |
| 133 | - public void exportUsers(@Validated UserExportReqVO reqVO, | ||
| 134 | - HttpServletResponse response) throws IOException { | 133 | + public void exportUserList(@Validated UserExportReqVO reqVO, |
| 134 | + HttpServletResponse response) throws IOException { | ||
| 135 | // 获得用户列表 | 135 | // 获得用户列表 |
| 136 | - List<AdminUserDO> users = userService.getUsers(reqVO); | 136 | + List<AdminUserDO> users = userService.getUserList(reqVO); |
| 137 | 137 | ||
| 138 | // 获得拼接需要的数据 | 138 | // 获得拼接需要的数据 |
| 139 | Collection<Long> deptIds = convertList(users, AdminUserDO::getDeptId); | 139 | Collection<Long> deptIds = convertList(users, AdminUserDO::getDeptId); |
| @@ -183,7 +183,7 @@ public class UserController { | @@ -183,7 +183,7 @@ public class UserController { | ||
| 183 | public CommonResult<UserImportRespVO> importExcel(@RequestParam("file") MultipartFile file, | 183 | public CommonResult<UserImportRespVO> importExcel(@RequestParam("file") MultipartFile file, |
| 184 | @RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception { | 184 | @RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception { |
| 185 | List<UserImportExcelVO> list = ExcelUtils.read(file, UserImportExcelVO.class); | 185 | List<UserImportExcelVO> list = ExcelUtils.read(file, UserImportExcelVO.class); |
| 186 | - return success(userService.importUsers(list, updateSupport)); | 186 | + return success(userService.importUserList(list, updateSupport)); |
| 187 | } | 187 | } |
| 188 | 188 | ||
| 189 | } | 189 | } |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java
| @@ -6,7 +6,6 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | @@ -6,7 +6,6 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 6 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserExportReqVO; | 6 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserExportReqVO; |
| 7 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO; | 7 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO; |
| 8 | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | 8 | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; |
| 9 | -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
| 10 | import org.apache.ibatis.annotations.Mapper; | 9 | import org.apache.ibatis.annotations.Mapper; |
| 11 | 10 | ||
| 12 | import java.util.Collection; | 11 | import java.util.Collection; |
| @@ -16,15 +15,15 @@ import java.util.List; | @@ -16,15 +15,15 @@ import java.util.List; | ||
| 16 | public interface AdminUserMapper extends BaseMapperX<AdminUserDO> { | 15 | public interface AdminUserMapper extends BaseMapperX<AdminUserDO> { |
| 17 | 16 | ||
| 18 | default AdminUserDO selectByUsername(String username) { | 17 | default AdminUserDO selectByUsername(String username) { |
| 19 | - return selectOne(new LambdaQueryWrapper<AdminUserDO>().eq(AdminUserDO::getUsername, username)); | 18 | + return selectOne(AdminUserDO::getUsername, username); |
| 20 | } | 19 | } |
| 21 | 20 | ||
| 22 | default AdminUserDO selectByEmail(String email) { | 21 | default AdminUserDO selectByEmail(String email) { |
| 23 | - return selectOne(new LambdaQueryWrapper<AdminUserDO>().eq(AdminUserDO::getEmail, email)); | 22 | + return selectOne(AdminUserDO::getEmail, email); |
| 24 | } | 23 | } |
| 25 | 24 | ||
| 26 | default AdminUserDO selectByMobile(String mobile) { | 25 | default AdminUserDO selectByMobile(String mobile) { |
| 27 | - return selectOne(new LambdaQueryWrapper<AdminUserDO>().eq(AdminUserDO::getMobile, mobile)); | 26 | + return selectOne(AdminUserDO::getMobile, mobile); |
| 28 | } | 27 | } |
| 29 | 28 | ||
| 30 | default PageResult<AdminUserDO> selectPage(UserPageReqVO reqVO, Collection<Long> deptIds) { | 29 | default PageResult<AdminUserDO> selectPage(UserPageReqVO reqVO, Collection<Long> deptIds) { |
| @@ -50,10 +49,6 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> { | @@ -50,10 +49,6 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> { | ||
| 50 | return selectList(new LambdaQueryWrapperX<AdminUserDO>().like(AdminUserDO::getNickname, nickname)); | 49 | return selectList(new LambdaQueryWrapperX<AdminUserDO>().like(AdminUserDO::getNickname, nickname)); |
| 51 | } | 50 | } |
| 52 | 51 | ||
| 53 | - default List<AdminUserDO> selectListByUsername(String username) { | ||
| 54 | - return selectList(new LambdaQueryWrapperX<AdminUserDO>().like(AdminUserDO::getUsername, username)); | ||
| 55 | - } | ||
| 56 | - | ||
| 57 | default List<AdminUserDO> selectListByStatus(Integer status) { | 52 | default List<AdminUserDO> selectListByStatus(Integer status) { |
| 58 | return selectList(AdminUserDO::getStatus, status); | 53 | return selectList(AdminUserDO::getStatus, status); |
| 59 | } | 54 | } |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImpl.java
| @@ -49,7 +49,7 @@ public class OperateLogServiceImpl implements OperateLogService { | @@ -49,7 +49,7 @@ public class OperateLogServiceImpl implements OperateLogService { | ||
| 49 | // 处理基于用户昵称的查询 | 49 | // 处理基于用户昵称的查询 |
| 50 | Collection<Long> userIds = null; | 50 | Collection<Long> userIds = null; |
| 51 | if (StrUtil.isNotEmpty(reqVO.getUserNickname())) { | 51 | if (StrUtil.isNotEmpty(reqVO.getUserNickname())) { |
| 52 | - userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), AdminUserDO::getId); | 52 | + userIds = convertSet(userService.getUserListByNickname(reqVO.getUserNickname()), AdminUserDO::getId); |
| 53 | if (CollUtil.isEmpty(userIds)) { | 53 | if (CollUtil.isEmpty(userIds)) { |
| 54 | return PageResult.empty(); | 54 | return PageResult.empty(); |
| 55 | } | 55 | } |
| @@ -63,7 +63,7 @@ public class OperateLogServiceImpl implements OperateLogService { | @@ -63,7 +63,7 @@ public class OperateLogServiceImpl implements OperateLogService { | ||
| 63 | // 处理基于用户昵称的查询 | 63 | // 处理基于用户昵称的查询 |
| 64 | Collection<Long> userIds = null; | 64 | Collection<Long> userIds = null; |
| 65 | if (StrUtil.isNotEmpty(reqVO.getUserNickname())) { | 65 | if (StrUtil.isNotEmpty(reqVO.getUserNickname())) { |
| 66 | - userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), AdminUserDO::getId); | 66 | + userIds = convertSet(userService.getUserListByNickname(reqVO.getUserNickname()), AdminUserDO::getId); |
| 67 | if (CollUtil.isEmpty(userIds)) { | 67 | if (CollUtil.isEmpty(userIds)) { |
| 68 | return Collections.emptyList(); | 68 | return Collections.emptyList(); |
| 69 | } | 69 | } |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java
| @@ -127,7 +127,7 @@ public interface AdminUserService { | @@ -127,7 +127,7 @@ public interface AdminUserService { | ||
| 127 | * @param deptIds 部门数组 | 127 | * @param deptIds 部门数组 |
| 128 | * @return 用户数组 | 128 | * @return 用户数组 |
| 129 | */ | 129 | */ |
| 130 | - List<AdminUserDO> getUsersByDeptIds(Collection<Long> deptIds); | 130 | + List<AdminUserDO> getUserListByDeptIds(Collection<Long> deptIds); |
| 131 | 131 | ||
| 132 | /** | 132 | /** |
| 133 | * 获得指定岗位的用户数组 | 133 | * 获得指定岗位的用户数组 |
| @@ -135,7 +135,7 @@ public interface AdminUserService { | @@ -135,7 +135,7 @@ public interface AdminUserService { | ||
| 135 | * @param postIds 岗位数组 | 135 | * @param postIds 岗位数组 |
| 136 | * @return 用户数组 | 136 | * @return 用户数组 |
| 137 | */ | 137 | */ |
| 138 | - List<AdminUserDO> getUsersByPostIds(Collection<Long> postIds); | 138 | + List<AdminUserDO> getUserListByPostIds(Collection<Long> postIds); |
| 139 | 139 | ||
| 140 | /** | 140 | /** |
| 141 | * 获得用户列表 | 141 | * 获得用户列表 |
| @@ -143,7 +143,7 @@ public interface AdminUserService { | @@ -143,7 +143,7 @@ public interface AdminUserService { | ||
| 143 | * @param ids 用户编号数组 | 143 | * @param ids 用户编号数组 |
| 144 | * @return 用户列表 | 144 | * @return 用户列表 |
| 145 | */ | 145 | */ |
| 146 | - List<AdminUserDO> getUsers(Collection<Long> ids); | 146 | + List<AdminUserDO> getUserList(Collection<Long> ids); |
| 147 | 147 | ||
| 148 | /** | 148 | /** |
| 149 | * 校验用户们是否有效。如下情况,视为无效: | 149 | * 校验用户们是否有效。如下情况,视为无效: |
| @@ -152,7 +152,7 @@ public interface AdminUserService { | @@ -152,7 +152,7 @@ public interface AdminUserService { | ||
| 152 | * | 152 | * |
| 153 | * @param ids 用户编号数组 | 153 | * @param ids 用户编号数组 |
| 154 | */ | 154 | */ |
| 155 | - void validUsers(Set<Long> ids); | 155 | + void validateUserList(Collection<Long> ids); |
| 156 | 156 | ||
| 157 | /** | 157 | /** |
| 158 | * 获得用户 Map | 158 | * 获得用户 Map |
| @@ -164,7 +164,7 @@ public interface AdminUserService { | @@ -164,7 +164,7 @@ public interface AdminUserService { | ||
| 164 | if (CollUtil.isEmpty(ids)) { | 164 | if (CollUtil.isEmpty(ids)) { |
| 165 | return new HashMap<>(); | 165 | return new HashMap<>(); |
| 166 | } | 166 | } |
| 167 | - return CollectionUtils.convertMap(getUsers(ids), AdminUserDO::getId); | 167 | + return CollectionUtils.convertMap(getUserList(ids), AdminUserDO::getId); |
| 168 | } | 168 | } |
| 169 | 169 | ||
| 170 | /** | 170 | /** |
| @@ -173,7 +173,7 @@ public interface AdminUserService { | @@ -173,7 +173,7 @@ public interface AdminUserService { | ||
| 173 | * @param reqVO 列表请求 | 173 | * @param reqVO 列表请求 |
| 174 | * @return 用户列表 | 174 | * @return 用户列表 |
| 175 | */ | 175 | */ |
| 176 | - List<AdminUserDO> getUsers(UserExportReqVO reqVO); | 176 | + List<AdminUserDO> getUserList(UserExportReqVO reqVO); |
| 177 | 177 | ||
| 178 | /** | 178 | /** |
| 179 | * 获得用户列表,基于昵称模糊匹配 | 179 | * 获得用户列表,基于昵称模糊匹配 |
| @@ -181,15 +181,7 @@ public interface AdminUserService { | @@ -181,15 +181,7 @@ public interface AdminUserService { | ||
| 181 | * @param nickname 昵称 | 181 | * @param nickname 昵称 |
| 182 | * @return 用户列表 | 182 | * @return 用户列表 |
| 183 | */ | 183 | */ |
| 184 | - List<AdminUserDO> getUsersByNickname(String nickname); | ||
| 185 | - | ||
| 186 | - /** | ||
| 187 | - * 获得用户列表,基于用户账号模糊匹配 | ||
| 188 | - * | ||
| 189 | - * @param username 用户账号 | ||
| 190 | - * @return 用户列表 | ||
| 191 | - */ | ||
| 192 | - List<AdminUserDO> getUsersByUsername(String username); | 184 | + List<AdminUserDO> getUserListByNickname(String nickname); |
| 193 | 185 | ||
| 194 | /** | 186 | /** |
| 195 | * 批量导入用户 | 187 | * 批量导入用户 |
| @@ -198,7 +190,7 @@ public interface AdminUserService { | @@ -198,7 +190,7 @@ public interface AdminUserService { | ||
| 198 | * @param isUpdateSupport 是否支持更新 | 190 | * @param isUpdateSupport 是否支持更新 |
| 199 | * @return 导入结果 | 191 | * @return 导入结果 |
| 200 | */ | 192 | */ |
| 201 | - UserImportRespVO importUsers(List<UserImportExcelVO> importUsers, boolean isUpdateSupport); | 193 | + UserImportRespVO importUserList(List<UserImportExcelVO> importUsers, boolean isUpdateSupport); |
| 202 | 194 | ||
| 203 | /** | 195 | /** |
| 204 | * 获得指定状态的用户们 | 196 | * 获得指定状态的用户们 |
| @@ -206,7 +198,7 @@ public interface AdminUserService { | @@ -206,7 +198,7 @@ public interface AdminUserService { | ||
| 206 | * @param status 状态 | 198 | * @param status 状态 |
| 207 | * @return 用户们 | 199 | * @return 用户们 |
| 208 | */ | 200 | */ |
| 209 | - List<AdminUserDO> getUsersByStatus(Integer status); | 201 | + List<AdminUserDO> getUserListByStatus(Integer status); |
| 210 | 202 | ||
| 211 | /** | 203 | /** |
| 212 | * 判断密码是否匹配 | 204 | * 判断密码是否匹配 |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
| @@ -8,7 +8,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | @@ -8,7 +8,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 8 | import cn.iocoder.yudao.framework.common.exception.ServiceException; | 8 | import cn.iocoder.yudao.framework.common.exception.ServiceException; |
| 9 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 9 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 10 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | 10 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 11 | -import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; | 11 | +import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils; |
| 12 | import cn.iocoder.yudao.module.infra.api.file.FileApi; | 12 | import cn.iocoder.yudao.module.infra.api.file.FileApi; |
| 13 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; | 13 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; |
| 14 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; | 14 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; |
| @@ -74,10 +74,6 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -74,10 +74,6 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 74 | @Resource | 74 | @Resource |
| 75 | private FileApi fileApi; | 75 | private FileApi fileApi; |
| 76 | 76 | ||
| 77 | - @Resource | ||
| 78 | - @Lazy // 循环依赖(自己依赖自己),避免报错 | ||
| 79 | - private AdminUserServiceImpl self; | ||
| 80 | - | ||
| 81 | @Override | 77 | @Override |
| 82 | @Transactional(rollbackFor = Exception.class) | 78 | @Transactional(rollbackFor = Exception.class) |
| 83 | public Long createUser(UserCreateReqVO reqVO) { | 79 | public Long createUser(UserCreateReqVO reqVO) { |
| @@ -89,7 +85,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -89,7 +85,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 89 | } | 85 | } |
| 90 | }); | 86 | }); |
| 91 | // 校验正确性 | 87 | // 校验正确性 |
| 92 | - self.checkCreateOrUpdate(null, reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), | 88 | + validateUserForCreateOrUpdate(null, reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), |
| 93 | reqVO.getDeptId(), reqVO.getPostIds()); | 89 | reqVO.getDeptId(), reqVO.getPostIds()); |
| 94 | // 插入用户 | 90 | // 插入用户 |
| 95 | AdminUserDO user = UserConvert.INSTANCE.convert(reqVO); | 91 | AdminUserDO user = UserConvert.INSTANCE.convert(reqVO); |
| @@ -108,7 +104,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -108,7 +104,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 108 | @Transactional(rollbackFor = Exception.class) | 104 | @Transactional(rollbackFor = Exception.class) |
| 109 | public void updateUser(UserUpdateReqVO reqVO) { | 105 | public void updateUser(UserUpdateReqVO reqVO) { |
| 110 | // 校验正确性 | 106 | // 校验正确性 |
| 111 | - self.checkCreateOrUpdate(reqVO.getId(), reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), | 107 | + validateUserForCreateOrUpdate(reqVO.getId(), reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), |
| 112 | reqVO.getDeptId(), reqVO.getPostIds()); | 108 | reqVO.getDeptId(), reqVO.getPostIds()); |
| 113 | // 更新用户 | 109 | // 更新用户 |
| 114 | AdminUserDO updateObj = UserConvert.INSTANCE.convert(reqVO); | 110 | AdminUserDO updateObj = UserConvert.INSTANCE.convert(reqVO); |
| @@ -142,9 +138,9 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -142,9 +138,9 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 142 | @Override | 138 | @Override |
| 143 | public void updateUserProfile(Long id, UserProfileUpdateReqVO reqVO) { | 139 | public void updateUserProfile(Long id, UserProfileUpdateReqVO reqVO) { |
| 144 | // 校验正确性 | 140 | // 校验正确性 |
| 145 | - checkUserExists(id); | ||
| 146 | - checkEmailUnique(id, reqVO.getEmail()); | ||
| 147 | - checkMobileUnique(id, reqVO.getMobile()); | 141 | + validateUserExists(id); |
| 142 | + validateEmailUnique(id, reqVO.getEmail()); | ||
| 143 | + validateMobileUnique(id, reqVO.getMobile()); | ||
| 148 | // 执行更新 | 144 | // 执行更新 |
| 149 | userMapper.updateById(UserConvert.INSTANCE.convert(reqVO).setId(id)); | 145 | userMapper.updateById(UserConvert.INSTANCE.convert(reqVO).setId(id)); |
| 150 | } | 146 | } |
| @@ -152,7 +148,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -152,7 +148,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 152 | @Override | 148 | @Override |
| 153 | public void updateUserPassword(Long id, UserProfileUpdatePasswordReqVO reqVO) { | 149 | public void updateUserPassword(Long id, UserProfileUpdatePasswordReqVO reqVO) { |
| 154 | // 校验旧密码密码 | 150 | // 校验旧密码密码 |
| 155 | - checkOldPassword(id, reqVO.getOldPassword()); | 151 | + validateOldPassword(id, reqVO.getOldPassword()); |
| 156 | // 执行更新 | 152 | // 执行更新 |
| 157 | AdminUserDO updateObj = new AdminUserDO().setId(id); | 153 | AdminUserDO updateObj = new AdminUserDO().setId(id); |
| 158 | updateObj.setPassword(encodePassword(reqVO.getNewPassword())); // 加密密码 | 154 | updateObj.setPassword(encodePassword(reqVO.getNewPassword())); // 加密密码 |
| @@ -161,7 +157,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -161,7 +157,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 161 | 157 | ||
| 162 | @Override | 158 | @Override |
| 163 | public String updateUserAvatar(Long id, InputStream avatarFile) throws Exception { | 159 | public String updateUserAvatar(Long id, InputStream avatarFile) throws Exception { |
| 164 | - checkUserExists(id); | 160 | + validateUserExists(id); |
| 165 | // 存储文件 | 161 | // 存储文件 |
| 166 | String avatar = fileApi.createFile(IoUtil.readBytes(avatarFile)); | 162 | String avatar = fileApi.createFile(IoUtil.readBytes(avatarFile)); |
| 167 | // 更新路径 | 163 | // 更新路径 |
| @@ -175,7 +171,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -175,7 +171,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 175 | @Override | 171 | @Override |
| 176 | public void updateUserPassword(Long id, String password) { | 172 | public void updateUserPassword(Long id, String password) { |
| 177 | // 校验用户存在 | 173 | // 校验用户存在 |
| 178 | - checkUserExists(id); | 174 | + validateUserExists(id); |
| 179 | // 更新密码 | 175 | // 更新密码 |
| 180 | AdminUserDO updateObj = new AdminUserDO(); | 176 | AdminUserDO updateObj = new AdminUserDO(); |
| 181 | updateObj.setId(id); | 177 | updateObj.setId(id); |
| @@ -186,7 +182,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -186,7 +182,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 186 | @Override | 182 | @Override |
| 187 | public void updateUserStatus(Long id, Integer status) { | 183 | public void updateUserStatus(Long id, Integer status) { |
| 188 | // 校验用户存在 | 184 | // 校验用户存在 |
| 189 | - checkUserExists(id); | 185 | + validateUserExists(id); |
| 190 | // 更新状态 | 186 | // 更新状态 |
| 191 | AdminUserDO updateObj = new AdminUserDO(); | 187 | AdminUserDO updateObj = new AdminUserDO(); |
| 192 | updateObj.setId(id); | 188 | updateObj.setId(id); |
| @@ -198,7 +194,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -198,7 +194,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 198 | @Transactional(rollbackFor = Exception.class) | 194 | @Transactional(rollbackFor = Exception.class) |
| 199 | public void deleteUser(Long id) { | 195 | public void deleteUser(Long id) { |
| 200 | // 校验用户存在 | 196 | // 校验用户存在 |
| 201 | - checkUserExists(id); | 197 | + validateUserExists(id); |
| 202 | // 删除用户 | 198 | // 删除用户 |
| 203 | userMapper.deleteById(id); | 199 | userMapper.deleteById(id); |
| 204 | // 删除用户关联数据 | 200 | // 删除用户关联数据 |
| @@ -228,7 +224,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -228,7 +224,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 228 | } | 224 | } |
| 229 | 225 | ||
| 230 | @Override | 226 | @Override |
| 231 | - public List<AdminUserDO> getUsersByDeptIds(Collection<Long> deptIds) { | 227 | + public List<AdminUserDO> getUserListByDeptIds(Collection<Long> deptIds) { |
| 232 | if (CollUtil.isEmpty(deptIds)) { | 228 | if (CollUtil.isEmpty(deptIds)) { |
| 233 | return Collections.emptyList(); | 229 | return Collections.emptyList(); |
| 234 | } | 230 | } |
| @@ -236,7 +232,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -236,7 +232,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 236 | } | 232 | } |
| 237 | 233 | ||
| 238 | @Override | 234 | @Override |
| 239 | - public List<AdminUserDO> getUsersByPostIds(Collection<Long> postIds) { | 235 | + public List<AdminUserDO> getUserListByPostIds(Collection<Long> postIds) { |
| 240 | if (CollUtil.isEmpty(postIds)) { | 236 | if (CollUtil.isEmpty(postIds)) { |
| 241 | return Collections.emptyList(); | 237 | return Collections.emptyList(); |
| 242 | } | 238 | } |
| @@ -248,7 +244,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -248,7 +244,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 248 | } | 244 | } |
| 249 | 245 | ||
| 250 | @Override | 246 | @Override |
| 251 | - public List<AdminUserDO> getUsers(Collection<Long> ids) { | 247 | + public List<AdminUserDO> getUserList(Collection<Long> ids) { |
| 252 | if (CollUtil.isEmpty(ids)) { | 248 | if (CollUtil.isEmpty(ids)) { |
| 253 | return Collections.emptyList(); | 249 | return Collections.emptyList(); |
| 254 | } | 250 | } |
| @@ -256,7 +252,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -256,7 +252,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 256 | } | 252 | } |
| 257 | 253 | ||
| 258 | @Override | 254 | @Override |
| 259 | - public void validUsers(Set<Long> ids) { | 255 | + public void validateUserList(Collection<Long> ids) { |
| 260 | if (CollUtil.isEmpty(ids)) { | 256 | if (CollUtil.isEmpty(ids)) { |
| 261 | return; | 257 | return; |
| 262 | } | 258 | } |
| @@ -276,20 +272,15 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -276,20 +272,15 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 276 | } | 272 | } |
| 277 | 273 | ||
| 278 | @Override | 274 | @Override |
| 279 | - public List<AdminUserDO> getUsers(UserExportReqVO reqVO) { | 275 | + public List<AdminUserDO> getUserList(UserExportReqVO reqVO) { |
| 280 | return userMapper.selectList(reqVO, getDeptCondition(reqVO.getDeptId())); | 276 | return userMapper.selectList(reqVO, getDeptCondition(reqVO.getDeptId())); |
| 281 | } | 277 | } |
| 282 | 278 | ||
| 283 | @Override | 279 | @Override |
| 284 | - public List<AdminUserDO> getUsersByNickname(String nickname) { | 280 | + public List<AdminUserDO> getUserListByNickname(String nickname) { |
| 285 | return userMapper.selectListByNickname(nickname); | 281 | return userMapper.selectListByNickname(nickname); |
| 286 | } | 282 | } |
| 287 | 283 | ||
| 288 | - @Override | ||
| 289 | - public List<AdminUserDO> getUsersByUsername(String username) { | ||
| 290 | - return userMapper.selectListByUsername(username); | ||
| 291 | - } | ||
| 292 | - | ||
| 293 | /** | 284 | /** |
| 294 | * 获得部门条件:查询指定部门的子部门编号们,包括自身 | 285 | * 获得部门条件:查询指定部门的子部门编号们,包括自身 |
| 295 | * @param deptId 部门编号 | 286 | * @param deptId 部门编号 |
| @@ -305,25 +296,27 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -305,25 +296,27 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 305 | return deptIds; | 296 | return deptIds; |
| 306 | } | 297 | } |
| 307 | 298 | ||
| 308 | - @DataPermission(enable = false) // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确 | ||
| 309 | - public void checkCreateOrUpdate(Long id, String username, String mobile, String email, | ||
| 310 | - Long deptId, Set<Long> postIds) { | ||
| 311 | - // 校验用户存在 | ||
| 312 | - checkUserExists(id); | ||
| 313 | - // 校验用户名唯一 | ||
| 314 | - checkUsernameUnique(id, username); | ||
| 315 | - // 校验手机号唯一 | ||
| 316 | - checkMobileUnique(id, mobile); | ||
| 317 | - // 校验邮箱唯一 | ||
| 318 | - checkEmailUnique(id, email); | ||
| 319 | - // 校验部门处于开启状态 | ||
| 320 | - deptService.validateDeptList(CollectionUtils.singleton(deptId)); | ||
| 321 | - // 校验岗位处于开启状态 | ||
| 322 | - postService.validatePostList(postIds); | 299 | + private void validateUserForCreateOrUpdate(Long id, String username, String mobile, String email, |
| 300 | + Long deptId, Set<Long> postIds) { | ||
| 301 | + // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确 | ||
| 302 | + DataPermissionUtils.executeIgnore(() -> { | ||
| 303 | + // 校验用户存在 | ||
| 304 | + validateUserExists(id); | ||
| 305 | + // 校验用户名唯一 | ||
| 306 | + validateUsernameUnique(id, username); | ||
| 307 | + // 校验手机号唯一 | ||
| 308 | + validateMobileUnique(id, mobile); | ||
| 309 | + // 校验邮箱唯一 | ||
| 310 | + validateEmailUnique(id, email); | ||
| 311 | + // 校验部门处于开启状态 | ||
| 312 | + deptService.validateDeptList(CollectionUtils.singleton(deptId)); | ||
| 313 | + // 校验岗位处于开启状态 | ||
| 314 | + postService.validatePostList(postIds); | ||
| 315 | + }); | ||
| 323 | } | 316 | } |
| 324 | 317 | ||
| 325 | @VisibleForTesting | 318 | @VisibleForTesting |
| 326 | - public void checkUserExists(Long id) { | 319 | + void validateUserExists(Long id) { |
| 327 | if (id == null) { | 320 | if (id == null) { |
| 328 | return; | 321 | return; |
| 329 | } | 322 | } |
| @@ -334,7 +327,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -334,7 +327,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 334 | } | 327 | } |
| 335 | 328 | ||
| 336 | @VisibleForTesting | 329 | @VisibleForTesting |
| 337 | - public void checkUsernameUnique(Long id, String username) { | 330 | + void validateUsernameUnique(Long id, String username) { |
| 338 | if (StrUtil.isBlank(username)) { | 331 | if (StrUtil.isBlank(username)) { |
| 339 | return; | 332 | return; |
| 340 | } | 333 | } |
| @@ -352,7 +345,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -352,7 +345,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 352 | } | 345 | } |
| 353 | 346 | ||
| 354 | @VisibleForTesting | 347 | @VisibleForTesting |
| 355 | - public void checkEmailUnique(Long id, String email) { | 348 | + void validateEmailUnique(Long id, String email) { |
| 356 | if (StrUtil.isBlank(email)) { | 349 | if (StrUtil.isBlank(email)) { |
| 357 | return; | 350 | return; |
| 358 | } | 351 | } |
| @@ -370,7 +363,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -370,7 +363,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 370 | } | 363 | } |
| 371 | 364 | ||
| 372 | @VisibleForTesting | 365 | @VisibleForTesting |
| 373 | - public void checkMobileUnique(Long id, String mobile) { | 366 | + void validateMobileUnique(Long id, String mobile) { |
| 374 | if (StrUtil.isBlank(mobile)) { | 367 | if (StrUtil.isBlank(mobile)) { |
| 375 | return; | 368 | return; |
| 376 | } | 369 | } |
| @@ -393,7 +386,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -393,7 +386,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 393 | * @param oldPassword 旧密码 | 386 | * @param oldPassword 旧密码 |
| 394 | */ | 387 | */ |
| 395 | @VisibleForTesting | 388 | @VisibleForTesting |
| 396 | - public void checkOldPassword(Long id, String oldPassword) { | 389 | + void validateOldPassword(Long id, String oldPassword) { |
| 397 | AdminUserDO user = userMapper.selectById(id); | 390 | AdminUserDO user = userMapper.selectById(id); |
| 398 | if (user == null) { | 391 | if (user == null) { |
| 399 | throw exception(USER_NOT_EXISTS); | 392 | throw exception(USER_NOT_EXISTS); |
| @@ -405,7 +398,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -405,7 +398,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 405 | 398 | ||
| 406 | @Override | 399 | @Override |
| 407 | @Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入 | 400 | @Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入 |
| 408 | - public UserImportRespVO importUsers(List<UserImportExcelVO> importUsers, boolean isUpdateSupport) { | 401 | + public UserImportRespVO importUserList(List<UserImportExcelVO> importUsers, boolean isUpdateSupport) { |
| 409 | if (CollUtil.isEmpty(importUsers)) { | 402 | if (CollUtil.isEmpty(importUsers)) { |
| 410 | throw exception(USER_IMPORT_LIST_IS_EMPTY); | 403 | throw exception(USER_IMPORT_LIST_IS_EMPTY); |
| 411 | } | 404 | } |
| @@ -414,7 +407,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -414,7 +407,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 414 | importUsers.forEach(importUser -> { | 407 | importUsers.forEach(importUser -> { |
| 415 | // 校验,判断是否有不符合的原因 | 408 | // 校验,判断是否有不符合的原因 |
| 416 | try { | 409 | try { |
| 417 | - checkCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(), | 410 | + validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(), |
| 418 | importUser.getDeptId(), null); | 411 | importUser.getDeptId(), null); |
| 419 | } catch (ServiceException ex) { | 412 | } catch (ServiceException ex) { |
| 420 | respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage()); | 413 | respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage()); |
| @@ -442,7 +435,7 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -442,7 +435,7 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 442 | } | 435 | } |
| 443 | 436 | ||
| 444 | @Override | 437 | @Override |
| 445 | - public List<AdminUserDO> getUsersByStatus(Integer status) { | 438 | + public List<AdminUserDO> getUserListByStatus(Integer status) { |
| 446 | return userMapper.selectListByStatus(status); | 439 | return userMapper.selectListByStatus(status); |
| 447 | } | 440 | } |
| 448 | 441 |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java
| @@ -64,7 +64,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { | @@ -64,7 +64,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { | ||
| 64 | o.setNickname("wang"); | 64 | o.setNickname("wang"); |
| 65 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | 65 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 66 | }); | 66 | }); |
| 67 | - when(userService.getUsersByNickname("wang")).thenReturn(Collections.singletonList(user)); | 67 | + when(userService.getUserListByNickname("wang")).thenReturn(Collections.singletonList(user)); |
| 68 | Long userId = user.getId(); | 68 | Long userId = user.getId(); |
| 69 | 69 | ||
| 70 | // 构造操作日志 | 70 | // 构造操作日志 |
| @@ -112,7 +112,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { | @@ -112,7 +112,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { | ||
| 112 | o.setNickname("wang"); | 112 | o.setNickname("wang"); |
| 113 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | 113 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 114 | }); | 114 | }); |
| 115 | - when(userService.getUsersByNickname("wang")).thenReturn(Collections.singletonList(user)); | 115 | + when(userService.getUserListByNickname("wang")).thenReturn(Collections.singletonList(user)); |
| 116 | Long userId = user.getId(); | 116 | Long userId = user.getId(); |
| 117 | 117 | ||
| 118 | // 构造操作日志 | 118 | // 构造操作日志 |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java
| @@ -6,7 +6,6 @@ import cn.iocoder.yudao.framework.common.exception.ServiceException; | @@ -6,7 +6,6 @@ import cn.iocoder.yudao.framework.common.exception.ServiceException; | ||
| 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 7 | import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; | 7 | import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; |
| 8 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | 8 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 9 | -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; | ||
| 10 | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; | 9 | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; |
| 11 | import cn.iocoder.yudao.module.infra.api.file.FileApi; | 10 | import cn.iocoder.yudao.module.infra.api.file.FileApi; |
| 12 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; | 11 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; |
| @@ -32,23 +31,25 @@ import org.springframework.security.crypto.password.PasswordEncoder; | @@ -32,23 +31,25 @@ import org.springframework.security.crypto.password.PasswordEncoder; | ||
| 32 | 31 | ||
| 33 | import javax.annotation.Resource; | 32 | import javax.annotation.Resource; |
| 34 | import java.io.ByteArrayInputStream; | 33 | import java.io.ByteArrayInputStream; |
| 35 | -import java.time.LocalDateTime; | ||
| 36 | import java.util.Collection; | 34 | import java.util.Collection; |
| 37 | import java.util.List; | 35 | import java.util.List; |
| 36 | +import java.util.Map; | ||
| 38 | import java.util.function.Consumer; | 37 | import java.util.function.Consumer; |
| 39 | 38 | ||
| 40 | import static cn.hutool.core.util.RandomUtil.randomBytes; | 39 | import static cn.hutool.core.util.RandomUtil.randomBytes; |
| 41 | import static cn.hutool.core.util.RandomUtil.randomEle; | 40 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 42 | import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet; | 41 | import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet; |
| 42 | +import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; | ||
| 43 | import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime; | 43 | import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime; |
| 44 | +import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; | ||
| 44 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; | 45 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 45 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; | 46 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 46 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; | 47 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| 47 | import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; | 48 | import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; |
| 48 | import static java.util.Collections.singleton; | 49 | import static java.util.Collections.singleton; |
| 50 | +import static java.util.Collections.singletonList; | ||
| 49 | import static org.assertj.core.util.Lists.newArrayList; | 51 | import static org.assertj.core.util.Lists.newArrayList; |
| 50 | -import static org.junit.jupiter.api.Assertions.assertEquals; | ||
| 51 | -import static org.junit.jupiter.api.Assertions.assertNull; | 52 | +import static org.junit.jupiter.api.Assertions.*; |
| 52 | import static org.mockito.ArgumentMatchers.*; | 53 | import static org.mockito.ArgumentMatchers.*; |
| 53 | import static org.mockito.Mockito.*; | 54 | import static org.mockito.Mockito.*; |
| 54 | 55 | ||
| @@ -174,6 +175,23 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -174,6 +175,23 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 174 | } | 175 | } |
| 175 | 176 | ||
| 176 | @Test | 177 | @Test |
| 178 | + public void testUpdateUserLogin() { | ||
| 179 | + // mock 数据 | ||
| 180 | + AdminUserDO user = randomAdminUserDO(o -> o.setLoginDate(null)); | ||
| 181 | + userMapper.insert(user); | ||
| 182 | + // 准备参数 | ||
| 183 | + Long id = user.getId(); | ||
| 184 | + String loginIp = randomString(); | ||
| 185 | + | ||
| 186 | + // 调用 | ||
| 187 | + userService.updateUserLogin(id, loginIp); | ||
| 188 | + // 断言 | ||
| 189 | + AdminUserDO dbUser = userMapper.selectById(id); | ||
| 190 | + assertEquals(loginIp, dbUser.getLoginIp()); | ||
| 191 | + assertNotNull(dbUser.getLoginDate()); | ||
| 192 | + } | ||
| 193 | + | ||
| 194 | + @Test | ||
| 177 | public void testUpdateUserProfile_success() { | 195 | public void testUpdateUserProfile_success() { |
| 178 | // mock 数据 | 196 | // mock 数据 |
| 179 | AdminUserDO dbUser = randomAdminUserDO(); | 197 | AdminUserDO dbUser = randomAdminUserDO(); |
| @@ -287,6 +305,34 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -287,6 +305,34 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 287 | } | 305 | } |
| 288 | 306 | ||
| 289 | @Test | 307 | @Test |
| 308 | + public void testGetUserByUsername() { | ||
| 309 | + // mock 数据 | ||
| 310 | + AdminUserDO dbUser = randomAdminUserDO(); | ||
| 311 | + userMapper.insert(dbUser); | ||
| 312 | + // 准备参数 | ||
| 313 | + String username = dbUser.getUsername(); | ||
| 314 | + | ||
| 315 | + // 调用 | ||
| 316 | + AdminUserDO user = userService.getUserByUsername(username); | ||
| 317 | + // 断言 | ||
| 318 | + assertPojoEquals(dbUser, user); | ||
| 319 | + } | ||
| 320 | + | ||
| 321 | + @Test | ||
| 322 | + public void testGetUserByMobile() { | ||
| 323 | + // mock 数据 | ||
| 324 | + AdminUserDO dbUser = randomAdminUserDO(); | ||
| 325 | + userMapper.insert(dbUser); | ||
| 326 | + // 准备参数 | ||
| 327 | + String mobile = dbUser.getMobile(); | ||
| 328 | + | ||
| 329 | + // 调用 | ||
| 330 | + AdminUserDO user = userService.getUserByMobile(mobile); | ||
| 331 | + // 断言 | ||
| 332 | + assertPojoEquals(dbUser, user); | ||
| 333 | + } | ||
| 334 | + | ||
| 335 | + @Test | ||
| 290 | public void testGetUserPage() { | 336 | public void testGetUserPage() { |
| 291 | // mock 数据 | 337 | // mock 数据 |
| 292 | AdminUserDO dbUser = initGetUserPageData(); | 338 | AdminUserDO dbUser = initGetUserPageData(); |
| @@ -295,7 +341,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -295,7 +341,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 295 | reqVO.setUsername("tu"); | 341 | reqVO.setUsername("tu"); |
| 296 | reqVO.setMobile("1560"); | 342 | reqVO.setMobile("1560"); |
| 297 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | 343 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 298 | - reqVO.setCreateTime((new LocalDateTime[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)})); | 344 | + reqVO.setCreateTime(buildBetweenTime(2020, 12, 1, 2020, 12, 24)); |
| 299 | reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门 | 345 | reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门 |
| 300 | // mock 方法 | 346 | // mock 方法 |
| 301 | List<DeptDO> deptList = newArrayList(randomPojo(DeptDO.class, o -> o.setId(2L))); | 347 | List<DeptDO> deptList = newArrayList(randomPojo(DeptDO.class, o -> o.setId(2L))); |
| @@ -310,7 +356,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -310,7 +356,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 310 | } | 356 | } |
| 311 | 357 | ||
| 312 | @Test | 358 | @Test |
| 313 | - public void testGetUsers() { | 359 | + public void testGetUserList_export() { |
| 314 | // mock 数据 | 360 | // mock 数据 |
| 315 | AdminUserDO dbUser = initGetUserPageData(); | 361 | AdminUserDO dbUser = initGetUserPageData(); |
| 316 | // 准备参数 | 362 | // 准备参数 |
| @@ -318,14 +364,14 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -318,14 +364,14 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 318 | reqVO.setUsername("tu"); | 364 | reqVO.setUsername("tu"); |
| 319 | reqVO.setMobile("1560"); | 365 | reqVO.setMobile("1560"); |
| 320 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | 366 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 321 | - reqVO.setCreateTime((new LocalDateTime[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)})); | 367 | + reqVO.setCreateTime(buildBetweenTime(2020, 12, 1, 2020, 12, 24)); |
| 322 | reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门 | 368 | reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门 |
| 323 | // mock 方法 | 369 | // mock 方法 |
| 324 | List<DeptDO> deptList = newArrayList(randomPojo(DeptDO.class, o -> o.setId(2L))); | 370 | List<DeptDO> deptList = newArrayList(randomPojo(DeptDO.class, o -> o.setId(2L))); |
| 325 | when(deptService.getDeptListByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList); | 371 | when(deptService.getDeptListByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList); |
| 326 | 372 | ||
| 327 | // 调用 | 373 | // 调用 |
| 328 | - List<AdminUserDO> list = userService.getUsers(reqVO); | 374 | + List<AdminUserDO> list = userService.getUserList(reqVO); |
| 329 | // 断言 | 375 | // 断言 |
| 330 | assertEquals(1, list.size()); | 376 | assertEquals(1, list.size()); |
| 331 | assertPojoEquals(dbUser, list.get(0)); | 377 | assertPojoEquals(dbUser, list.get(0)); |
| @@ -345,23 +391,54 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -345,23 +391,54 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 345 | }); | 391 | }); |
| 346 | userMapper.insert(dbUser); | 392 | userMapper.insert(dbUser); |
| 347 | // 测试 username 不匹配 | 393 | // 测试 username 不匹配 |
| 348 | - userMapper.insert(ObjectUtils.cloneIgnoreId(dbUser, o -> o.setUsername("dou"))); | 394 | + userMapper.insert(cloneIgnoreId(dbUser, o -> o.setUsername("dou"))); |
| 349 | // 测试 mobile 不匹配 | 395 | // 测试 mobile 不匹配 |
| 350 | - userMapper.insert(ObjectUtils.cloneIgnoreId(dbUser, o -> o.setMobile("18818260888"))); | 396 | + userMapper.insert(cloneIgnoreId(dbUser, o -> o.setMobile("18818260888"))); |
| 351 | // 测试 status 不匹配 | 397 | // 测试 status 不匹配 |
| 352 | - userMapper.insert(ObjectUtils.cloneIgnoreId(dbUser, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); | 398 | + userMapper.insert(cloneIgnoreId(dbUser, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); |
| 353 | // 测试 createTime 不匹配 | 399 | // 测试 createTime 不匹配 |
| 354 | - userMapper.insert(ObjectUtils.cloneIgnoreId(dbUser, o -> o.setCreateTime(buildTime(2020, 11, 11)))); | 400 | + userMapper.insert(cloneIgnoreId(dbUser, o -> o.setCreateTime(buildTime(2020, 11, 11)))); |
| 355 | // 测试 dept 不匹配 | 401 | // 测试 dept 不匹配 |
| 356 | - userMapper.insert(ObjectUtils.cloneIgnoreId(dbUser, o -> o.setDeptId(0L))); | 402 | + userMapper.insert(cloneIgnoreId(dbUser, o -> o.setDeptId(0L))); |
| 357 | return dbUser; | 403 | return dbUser; |
| 358 | } | 404 | } |
| 359 | 405 | ||
| 406 | + @Test | ||
| 407 | + public void testGetUser() { | ||
| 408 | + // mock 数据 | ||
| 409 | + AdminUserDO dbUser = randomAdminUserDO(); | ||
| 410 | + userMapper.insert(dbUser); | ||
| 411 | + // 准备参数 | ||
| 412 | + Long userId = dbUser.getId(); | ||
| 413 | + | ||
| 414 | + // 调用 | ||
| 415 | + AdminUserDO user = userService.getUser(userId); | ||
| 416 | + // 断言 | ||
| 417 | + assertPojoEquals(dbUser, user); | ||
| 418 | + } | ||
| 419 | + | ||
| 420 | + @Test | ||
| 421 | + public void testGetUserListByDeptIds() { | ||
| 422 | + // mock 数据 | ||
| 423 | + AdminUserDO dbUser = randomAdminUserDO(o -> o.setDeptId(1L)); | ||
| 424 | + userMapper.insert(dbUser); | ||
| 425 | + // 测试 deptId 不匹配 | ||
| 426 | + userMapper.insert(cloneIgnoreId(dbUser, o -> o.setDeptId(2L))); | ||
| 427 | + // 准备参数 | ||
| 428 | + Collection<Long> deptIds = singleton(1L); | ||
| 429 | + | ||
| 430 | + // 调用 | ||
| 431 | + List<AdminUserDO> list = userService.getUserListByDeptIds(deptIds); | ||
| 432 | + // 断言 | ||
| 433 | + assertEquals(1, list.size()); | ||
| 434 | + assertEquals(dbUser, list.get(0)); | ||
| 435 | + } | ||
| 436 | + | ||
| 360 | /** | 437 | /** |
| 361 | * 情况一,校验不通过,导致插入失败 | 438 | * 情况一,校验不通过,导致插入失败 |
| 362 | */ | 439 | */ |
| 363 | @Test | 440 | @Test |
| 364 | - public void testImportUsers_01() { | 441 | + public void testImportUserList_01() { |
| 365 | // 准备参数 | 442 | // 准备参数 |
| 366 | UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { | 443 | UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { |
| 367 | }); | 444 | }); |
| @@ -369,7 +446,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -369,7 +446,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 369 | doThrow(new ServiceException(DEPT_NOT_FOUND)).when(deptService).validateDeptList(any()); | 446 | doThrow(new ServiceException(DEPT_NOT_FOUND)).when(deptService).validateDeptList(any()); |
| 370 | 447 | ||
| 371 | // 调用 | 448 | // 调用 |
| 372 | - UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), true); | 449 | + UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true); |
| 373 | // 断言 | 450 | // 断言 |
| 374 | assertEquals(0, respVO.getCreateUsernames().size()); | 451 | assertEquals(0, respVO.getCreateUsernames().size()); |
| 375 | assertEquals(0, respVO.getUpdateUsernames().size()); | 452 | assertEquals(0, respVO.getUpdateUsernames().size()); |
| @@ -381,7 +458,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -381,7 +458,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 381 | * 情况二,不存在,进行插入 | 458 | * 情况二,不存在,进行插入 |
| 382 | */ | 459 | */ |
| 383 | @Test | 460 | @Test |
| 384 | - public void testImportUsers_02() { | 461 | + public void testImportUserList_02() { |
| 385 | // 准备参数 | 462 | // 准备参数 |
| 386 | UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { | 463 | UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { |
| 387 | o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | 464 | o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 |
| @@ -397,7 +474,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -397,7 +474,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 397 | when(passwordEncoder.encode(eq("yudaoyuanma"))).thenReturn("java"); | 474 | when(passwordEncoder.encode(eq("yudaoyuanma"))).thenReturn("java"); |
| 398 | 475 | ||
| 399 | // 调用 | 476 | // 调用 |
| 400 | - UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), true); | 477 | + UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true); |
| 401 | // 断言 | 478 | // 断言 |
| 402 | assertEquals(1, respVO.getCreateUsernames().size()); | 479 | assertEquals(1, respVO.getCreateUsernames().size()); |
| 403 | AdminUserDO user = userMapper.selectByUsername(respVO.getCreateUsernames().get(0)); | 480 | AdminUserDO user = userMapper.selectByUsername(respVO.getCreateUsernames().get(0)); |
| @@ -411,7 +488,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -411,7 +488,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 411 | * 情况三,存在,但是不强制更新 | 488 | * 情况三,存在,但是不强制更新 |
| 412 | */ | 489 | */ |
| 413 | @Test | 490 | @Test |
| 414 | - public void testImportUsers_03() { | 491 | + public void testImportUserList_03() { |
| 415 | // mock 数据 | 492 | // mock 数据 |
| 416 | AdminUserDO dbUser = randomAdminUserDO(); | 493 | AdminUserDO dbUser = randomAdminUserDO(); |
| 417 | userMapper.insert(dbUser); | 494 | userMapper.insert(dbUser); |
| @@ -429,7 +506,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -429,7 +506,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 429 | when(deptService.getDept(eq(dept.getId()))).thenReturn(dept); | 506 | when(deptService.getDept(eq(dept.getId()))).thenReturn(dept); |
| 430 | 507 | ||
| 431 | // 调用 | 508 | // 调用 |
| 432 | - UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), false); | 509 | + UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), false); |
| 433 | // 断言 | 510 | // 断言 |
| 434 | assertEquals(0, respVO.getCreateUsernames().size()); | 511 | assertEquals(0, respVO.getCreateUsernames().size()); |
| 435 | assertEquals(0, respVO.getUpdateUsernames().size()); | 512 | assertEquals(0, respVO.getUpdateUsernames().size()); |
| @@ -441,7 +518,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -441,7 +518,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 441 | * 情况四,存在,强制更新 | 518 | * 情况四,存在,强制更新 |
| 442 | */ | 519 | */ |
| 443 | @Test | 520 | @Test |
| 444 | - public void testImportUsers_04() { | 521 | + public void testImportUserList_04() { |
| 445 | // mock 数据 | 522 | // mock 数据 |
| 446 | AdminUserDO dbUser = randomAdminUserDO(); | 523 | AdminUserDO dbUser = randomAdminUserDO(); |
| 447 | userMapper.insert(dbUser); | 524 | userMapper.insert(dbUser); |
| @@ -459,7 +536,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -459,7 +536,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 459 | when(deptService.getDept(eq(dept.getId()))).thenReturn(dept); | 536 | when(deptService.getDept(eq(dept.getId()))).thenReturn(dept); |
| 460 | 537 | ||
| 461 | // 调用 | 538 | // 调用 |
| 462 | - UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), true); | 539 | + UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true); |
| 463 | // 断言 | 540 | // 断言 |
| 464 | assertEquals(0, respVO.getCreateUsernames().size()); | 541 | assertEquals(0, respVO.getCreateUsernames().size()); |
| 465 | assertEquals(1, respVO.getUpdateUsernames().size()); | 542 | assertEquals(1, respVO.getUpdateUsernames().size()); |
| @@ -469,24 +546,24 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -469,24 +546,24 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 469 | } | 546 | } |
| 470 | 547 | ||
| 471 | @Test | 548 | @Test |
| 472 | - public void testCheckUserExists_notExists() { | ||
| 473 | - assertServiceException(() -> userService.checkUserExists(randomLongId()), USER_NOT_EXISTS); | 549 | + public void testValidateUserExists_notExists() { |
| 550 | + assertServiceException(() -> userService.validateUserExists(randomLongId()), USER_NOT_EXISTS); | ||
| 474 | } | 551 | } |
| 475 | 552 | ||
| 476 | @Test | 553 | @Test |
| 477 | - public void testCheckUsernameUnique_usernameExistsForCreate() { | 554 | + public void testValidateUsernameUnique_usernameExistsForCreate() { |
| 478 | // 准备参数 | 555 | // 准备参数 |
| 479 | String username = randomString(); | 556 | String username = randomString(); |
| 480 | // mock 数据 | 557 | // mock 数据 |
| 481 | userMapper.insert(randomAdminUserDO(o -> o.setUsername(username))); | 558 | userMapper.insert(randomAdminUserDO(o -> o.setUsername(username))); |
| 482 | 559 | ||
| 483 | // 调用,校验异常 | 560 | // 调用,校验异常 |
| 484 | - assertServiceException(() -> userService.checkUsernameUnique(null, username), | 561 | + assertServiceException(() -> userService.validateUsernameUnique(null, username), |
| 485 | USER_USERNAME_EXISTS); | 562 | USER_USERNAME_EXISTS); |
| 486 | } | 563 | } |
| 487 | 564 | ||
| 488 | @Test | 565 | @Test |
| 489 | - public void testCheckUsernameUnique_usernameExistsForUpdate() { | 566 | + public void testValidateUsernameUnique_usernameExistsForUpdate() { |
| 490 | // 准备参数 | 567 | // 准备参数 |
| 491 | Long id = randomLongId(); | 568 | Long id = randomLongId(); |
| 492 | String username = randomString(); | 569 | String username = randomString(); |
| @@ -494,24 +571,24 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -494,24 +571,24 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 494 | userMapper.insert(randomAdminUserDO(o -> o.setUsername(username))); | 571 | userMapper.insert(randomAdminUserDO(o -> o.setUsername(username))); |
| 495 | 572 | ||
| 496 | // 调用,校验异常 | 573 | // 调用,校验异常 |
| 497 | - assertServiceException(() -> userService.checkUsernameUnique(id, username), | 574 | + assertServiceException(() -> userService.validateUsernameUnique(id, username), |
| 498 | USER_USERNAME_EXISTS); | 575 | USER_USERNAME_EXISTS); |
| 499 | } | 576 | } |
| 500 | 577 | ||
| 501 | @Test | 578 | @Test |
| 502 | - public void testCheckEmailUnique_emailExistsForCreate() { | 579 | + public void testValidateEmailUnique_emailExistsForCreate() { |
| 503 | // 准备参数 | 580 | // 准备参数 |
| 504 | String email = randomString(); | 581 | String email = randomString(); |
| 505 | // mock 数据 | 582 | // mock 数据 |
| 506 | userMapper.insert(randomAdminUserDO(o -> o.setEmail(email))); | 583 | userMapper.insert(randomAdminUserDO(o -> o.setEmail(email))); |
| 507 | 584 | ||
| 508 | // 调用,校验异常 | 585 | // 调用,校验异常 |
| 509 | - assertServiceException(() -> userService.checkEmailUnique(null, email), | 586 | + assertServiceException(() -> userService.validateEmailUnique(null, email), |
| 510 | USER_EMAIL_EXISTS); | 587 | USER_EMAIL_EXISTS); |
| 511 | } | 588 | } |
| 512 | 589 | ||
| 513 | @Test | 590 | @Test |
| 514 | - public void testCheckEmailUnique_emailExistsForUpdate() { | 591 | + public void testValidateEmailUnique_emailExistsForUpdate() { |
| 515 | // 准备参数 | 592 | // 准备参数 |
| 516 | Long id = randomLongId(); | 593 | Long id = randomLongId(); |
| 517 | String email = randomString(); | 594 | String email = randomString(); |
| @@ -519,24 +596,24 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -519,24 +596,24 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 519 | userMapper.insert(randomAdminUserDO(o -> o.setEmail(email))); | 596 | userMapper.insert(randomAdminUserDO(o -> o.setEmail(email))); |
| 520 | 597 | ||
| 521 | // 调用,校验异常 | 598 | // 调用,校验异常 |
| 522 | - assertServiceException(() -> userService.checkEmailUnique(id, email), | 599 | + assertServiceException(() -> userService.validateEmailUnique(id, email), |
| 523 | USER_EMAIL_EXISTS); | 600 | USER_EMAIL_EXISTS); |
| 524 | } | 601 | } |
| 525 | 602 | ||
| 526 | @Test | 603 | @Test |
| 527 | - public void testCheckMobileUnique_mobileExistsForCreate() { | 604 | + public void testValidateMobileUnique_mobileExistsForCreate() { |
| 528 | // 准备参数 | 605 | // 准备参数 |
| 529 | String mobile = randomString(); | 606 | String mobile = randomString(); |
| 530 | // mock 数据 | 607 | // mock 数据 |
| 531 | userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile))); | 608 | userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile))); |
| 532 | 609 | ||
| 533 | // 调用,校验异常 | 610 | // 调用,校验异常 |
| 534 | - assertServiceException(() -> userService.checkMobileUnique(null, mobile), | 611 | + assertServiceException(() -> userService.validateMobileUnique(null, mobile), |
| 535 | USER_MOBILE_EXISTS); | 612 | USER_MOBILE_EXISTS); |
| 536 | } | 613 | } |
| 537 | 614 | ||
| 538 | @Test | 615 | @Test |
| 539 | - public void testCheckMobileUnique_mobileExistsForUpdate() { | 616 | + public void testValidateMobileUnique_mobileExistsForUpdate() { |
| 540 | // 准备参数 | 617 | // 准备参数 |
| 541 | Long id = randomLongId(); | 618 | Long id = randomLongId(); |
| 542 | String mobile = randomString(); | 619 | String mobile = randomString(); |
| @@ -544,18 +621,18 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -544,18 +621,18 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 544 | userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile))); | 621 | userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile))); |
| 545 | 622 | ||
| 546 | // 调用,校验异常 | 623 | // 调用,校验异常 |
| 547 | - assertServiceException(() -> userService.checkMobileUnique(id, mobile), | 624 | + assertServiceException(() -> userService.validateMobileUnique(id, mobile), |
| 548 | USER_MOBILE_EXISTS); | 625 | USER_MOBILE_EXISTS); |
| 549 | } | 626 | } |
| 550 | 627 | ||
| 551 | @Test | 628 | @Test |
| 552 | - public void testCheckOldPassword_notExists() { | ||
| 553 | - assertServiceException(() -> userService.checkOldPassword(randomLongId(), randomString()), | 629 | + public void testValidateOldPassword_notExists() { |
| 630 | + assertServiceException(() -> userService.validateOldPassword(randomLongId(), randomString()), | ||
| 554 | USER_NOT_EXISTS); | 631 | USER_NOT_EXISTS); |
| 555 | } | 632 | } |
| 556 | 633 | ||
| 557 | @Test | 634 | @Test |
| 558 | - public void testCheckOldPassword_passwordFailed() { | 635 | + public void testValidateOldPassword_passwordFailed() { |
| 559 | // mock 数据 | 636 | // mock 数据 |
| 560 | AdminUserDO user = randomAdminUserDO(); | 637 | AdminUserDO user = randomAdminUserDO(); |
| 561 | userMapper.insert(user); | 638 | userMapper.insert(user); |
| @@ -564,14 +641,14 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -564,14 +641,14 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 564 | String oldPassword = user.getPassword(); | 641 | String oldPassword = user.getPassword(); |
| 565 | 642 | ||
| 566 | // 调用,校验异常 | 643 | // 调用,校验异常 |
| 567 | - assertServiceException(() -> userService.checkOldPassword(id, oldPassword), | 644 | + assertServiceException(() -> userService.validateOldPassword(id, oldPassword), |
| 568 | USER_PASSWORD_FAILED); | 645 | USER_PASSWORD_FAILED); |
| 569 | // 校验调用 | 646 | // 校验调用 |
| 570 | verify(passwordEncoder, times(1)).matches(eq(oldPassword), eq(user.getPassword())); | 647 | verify(passwordEncoder, times(1)).matches(eq(oldPassword), eq(user.getPassword())); |
| 571 | } | 648 | } |
| 572 | 649 | ||
| 573 | @Test | 650 | @Test |
| 574 | - public void testUsersByPostIds() { | 651 | + public void testUserListByPostIds() { |
| 575 | // 准备参数 | 652 | // 准备参数 |
| 576 | Collection<Long> postIds = asSet(10L, 20L); | 653 | Collection<Long> postIds = asSet(10L, 20L); |
| 577 | // mock user1 数据 | 654 | // mock user1 数据 |
| @@ -585,12 +662,114 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -585,12 +662,114 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 585 | userPostMapper.insert(new UserPostDO().setUserId(user2.getId()).setPostId(100L)); | 662 | userPostMapper.insert(new UserPostDO().setUserId(user2.getId()).setPostId(100L)); |
| 586 | 663 | ||
| 587 | // 调用 | 664 | // 调用 |
| 588 | - List<AdminUserDO> result = userService.getUsersByPostIds(postIds); | 665 | + List<AdminUserDO> result = userService.getUserListByPostIds(postIds); |
| 589 | // 断言 | 666 | // 断言 |
| 590 | assertEquals(1, result.size()); | 667 | assertEquals(1, result.size()); |
| 591 | assertEquals(user1, result.get(0)); | 668 | assertEquals(user1, result.get(0)); |
| 592 | } | 669 | } |
| 593 | 670 | ||
| 671 | + @Test | ||
| 672 | + public void testGetUserList() { | ||
| 673 | + // mock 数据 | ||
| 674 | + AdminUserDO user = randomAdminUserDO(); | ||
| 675 | + userMapper.insert(user); | ||
| 676 | + // 测试 id 不匹配 | ||
| 677 | + userMapper.insert(randomAdminUserDO()); | ||
| 678 | + // 准备参数 | ||
| 679 | + Collection<Long> ids = singleton(user.getId()); | ||
| 680 | + | ||
| 681 | + // 调用 | ||
| 682 | + List<AdminUserDO> result = userService.getUserList(ids); | ||
| 683 | + // 断言 | ||
| 684 | + assertEquals(1, result.size()); | ||
| 685 | + assertEquals(user, result.get(0)); | ||
| 686 | + } | ||
| 687 | + | ||
| 688 | + @Test | ||
| 689 | + public void testGetUserMap() { | ||
| 690 | + // mock 数据 | ||
| 691 | + AdminUserDO user = randomAdminUserDO(); | ||
| 692 | + userMapper.insert(user); | ||
| 693 | + // 测试 id 不匹配 | ||
| 694 | + userMapper.insert(randomAdminUserDO()); | ||
| 695 | + // 准备参数 | ||
| 696 | + Collection<Long> ids = singleton(user.getId()); | ||
| 697 | + | ||
| 698 | + // 调用 | ||
| 699 | + Map<Long, AdminUserDO> result = userService.getUserMap(ids); | ||
| 700 | + // 断言 | ||
| 701 | + assertEquals(1, result.size()); | ||
| 702 | + assertEquals(user, result.get(user.getId())); | ||
| 703 | + } | ||
| 704 | + | ||
| 705 | + @Test | ||
| 706 | + public void testGetUserListByNickname() { | ||
| 707 | + // mock 数据 | ||
| 708 | + AdminUserDO user = randomAdminUserDO(o -> o.setNickname("芋头")); | ||
| 709 | + userMapper.insert(user); | ||
| 710 | + // 测试 nickname 不匹配 | ||
| 711 | + userMapper.insert(randomAdminUserDO(o -> o.setNickname("源码"))); | ||
| 712 | + // 准备参数 | ||
| 713 | + String nickname = "芋"; | ||
| 714 | + | ||
| 715 | + // 调用 | ||
| 716 | + List<AdminUserDO> result = userService.getUserListByNickname(nickname); | ||
| 717 | + // 断言 | ||
| 718 | + assertEquals(1, result.size()); | ||
| 719 | + assertEquals(user, result.get(0)); | ||
| 720 | + } | ||
| 721 | + | ||
| 722 | + @Test | ||
| 723 | + public void testGetUserListByStatus() { | ||
| 724 | + // mock 数据 | ||
| 725 | + AdminUserDO user = randomAdminUserDO(o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())); | ||
| 726 | + userMapper.insert(user); | ||
| 727 | + // 测试 status 不匹配 | ||
| 728 | + userMapper.insert(randomAdminUserDO(o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()))); | ||
| 729 | + // 准备参数 | ||
| 730 | + Integer status = CommonStatusEnum.DISABLE.getStatus(); | ||
| 731 | + | ||
| 732 | + // 调用 | ||
| 733 | + List<AdminUserDO> result = userService.getUserListByStatus(status); | ||
| 734 | + // 断言 | ||
| 735 | + assertEquals(1, result.size()); | ||
| 736 | + assertEquals(user, result.get(0)); | ||
| 737 | + } | ||
| 738 | + | ||
| 739 | + @Test | ||
| 740 | + public void testValidateUserList_success() { | ||
| 741 | + // mock 数据 | ||
| 742 | + AdminUserDO userDO = randomAdminUserDO().setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||
| 743 | + userMapper.insert(userDO); | ||
| 744 | + // 准备参数 | ||
| 745 | + List<Long> ids = singletonList(userDO.getId()); | ||
| 746 | + | ||
| 747 | + // 调用,无需断言 | ||
| 748 | + userService.validateUserList(ids); | ||
| 749 | + } | ||
| 750 | + | ||
| 751 | + @Test | ||
| 752 | + public void testValidateUserList_notFound() { | ||
| 753 | + // 准备参数 | ||
| 754 | + List<Long> ids = singletonList(randomLongId()); | ||
| 755 | + | ||
| 756 | + // 调用, 并断言异常 | ||
| 757 | + assertServiceException(() -> userService.validateUserList(ids), USER_NOT_EXISTS); | ||
| 758 | + } | ||
| 759 | + | ||
| 760 | + @Test | ||
| 761 | + public void testValidateUserList_notEnable() { | ||
| 762 | + // mock 数据 | ||
| 763 | + AdminUserDO userDO = randomAdminUserDO().setStatus(CommonStatusEnum.DISABLE.getStatus()); | ||
| 764 | + userMapper.insert(userDO); | ||
| 765 | + // 准备参数 | ||
| 766 | + List<Long> ids = singletonList(userDO.getId()); | ||
| 767 | + | ||
| 768 | + // 调用, 并断言异常 | ||
| 769 | + assertServiceException(() -> userService.validateUserList(ids), USER_IS_DISABLE, | ||
| 770 | + userDO.getNickname()); | ||
| 771 | + } | ||
| 772 | + | ||
| 594 | // ========== 随机对象 ========== | 773 | // ========== 随机对象 ========== |
| 595 | 774 | ||
| 596 | @SafeVarargs | 775 | @SafeVarargs |