From 0b9c144b5110a7e2a85b2e5581ef304bb81a3ebc Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 19 九月 2023 19:24:35 +0800
Subject: [PATCH] 修改

---
 server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java |  121 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 117 insertions(+), 4 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..dee67ff 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;
@@ -228,6 +235,112 @@
         }
     }
 
+    @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(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