| | |
| | | package com.doumee.biz.system.impl; |
| | | |
| | | 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; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.SmsEmailMapper; |
| | | import com.doumee.dao.business.model.Company; |
| | | import com.doumee.dao.system.dto.*; |
| | | import com.doumee.dao.system.model.SystemDepartment; |
| | |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.dao.system.model.SystemUserRole; |
| | | import com.doumee.service.business.CompanyService; |
| | | import com.doumee.service.business.impl.SmsEmailServiceImpl; |
| | | import com.doumee.service.system.*; |
| | | import org.apache.commons.lang3.RandomStringUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | |
| | | |
| | | @Autowired |
| | | private SystemUserService systemUserService; |
| | | @Autowired |
| | | private SmsEmailMapper smsEmailMapper; |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | private CompanyService companyService; |
| | | @Value("${debug_model}") |
| | | private boolean debugModel; |
| | | |
| | | @Autowired |
| | | private SystemUserRoleService systemUserRoleService; |
| | |
| | | public void create(CreateSystemUserDTO systemUser) { |
| | | // 验证用户名 |
| | | // systemUser.setUsername(systemUser.getMobile()); |
| | | if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | if(!debugModel){ |
| | | 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.getEmpNo())) { |
| | | // 验证手机号 |
| | | if (StringUtils.isNotBlank(systemUser.getMobile())) { |
| | | queryUserDto = new SystemUser(); |
| | | queryUserDto.setDeleted(Boolean.FALSE); |
| | | queryUserDto.setEmpNo(systemUser.getEmpNo()); |
| | | queryUserDto.setMobile(systemUser.getMobile()); |
| | | user = systemUserService.findOne(queryUserDto); |
| | | if (user != null) { |
| | | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "工号已存在"); |
| | | 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.setOperaTime(new Date()); |
| | | systemDepartmentUserService.create(systemDepartmentUser); |
| | | } |
| | | // 设置岗位 |
| | | // if (systemUser.getPositionIds() != null && systemUser.getPositionIds().size() > 0) { |
| | | // for (Integer positionId : systemUser.getPositionIds()) { |
| | | // SystemPositionUser systemPositionUser = new SystemPositionUser(); |
| | | // systemPositionUser.setPositionId(positionId); |
| | | // systemPositionUser.setUserId(userId); |
| | | // systemPositionUser.setOperaUser(systemUser.getCreateUser()); |
| | | // systemPositionUser.setOperaTime(new Date()); |
| | | // systemPositionUserService.create(systemPositionUser); |
| | | // } |
| | | // } |
| | | |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | // 验证工号 |
| | | if (StringUtils.isNotBlank(systemUser.getEmpNo())) { |
| | | if (StringUtils.isNotBlank(systemUser.getMobile())) { |
| | | queryUserDto = new SystemUser(); |
| | | queryUserDto.setEmpNo(systemUser.getEmpNo()); |
| | | queryUserDto.setEmpNo(systemUser.getMobile()); |
| | | queryUserDto.setDeleted(Boolean.FALSE); |
| | | user = systemUserService.findOne(queryUserDto); |
| | | if (user != null && !user.getId().equals(systemUser.getId())) { |
| | | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "工号已存在"); |
| | | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "手机号已存在"); |
| | | } |
| | | user = systemUserService.findById(systemUser.getId()); |
| | | if(user == null){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,用户信息不存在!"); |
| | | } |
| | | if(!StringUtils.equals(systemUser.getMobile(),user.getMobile())){ |
| | | //如果手机号发生变化验证验证码 |
| | | if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"短信验证码不能为空!"); |
| | | } |
| | | if(!debugModel){ |
| | | SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,systemUser.getMobile(),systemUser.getCaptcha()); |
| | | } |
| | | } |
| | | } |
| | | systemUser.setType(null);//不支持修改 |
| | | systemUser.setCompanyId(null);//不支持修改 |
| | | // 修改用户 |
| | | systemUserService.updateById(systemUser); |
| | | // 设置部门 |
| | |
| | | systemDepartmentUser.setOperaTime(new Date()); |
| | | systemDepartmentUserService.create(systemDepartmentUser); |
| | | } |
| | | // 设置岗位 |
| | | /* SystemPositionUser deletePositionDto = new SystemPositionUser(); |
| | | deletePositionDto.setUserId(systemUser.getId()); |
| | | systemPositionUserService.delete(deletePositionDto); |
| | | if (systemUser.getPositionIds() != null && systemUser.getPositionIds().size() > 0) { |
| | | for (Integer positionId : systemUser.getPositionIds()) { |
| | | SystemPositionUser systemPositionUser = new SystemPositionUser(); |
| | | systemPositionUser.setPositionId(positionId); |
| | | systemPositionUser.setUserId(systemUser.getId()); |
| | | systemPositionUser.setOperaUser(systemUser.getUpdateUser()); |
| | | systemPositionUser.setOperaTime(new Date()); |
| | | systemPositionUserService.create(systemPositionUser); |
| | | } |
| | | }*/ |
| | | |
| | | } |
| | | |
| | | @Override |