mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-03 03:38:43 +08:00 
			
		
		
		
	bugfix-导入系统用户时,增加注解校验过程,与界面添加和修改用户保持一致
This commit is contained in:
		@@ -103,6 +103,10 @@ public class RandomUtils {
 | 
				
			|||||||
        return randomString() + "@qq.com";
 | 
					        return randomString() + "@qq.com";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static String randomMobile() {
 | 
				
			||||||
 | 
					        return "13800138" + RandomUtil.randomNumbers(3);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static String randomURL() {
 | 
					    public static String randomURL() {
 | 
				
			||||||
        return "https://www.iocoder.cn/" + randomString();
 | 
					        return "https://www.iocoder.cn/" + randomString();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,7 @@ import cn.iocoder.yudao.framework.common.exception.ServiceException;
 | 
				
			|||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
					import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 | 
					import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 | 
					import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 | 
				
			||||||
 | 
					import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
 | 
				
			||||||
import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
 | 
					import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
 | 
				
			||||||
import cn.iocoder.yudao.module.infra.api.config.ConfigApi;
 | 
					import cn.iocoder.yudao.module.infra.api.config.ConfigApi;
 | 
				
			||||||
import cn.iocoder.yudao.module.infra.api.file.FileApi;
 | 
					import cn.iocoder.yudao.module.infra.api.file.FileApi;
 | 
				
			||||||
@@ -32,6 +33,7 @@ import com.mzt.logapi.context.LogRecordContext;
 | 
				
			|||||||
import com.mzt.logapi.service.impl.DiffParseFunction;
 | 
					import com.mzt.logapi.service.impl.DiffParseFunction;
 | 
				
			||||||
import com.mzt.logapi.starter.annotation.LogRecord;
 | 
					import com.mzt.logapi.starter.annotation.LogRecord;
 | 
				
			||||||
import jakarta.annotation.Resource;
 | 
					import jakarta.annotation.Resource;
 | 
				
			||||||
 | 
					import jakarta.validation.ConstraintViolationException;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.context.annotation.Lazy;
 | 
					import org.springframework.context.annotation.Lazy;
 | 
				
			||||||
import org.springframework.security.crypto.password.PasswordEncoder;
 | 
					import org.springframework.security.crypto.password.PasswordEncoder;
 | 
				
			||||||
@@ -40,13 +42,36 @@ import org.springframework.transaction.annotation.Transactional;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import java.io.InputStream;
 | 
					import java.io.InputStream;
 | 
				
			||||||
import java.time.LocalDateTime;
 | 
					import java.time.LocalDateTime;
 | 
				
			||||||
import java.util.*;
 | 
					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 static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 | 
					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.convertList;
 | 
				
			||||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 | 
					import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 | 
				
			||||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
 | 
					import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_COUNT_MAX;
 | 
				
			||||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.*;
 | 
					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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 后台用户 Service 实现类
 | 
					 * 后台用户 Service 实现类
 | 
				
			||||||
@@ -451,6 +476,13 @@ public class AdminUserServiceImpl implements AdminUserService {
 | 
				
			|||||||
                respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
 | 
					                respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            // 校验字段是否符合要求
 | 
				
			||||||
 | 
					            try {
 | 
				
			||||||
 | 
					                ValidationUtils.validate(BeanUtils.toBean(importUser, UserSaveReqVO.class).setPassword(initPassword));
 | 
				
			||||||
 | 
					            }catch (ConstraintViolationException ex){
 | 
				
			||||||
 | 
					                respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            // 判断如果不存在,在进行插入
 | 
					            // 判断如果不存在,在进行插入
 | 
				
			||||||
            AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername());
 | 
					            AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername());
 | 
				
			||||||
            if (existUser == null) {
 | 
					            if (existUser == null) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -452,6 +452,8 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
 | 
				
			|||||||
        UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> {
 | 
					        UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> {
 | 
				
			||||||
            o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
 | 
					            o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
 | 
				
			||||||
            o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
 | 
					            o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
 | 
				
			||||||
 | 
					            o.setEmail(randomEmail());
 | 
				
			||||||
 | 
					            o.setMobile(randomMobile());
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        // mock deptService 的方法
 | 
					        // mock deptService 的方法
 | 
				
			||||||
        DeptDO dept = randomPojo(DeptDO.class, o -> {
 | 
					        DeptDO dept = randomPojo(DeptDO.class, o -> {
 | 
				
			||||||
@@ -486,6 +488,8 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
 | 
				
			|||||||
            o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
 | 
					            o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
 | 
				
			||||||
            o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
 | 
					            o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
 | 
				
			||||||
            o.setUsername(dbUser.getUsername());
 | 
					            o.setUsername(dbUser.getUsername());
 | 
				
			||||||
 | 
					            o.setEmail(randomEmail());
 | 
				
			||||||
 | 
					            o.setMobile(randomMobile());
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        // mock deptService 的方法
 | 
					        // mock deptService 的方法
 | 
				
			||||||
        DeptDO dept = randomPojo(DeptDO.class, o -> {
 | 
					        DeptDO dept = randomPojo(DeptDO.class, o -> {
 | 
				
			||||||
@@ -516,6 +520,8 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
 | 
				
			|||||||
            o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
 | 
					            o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
 | 
				
			||||||
            o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
 | 
					            o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
 | 
				
			||||||
            o.setUsername(dbUser.getUsername());
 | 
					            o.setUsername(dbUser.getUsername());
 | 
				
			||||||
 | 
					            o.setEmail(randomEmail());
 | 
				
			||||||
 | 
					            o.setMobile(randomMobile());
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        // mock deptService 的方法
 | 
					        // mock deptService 的方法
 | 
				
			||||||
        DeptDO dept = randomPojo(DeptDO.class, o -> {
 | 
					        DeptDO dept = randomPojo(DeptDO.class, o -> {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user