From c911cb444a4647814a6868035ac2ba692bac0cd8 Mon Sep 17 00:00:00 2001 From: yangsb Date: Fri, 26 Apr 2024 11:23:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E6=96=B0=E5=A2=9E=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/user/UserController.java | 7 ++++-- .../system/service/user/AdminUserService.java | 2 +- .../service/user/AdminUserServiceImpl.java | 25 ++++++++++--------- .../user/AdminUserServiceImplTest.java | 22 ++++++++-------- 4 files changed, 30 insertions(+), 26 deletions(-) diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java index 7933cd45b..003db048f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java @@ -199,9 +199,12 @@ public class UserController { }) @PreAuthorize("@ss.hasPermission('system:user:import')") public CommonResult importExcel(@RequestParam("file") MultipartFile file, - @RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception { + @RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport, + @RequestParam(value = "organId", required = false) Long organId + ) throws Exception { List list = ExcelUtils.read(file, UserImportExcelVO.class); - return success(userService.importUserList(list, updateSupport)); + organId = organId==null? OrganContextHolder.getOrganId() : organId; + return success(userService.importUserList(list, updateSupport, organId)); } @GetMapping("/list-terms-simple") diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserService.java index ff4dd0cfd..3d36042f5 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserService.java @@ -198,7 +198,7 @@ public interface AdminUserService { * @param isUpdateSupport 是否支持更新 * @return 导入结果 */ - UserImportRespVO importUserList(List importUsers, boolean isUpdateSupport); + UserImportRespVO importUserList(List importUsers, boolean isUpdateSupport, Long organId); /** * 获得指定状态的用户们 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java index e98d94432..99d648298 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java @@ -128,10 +128,11 @@ public class AdminUserServiceImpl implements AdminUserService { @Override @Transactional(rollbackFor = Exception.class) public void updateUser(UserSaveReqVO updateReqVO) { + Long organId = updateReqVO.getOrganId() == null ? OrganContextHolder.getOrganId(): updateReqVO.getOrganId(); updateReqVO.setPassword(null); // 特殊:此处不更新密码 // 校验正确性 validateUserForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getUsername(), - updateReqVO.getMobile(), updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds(), updateReqVO.getOrganId()); + updateReqVO.getMobile(), updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds(), organId); // 更新用户 AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class); @@ -174,10 +175,11 @@ public class AdminUserServiceImpl implements AdminUserService { @Override public void updateUserProfile(Long id, UserProfileUpdateReqVO reqVO) { + Long organId = reqVO.getOrganId() == null ? OrganContextHolder.getOrganId() : reqVO.getOrganId(); // 校验正确性 validateUserExists(id); - validateEmailUnique(id, reqVO.getEmail()); - validateMobileUnique(id, reqVO.getMobile()); + validateEmailUnique(id, reqVO.getEmail(), organId); + validateMobileUnique(id, reqVO.getMobile(), organId); // 执行更新 userMapper.updateById(BeanUtils.toBean(reqVO, AdminUserDO.class).setId(id)); } @@ -356,9 +358,9 @@ public class AdminUserServiceImpl implements AdminUserService { // 校验用户名唯一 validateUsernameUnique(id, username, organId); // 校验手机号唯一 - validateMobileUnique(id, mobile); + validateMobileUnique(id, mobile, organId); // 校验邮箱唯一 - validateEmailUnique(id, email); + validateEmailUnique(id, email, organId); // 校验部门处于开启状态 deptService.validateDeptList(CollectionUtils.singleton(deptId)); // 校验岗位处于开启状态 @@ -397,11 +399,11 @@ public class AdminUserServiceImpl implements AdminUserService { } @VisibleForTesting - void validateEmailUnique(Long id, String email) { + void validateEmailUnique(Long id, String email, Long organId) { if (StrUtil.isBlank(email)) { return; } - AdminUserDO user = userMapper.selectByEmail(email); + AdminUserDO user = userMapper.selectOne(AdminUserDO::getOrganId, organId, AdminUserDO::getEmail, email); if (user == null) { return; } @@ -415,11 +417,11 @@ public class AdminUserServiceImpl implements AdminUserService { } @VisibleForTesting - void validateMobileUnique(Long id, String mobile) { + void validateMobileUnique(Long id, String mobile, Long organId) { if (StrUtil.isBlank(mobile)) { return; } - AdminUserDO user = userMapper.selectByMobile(mobile); + AdminUserDO user = userMapper.selectOne(AdminUserDO::getOrganId, organId, AdminUserDO::getMobile, mobile); if (user == null) { return; } @@ -451,7 +453,7 @@ public class AdminUserServiceImpl implements AdminUserService { @Override @Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入 - public UserImportRespVO importUserList(List importUsers, boolean isUpdateSupport) { + public UserImportRespVO importUserList(List importUsers, boolean isUpdateSupport, Long organId) { if (CollUtil.isEmpty(importUsers)) { throw ServiceExceptionUtil.exception(ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY); } @@ -461,12 +463,11 @@ public class AdminUserServiceImpl implements AdminUserService { // 校验,判断是否有不符合的原因 try { validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(), - importUser.getDeptId(), null, null); + importUser.getDeptId(), null, organId); } catch (ServiceException ex) { respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage()); return; } - Long organId = SecurityFrameworkUtils.getLoginUser().getOrganId(); // 判断如果不存在,在进行插入 AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername(), organId); if (existUser == null) { diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/service/user/AdminUserServiceImplTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/service/user/AdminUserServiceImplTest.java index b02baeab6..61a9c5866 100644 --- a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/service/user/AdminUserServiceImplTest.java +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/service/user/AdminUserServiceImplTest.java @@ -105,7 +105,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { o.setId(postId); o.setStatus(CommonStatusEnum.ENABLE.getStatus()); })); - when(postService.getPostList(eq(reqVO.getPostIds()), isNull())).thenReturn(posts); + //when(postService.getPostList(eq(reqVO.getPostIds()), isNull())).thenReturn(posts); // mock passwordEncoder 的方法 when(passwordEncoder.encode(eq(reqVO.getPassword()))).thenReturn("chenfengyuanma"); @@ -163,7 +163,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { o.setId(postId); o.setStatus(CommonStatusEnum.ENABLE.getStatus()); })); - when(postService.getPostList(eq(reqVO.getPostIds()), isNull())).thenReturn(posts); + //when(postService.getPostList(eq(reqVO.getPostIds()), isNull())).thenReturn(posts); // 调用 userService.updateUser(reqVO); @@ -426,7 +426,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { doThrow(new ServiceException(DEPT_NOT_FOUND)).when(deptService).validateDeptList(any()); // 调用 - UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true); + UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true, 1L); // 断言 assertEquals(0, respVO.getCreateUsernames().size()); assertEquals(0, respVO.getUpdateUsernames().size()); @@ -454,7 +454,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { when(passwordEncoder.encode(eq("chenfengyuanma"))).thenReturn("java"); // 调用 - UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true); + UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true, 1L); // 断言 assertEquals(1, respVO.getCreateUsernames().size()); AdminUserDO user = userMapper.selectByUsername(respVO.getCreateUsernames().get(0), null); @@ -486,7 +486,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { when(deptService.getDept(eq(dept.getId()))).thenReturn(dept); // 调用 - UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), false); + UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), false, 1L); // 断言 assertEquals(0, respVO.getCreateUsernames().size()); assertEquals(0, respVO.getUpdateUsernames().size()); @@ -516,7 +516,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { when(deptService.getDept(eq(dept.getId()))).thenReturn(dept); // 调用 - UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true); + UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true, 1L); // 断言 assertEquals(0, respVO.getCreateUsernames().size()); assertEquals(1, respVO.getUpdateUsernames().size()); @@ -563,7 +563,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { userMapper.insert(randomAdminUserDO(o -> o.setEmail(email))); // 调用,校验异常 - assertServiceException(() -> userService.validateEmailUnique(null, email), + assertServiceException(() -> userService.validateEmailUnique(null, email, 1L), USER_EMAIL_EXISTS); } @@ -576,7 +576,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { userMapper.insert(randomAdminUserDO(o -> o.setEmail(email))); // 调用,校验异常 - assertServiceException(() -> userService.validateEmailUnique(id, email), + assertServiceException(() -> userService.validateEmailUnique(id, email, 1L), USER_EMAIL_EXISTS); } @@ -588,7 +588,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile))); // 调用,校验异常 - assertServiceException(() -> userService.validateMobileUnique(null, mobile), + assertServiceException(() -> userService.validateMobileUnique(null, mobile, 1L), USER_MOBILE_EXISTS); } @@ -601,7 +601,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile))); // 调用,校验异常 - assertServiceException(() -> userService.validateMobileUnique(id, mobile), + assertServiceException(() -> userService.validateMobileUnique(id, mobile, 1L), USER_MOBILE_EXISTS); } @@ -710,7 +710,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { Integer status = CommonStatusEnum.DISABLE.getStatus(); // 调用 - List result = userService.getUserListByStatus(status, 1L); + List result = userService.getUserListByStatus(status, 1L, 1L); // 断言 assertEquals(1, result.size()); assertEquals(user, result.get(0));