mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	【代码优化】SYSTEM:优化用户导入的实现
This commit is contained in:
		@@ -42,36 +42,13 @@ import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
 | 
			
		||||
import java.io.InputStream;
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.HashSet;
 | 
			
		||||
import java.util.LinkedHashMap;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_COUNT_MAX;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_EMAIL_EXISTS;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_IMPORT_INIT_PASSWORD;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_IS_DISABLE;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_MOBILE_EXISTS;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_NOT_EXISTS;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_PASSWORD_FAILED;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_USERNAME_EXISTS;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_CREATE_SUB_TYPE;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_CREATE_SUCCESS;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_DELETE_SUB_TYPE;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_DELETE_SUCCESS;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_TYPE;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_UPDATE_PASSWORD_SUB_TYPE;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_UPDATE_PASSWORD_SUCCESS;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_UPDATE_SUB_TYPE;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_UPDATE_SUCCESS;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.*;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 后台用户 Service 实现类
 | 
			
		||||
@@ -468,7 +445,14 @@ public class AdminUserServiceImpl implements AdminUserService {
 | 
			
		||||
        UserImportRespVO respVO = UserImportRespVO.builder().createUsernames(new ArrayList<>())
 | 
			
		||||
                .updateUsernames(new ArrayList<>()).failureUsernames(new LinkedHashMap<>()).build();
 | 
			
		||||
        importUsers.forEach(importUser -> {
 | 
			
		||||
            // 校验,判断是否有不符合的原因
 | 
			
		||||
            // 2.1.1 校验字段是否符合要求
 | 
			
		||||
            try {
 | 
			
		||||
                ValidationUtils.validate(BeanUtils.toBean(importUser, UserSaveReqVO.class).setPassword(initPassword));
 | 
			
		||||
            } catch (ConstraintViolationException ex){
 | 
			
		||||
                respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            // 2.1.2 校验,判断是否有不符合的原因
 | 
			
		||||
            try {
 | 
			
		||||
                validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
 | 
			
		||||
                        importUser.getDeptId(), null);
 | 
			
		||||
@@ -476,14 +460,8 @@ public class AdminUserServiceImpl implements AdminUserService {
 | 
			
		||||
                respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            // 校验字段是否符合要求
 | 
			
		||||
            try {
 | 
			
		||||
                ValidationUtils.validate(BeanUtils.toBean(importUser, UserSaveReqVO.class).setPassword(initPassword));
 | 
			
		||||
            }catch (ConstraintViolationException ex){
 | 
			
		||||
                respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            // 判断如果不存在,在进行插入
 | 
			
		||||
 | 
			
		||||
            // 2.2.1 判断如果不存在,在进行插入
 | 
			
		||||
            AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername());
 | 
			
		||||
            if (existUser == null) {
 | 
			
		||||
                userMapper.insert(BeanUtils.toBean(importUser, AdminUserDO.class)
 | 
			
		||||
@@ -491,7 +469,7 @@ public class AdminUserServiceImpl implements AdminUserService {
 | 
			
		||||
                respVO.getCreateUsernames().add(importUser.getUsername());
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            // 如果存在,判断是否允许更新
 | 
			
		||||
            // 2.2.2 如果存在,判断是否允许更新
 | 
			
		||||
            if (!isUpdateSupport) {
 | 
			
		||||
                respVO.getFailureUsernames().put(importUser.getUsername(), USER_USERNAME_EXISTS.getMsg());
 | 
			
		||||
                return;
 | 
			
		||||
 
 | 
			
		||||
@@ -430,6 +430,8 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
 | 
			
		||||
    public void testImportUserList_01() {
 | 
			
		||||
        // 准备参数
 | 
			
		||||
        UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> {
 | 
			
		||||
            o.setEmail(randomEmail());
 | 
			
		||||
            o.setMobile(randomMobile());
 | 
			
		||||
        });
 | 
			
		||||
        // mock 方法,模拟失败
 | 
			
		||||
        doThrow(new ServiceException(DEPT_NOT_FOUND)).when(deptService).validateDeptList(any());
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user