From dcdb0231034810232f2542f3865666ebf72daf11 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 30 四月 2025 16:45:34 +0800 Subject: [PATCH] sf --- server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java | 128 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 122 insertions(+), 6 deletions(-) diff --git a/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java b/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java index 49c8cce..446eac4 100644 --- a/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java +++ b/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java @@ -4,18 +4,21 @@ 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; @@ -24,12 +27,16 @@ 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; @@ -105,9 +112,10 @@ 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())) { @@ -168,7 +176,7 @@ 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(), "鐧诲綍璐﹀彿宸插瓨鍦�"); } } @@ -228,6 +236,114 @@ } } + @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){ -- Gitblit v1.9.3