|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @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.setUsername(systemUser.getMobile()); | 
|---|
|  |  |  | if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if( systemUser.getCompanyId() == null){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String  phoneAtuh = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_PHONE_AUTH).getCode(); | 
|---|
|  |  |  | if(!debugModel && !StringUtils.equals(phoneAtuh,Constants.ONE+"")){ | 
|---|
|  |  |  | SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,systemUser.getMobile(),systemUser.getCaptcha()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Company company = companyService.findById(systemUser.getCompanyId()); | 
|---|
|  |  |  | if(company == null ||Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,当前企业信息不正确!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SystemUser queryUserDto = new SystemUser(); | 
|---|
|  |  |  | queryUserDto.setUsername(systemUser.getUsername()); | 
|---|
|  |  |  | queryUserDto.setDeleted(Boolean.FALSE); | 
|---|
|  |  |  | SystemUser user = systemUserService.findOne(queryUserDto); | 
|---|
|  |  |  | if (user != null) { | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "登录账号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 验证手机号 | 
|---|
|  |  |  | if (StringUtils.isNotBlank(systemUser.getMobile())) { | 
|---|
|  |  |  | queryUserDto = new SystemUser(); | 
|---|
|  |  |  | queryUserDto.setDeleted(Boolean.FALSE); | 
|---|
|  |  |  | queryUserDto.setMobile(systemUser.getMobile()); | 
|---|
|  |  |  | user = systemUserService.findOne(queryUserDto); | 
|---|
|  |  |  | if (user != null) { | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "手机号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 生成密码盐 | 
|---|
|  |  |  | String salt = RandomStringUtils.randomAlphabetic(6); | 
|---|
|  |  |  | // 生成密码 | 
|---|
|  |  |  | systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt)); | 
|---|
|  |  |  | systemUser.setSalt(salt); | 
|---|
|  |  |  | 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.setUserId(userId); | 
|---|
|  |  |  | systemDepartmentUser.setOperaUser(systemUser.getCreateUser()); | 
|---|
|  |  |  | systemDepartmentUser.setOperaTime(new Date()); | 
|---|
|  |  |  | systemDepartmentUserService.create(systemDepartmentUser); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | SystemDepartmentUser systemDepartmentUser = new SystemDepartmentUser(); | 
|---|
|  |  |  | QueryWrapper<SystemDepartment> wrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | wrapper.lambda().isNull(SystemDepartment::getParentId).last("limit 1"); | 
|---|
|  |  |  | SystemDepartment systemDepartment = systemDepartmentService.findOne(wrapper); | 
|---|
|  |  |  | systemDepartmentUser.setDepartmentId(systemDepartment.getId()); | 
|---|
|  |  |  | systemDepartmentUser.setUserId(userId); | 
|---|
|  |  |  | systemDepartmentUser.setOperaUser(systemUser.getCreateUser()); | 
|---|
|  |  |  | systemDepartmentUser.setOperaTime(new Date()); | 
|---|
|  |  |  | systemDepartmentUserService.create(systemDepartmentUser); | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void updateById(CreateSystemUserDTO systemUser) { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | SystemUserRole newUserRole = new SystemUserRole(); | 
|---|
|  |  |  | newUserRole.setUserId(dto.getUserId()); | 
|---|
|  |  |  | newUserRole.setRoleId(roleId); | 
|---|
|  |  |  | systemUserRoleService.create(newUserRole); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
|---|
|  |  |  | public void companyCreateUser(CreateCompanyUserDTO createCompanyUserDTO) { | 
|---|
|  |  |  | if(Objects.isNull(createCompanyUserDTO) | 
|---|
|  |  |  | ||StringUtils.isBlank(createCompanyUserDTO.getUserName()) | 
|---|
|  |  |  | ||StringUtils.isBlank(createCompanyUserDTO.getRealName()) | 
|---|
|  |  |  | ||StringUtils.isBlank(createCompanyUserDTO.getPassword()) ){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  | SystemUser queryUserDto = new SystemUser(); | 
|---|
|  |  |  | queryUserDto.setUsername(createCompanyUserDTO.getUserName()); | 
|---|
|  |  |  | queryUserDto.setDeleted(Boolean.FALSE); | 
|---|
|  |  |  | SystemUser user = systemUserService.findOne(queryUserDto); | 
|---|
|  |  |  | if (user != null) { | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "登录账号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(createCompanyUserDTO.getType().equals(Constants.UserType.ZHUBO.getKey())){ | 
|---|
|  |  |  | Company company = companyService.findById(loginUserInfo.getCompanyId()); | 
|---|
|  |  |  | SystemUser zbUserNum = new SystemUser(); | 
|---|
|  |  |  | zbUserNum.setCompanyId(loginUserInfo.getCompanyId()); | 
|---|
|  |  |  | zbUserNum.setDeleted(Boolean.FALSE); | 
|---|
|  |  |  | zbUserNum.setType(Constants.UserType.ZHUBO.getKey()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SystemUser systemUser  = new SystemUser(); | 
|---|
|  |  |  | BeanUtils.copyProperties(createCompanyUserDTO,systemUser); | 
|---|
|  |  |  | systemUser.setCompanyId(loginUserInfo.getCompanyId()); | 
|---|
|  |  |  | systemUser.setRealname(createCompanyUserDTO.getRealName()); | 
|---|
|  |  |  | systemUser.setUsername(createCompanyUserDTO.getUserName()); | 
|---|
|  |  |  | // 生成密码盐 | 
|---|
|  |  |  | String salt = RandomStringUtils.randomAlphabetic(6); | 
|---|
|  |  |  | // 生成密码 | 
|---|
|  |  |  | systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt)); | 
|---|
|  |  |  | systemUser.setSalt(salt); | 
|---|
|  |  |  | Integer userId = systemUserService.create(systemUser); | 
|---|
|  |  |  | if(systemUser.getType().equals(Constants.UserType.COMPANY.getKey())){ | 
|---|
|  |  |  | SystemUserRole newUserRole = new SystemUserRole(); | 
|---|
|  |  |  | newUserRole.setUserId(userId); | 
|---|
|  |  |  | newUserRole.setRoleId(createCompanyUserDTO.getRoleId()); | 
|---|
|  |  |  | systemUserRoleService.create(newUserRole); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
|---|
|  |  |  | public void companyUpdUser(CreateCompanyUserDTO updCreateCompanyUserDTO) { | 
|---|
|  |  |  | if(Objects.isNull(updCreateCompanyUserDTO) | 
|---|
|  |  |  | ||Objects.isNull(updCreateCompanyUserDTO.getId()) | 
|---|
|  |  |  | ||StringUtils.isBlank(updCreateCompanyUserDTO.getRealName())){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SystemUser systemUser  = systemUserService.findById(updCreateCompanyUserDTO.getId()); | 
|---|
|  |  |  | if(Objects.isNull(systemUser)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | systemUser.setRealname(updCreateCompanyUserDTO.getRealName()); | 
|---|
|  |  |  | systemUser.setMobile(updCreateCompanyUserDTO.getMobile()); | 
|---|
|  |  |  | systemUserService.updateById(systemUser); | 
|---|
|  |  |  | if(systemUser.getType().equals(Constants.UserType.COMPANY.getKey())){ | 
|---|
|  |  |  | // 删除关联角色 | 
|---|
|  |  |  | SystemUserRole deleteDto = new SystemUserRole(); | 
|---|
|  |  |  | deleteDto.setUserId(systemUser.getId()); | 
|---|
|  |  |  | systemUserRoleService.delete(deleteDto); | 
|---|
|  |  |  | SystemUserRole newUserRole = new SystemUserRole(); | 
|---|
|  |  |  | newUserRole.setUserId(systemUser.getId()); | 
|---|
|  |  |  | newUserRole.setRoleId(updCreateCompanyUserDTO.getRoleId()); | 
|---|
|  |  |  | systemUserRoleService.create(newUserRole); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|