mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
处理新增用户的异常
This commit is contained in:
+5
-2
@@ -199,9 +199,12 @@ public class UserController {
|
||||
})
|
||||
@PreAuthorize("@ss.hasPermission('system:user:import')")
|
||||
public CommonResult<UserImportRespVO> 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<UserImportExcelVO> 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")
|
||||
|
||||
+1
-1
@@ -198,7 +198,7 @@ public interface AdminUserService {
|
||||
* @param isUpdateSupport 是否支持更新
|
||||
* @return 导入结果
|
||||
*/
|
||||
UserImportRespVO importUserList(List<UserImportExcelVO> importUsers, boolean isUpdateSupport);
|
||||
UserImportRespVO importUserList(List<UserImportExcelVO> importUsers, boolean isUpdateSupport, Long organId);
|
||||
|
||||
/**
|
||||
* 获得指定状态的用户们
|
||||
|
||||
+13
-12
@@ -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<UserImportExcelVO> importUsers, boolean isUpdateSupport) {
|
||||
public UserImportRespVO importUserList(List<UserImportExcelVO> 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) {
|
||||
|
||||
+11
-11
@@ -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<AdminUserDO> result = userService.getUserListByStatus(status, 1L);
|
||||
List<AdminUserDO> result = userService.getUserListByStatus(status, 1L, 1L);
|
||||
// 断言
|
||||
assertEquals(1, result.size());
|
||||
assertEquals(user, result.get(0));
|
||||
|
||||
Reference in New Issue
Block a user