|  |  |  | 
|---|
|  |  |  | 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.system.dto.CreateSystemUserDTO; | 
|---|
|  |  |  | import com.doumee.dao.system.dto.CreateUserRoleDTO; | 
|---|
|  |  |  | import com.doumee.dao.system.dto.ResetSystemUserPwdDTO; | 
|---|
|  |  |  | import com.doumee.dao.system.dto.UpdatePwdDto; | 
|---|
|  |  |  | 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.SystemDepartmentUser; | 
|---|
|  |  |  | import com.doumee.dao.system.model.SystemUser; | 
|---|
|  |  |  | import com.doumee.dao.system.model.SystemUserRole; | 
|---|
|  |  |  | import com.doumee.service.business.CompanyService; | 
|---|
|  |  |  | 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.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  | import java.util.Objects; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Service | 
|---|
|  |  |  | public class SystemUserBizImpl implements SystemUserBiz { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemUserService systemUserService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private CompanyService companyService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemUserRoleService systemUserRoleService; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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(), "用户名已存在"); | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "登录账号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 验证工号 | 
|---|
|  |  |  | if (StringUtils.isNotBlank(systemUser.getEmpNo())) { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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(), "登录账号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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()); | 
|---|
|  |  |  | if(!Objects.isNull(company.getUserNum())&&company.getUserNum()!=Constants.ZERO){ | 
|---|
|  |  |  | if(systemUserService.findList(zbUserNum).size()>=company.getUserNum()){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,已超出企业可分配主播数量,如有疑问请联系系统管理员!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
|---|
|  |  |  | public void updUserStatus(Integer id,Integer status) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SystemUser systemUser  = systemUserService.findById(id); | 
|---|
|  |  |  | if(Objects.isNull(systemUser)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | systemUser.setStatus(status); | 
|---|
|  |  |  | systemUserService.updateById(systemUser); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
|---|
|  |  |  | public void updPassword(CreateCompanyUserDTO updCreateCompanyUserDTO) { | 
|---|
|  |  |  | if(Objects.isNull(updCreateCompanyUserDTO) | 
|---|
|  |  |  | ||Objects.isNull(updCreateCompanyUserDTO.getId()) | 
|---|
|  |  |  | ||StringUtils.isBlank(updCreateCompanyUserDTO.getPassword())){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SystemUser systemUser  = systemUserService.findById(updCreateCompanyUserDTO.getId()); | 
|---|
|  |  |  | if(Objects.isNull(systemUser)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 生成密码盐 | 
|---|
|  |  |  | String salt = RandomStringUtils.randomAlphabetic(6); | 
|---|
|  |  |  | // 生成密码 | 
|---|
|  |  |  | systemUser.setPassword(Utils.Secure.encryptPassword(updCreateCompanyUserDTO.getPassword(), salt)); | 
|---|
|  |  |  | systemUser.setSalt(salt); | 
|---|
|  |  |  | systemUserService.updateById(systemUser); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private <K,V> K getKey(Map<K,V> map,V v){ | 
|---|
|  |  |  |  | 
|---|