jiangping
2024-12-27 5506edbe54883b31db3cc8e4a1d9d0795a18a3c9
server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -9,8 +9,10 @@
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.CompanyDepartmentMapper;
import com.doumee.dao.business.SmsEmailMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.CompanyDepartment;
import com.doumee.dao.system.dto.*;
import com.doumee.dao.system.model.SystemDepartment;
import com.doumee.dao.system.model.SystemDepartmentUser;
@@ -46,6 +48,9 @@
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private CompanyService companyService;
    @Autowired
    private CompanyDepartmentMapper companyDepartmentMapper;
    @Value("${debug_model}")
    private boolean debugModel;
@@ -181,7 +186,6 @@
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void createCompany(CreateSystemUserDTO systemUser) {
        // 验证用户名
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(!Constants.equalsInteger(loginUserInfo.getType(),Constants.UserType.SYSTEM.getKey())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
@@ -205,12 +209,10 @@
        SystemUser queryUserDto = new SystemUser();
        queryUserDto.setUsername(systemUser.getUsername());
        queryUserDto.setDeleted(Boolean.FALSE);
//        queryUserDto.setType(Constants.ZERO);
        SystemUser user = systemUserService.findOne(queryUserDto);
        if (user != null) {
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "登录账号已存在");
        }
        // 验证手机号
       if (StringUtils.isNotBlank(systemUser.getMobile())) {
            queryUserDto = new SystemUser();
@@ -229,8 +231,17 @@
        systemUser.setType(Constants.equalsInteger(company.getType(),Constants.ONE)?Constants.UserType.ZHUBO.getKey():Constants.UserType.COMPANY.getKey());
        systemUser.setType(loginUserInfo.getType());
        systemUser.setStatus(Constants.ZERO);
        //如果是企业用户 必须填写email
        if(Constants.equalsInteger(systemUser.getType(),Constants.ONE)){
            if( systemUser.getEmail() == null){
                throw new BusinessException(ResponseStatus.BAD_REQUEST);
            }
        }
        this.dealCompanyDepartmentData(systemUser);
        Integer userId = systemUserService.create(systemUser);
        // 设置部门
        /*// 设置部门
        if (systemUser.getDepartmentId() != null) {
            SystemDepartmentUser systemDepartmentUser = new SystemDepartmentUser();
            systemDepartmentUser.setDepartmentId(systemUser.getDepartmentId());
@@ -248,7 +259,7 @@
            systemDepartmentUser.setOperaUser(systemUser.getCreateUser());
            systemDepartmentUser.setOperaTime(new Date());
            systemDepartmentUserService.create(systemDepartmentUser);
        }
        }*/
    }
@@ -258,7 +269,6 @@
        SystemUser queryUserDto = new SystemUser();
        SystemUser user = null;
        if (StringUtils.isNotBlank(systemUser.getUsername())){
            queryUserDto.setUsername(systemUser.getUsername());
            queryUserDto.setDeleted(Boolean.FALSE);
            user = systemUserService.findOne(queryUserDto);
@@ -291,12 +301,11 @@
                }
            }
        }
        systemUser.setType(null);//不支持修改
        systemUser.setCompanyId(null);//不支持修改
        // 修改用户
        systemUserService.updateById(systemUser);
        // 设置部门
        SystemDepartmentUser deleteDepartmentDto = new SystemDepartmentUser();
        /*SystemDepartmentUser deleteDepartmentDto = new SystemDepartmentUser();
        deleteDepartmentDto.setUserId(systemUser.getId());
        systemDepartmentUserService.delete(deleteDepartmentDto);
        if (systemUser.getDepartmentId() != null) {
@@ -306,7 +315,23 @@
            systemDepartmentUser.setOperaUser(systemUser.getUpdateUser());
            systemDepartmentUser.setOperaTime(new Date());
            systemDepartmentUserService.create(systemDepartmentUser);
        }*/
    }
    public void dealCompanyDepartmentData(CreateSystemUserDTO systemUser){
        if(Objects.isNull(systemUser.getDepartmentId())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        //处理组织数据
        CompanyDepartment companyDepartment = companyDepartmentMapper.selectById(systemUser.getDepartmentId());
        if(Objects.isNull(companyDepartment)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到组织数据");
        }
        if(Constants.equalsInteger(companyDepartment.getType(),systemUser.getType())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"组织匹配失败,非同类型组织");
        }
        systemUser.setDepartmentId(companyDepartment.getId());
    }