|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | private SystemDictDataBiz systemDictDataBiz; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private CompanyService companyService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private CompanyDepartmentMapper companyDepartmentMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Value("${debug_model}") | 
|---|
|  |  |  | private boolean debugModel; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @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); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | 
|---|
|  |  |  | systemDepartmentUser.setOperaUser(systemUser.getCreateUser()); | 
|---|
|  |  |  | systemDepartmentUser.setOperaTime(new Date()); | 
|---|
|  |  |  | systemDepartmentUserService.create(systemDepartmentUser); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | SystemUser queryUserDto = new SystemUser(); | 
|---|
|  |  |  | SystemUser user = null; | 
|---|
|  |  |  | if (StringUtils.isNotBlank(systemUser.getUsername())){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | queryUserDto.setUsername(systemUser.getUsername()); | 
|---|
|  |  |  | queryUserDto.setDeleted(Boolean.FALSE); | 
|---|
|  |  |  | user = systemUserService.findOne(queryUserDto); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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) { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|