|  |  | 
 |  |  |  | 
 |  |  | import cn.emay.sdk.core.dto.sms.response.SmsResponse; | 
 |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
 |  |  | import com.doumee.biz.system.SystemDictDataBiz; | 
 |  |  | import com.doumee.biz.system.SystemUserBiz; | 
 |  |  | import com.doumee.core.constants.ResponseStatus; | 
 |  |  | import com.doumee.core.exception.BusinessException; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SmsEmailMapper smsEmailMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SystemDictDataBiz systemDictDataBiz; | 
 |  |  |     @Autowired | 
 |  |  |     private CompanyService companyService; | 
 |  |  |     @Value("${debug_model}") | 
 |  |  | 
 |  |  |         if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
 |  |  |         } | 
 |  |  |         if(!debugModel){ | 
 |  |  |         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()); | 
 |  |  |         } | 
 |  |  |         SystemUser queryUserDto = new SystemUser(); | 
 |  |  |         queryUserDto.setUsername(systemUser.getUsername()); | 
 |  |  |         queryUserDto.setDeleted(Boolean.FALSE); | 
 |  |  |         queryUserDto.setType(Constants.ZERO); | 
 |  |  |  | 
 |  |  | //        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(); | 
 |  |  |             queryUserDto.setDeleted(Boolean.FALSE); | 
 |  |  |             queryUserDto.setEmpNo(systemUser.getMobile()); | 
 |  |  |             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(systemUser.getPassword(), salt)); | 
 |  |  | //        systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt)); | 
 |  |  |         systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt)); | 
 |  |  |         systemUser.setSalt(salt); | 
 |  |  |         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
 |  |  |         systemUser.setType(loginUserInfo.getType()); | 
 |  |  |         systemUser.setStatus(Constants.ZERO); | 
 |  |  |         systemUser.setCompanyId(loginUserInfo.getCompanyId()); | 
 |  |  |         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 | 
 |  |  |     @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); | 
 |  |  | //        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(); | 
 |  |  |             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); | 
 |  |  |         Integer userId = systemUserService.create(systemUser); | 
 |  |  |         // 设置部门 | 
 |  |  |         if (systemUser.getDepartmentId() != null) { | 
 |  |  | 
 |  |  |                 if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){ | 
 |  |  |                     throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"短信验证码不能为空!"); | 
 |  |  |                 } | 
 |  |  |                 if(!debugModel){ | 
 |  |  |                 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()); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  | 
 |  |  |             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); | 
 |  |  |         } | 
 |  |  |     } |