From cdd6551b190b981b807a3b95e9635c559ccc769d Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 19 五月 2025 09:45:07 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java |  178 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 104 insertions(+), 74 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 ac47064..3e10b1f 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
@@ -9,8 +9,10 @@
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.CompanyDepartmentMapper;
 import com.doumee.dao.business.SmsEmailMapper;
 import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.CompanyDepartment;
 import com.doumee.dao.system.dto.*;
 import com.doumee.dao.system.model.SystemDepartment;
 import com.doumee.dao.system.model.SystemDepartmentUser;
@@ -46,6 +48,9 @@
     private SystemDictDataBiz systemDictDataBiz;
     @Autowired
     private CompanyService companyService;
+    @Autowired
+    private CompanyDepartmentMapper companyDepartmentMapper;
+
     @Value("${debug_model}")
     private boolean debugModel;
 
@@ -177,6 +182,86 @@
         }
 
     }
+    @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);
+        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);
+
+        //濡傛灉鏄紒涓氱敤鎴� 蹇呴』濉啓email
+        if(Constants.equalsInteger(systemUser.getType(),Constants.ONE)){
+            if( systemUser.getEmail() == null){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST);
+            }
+        }
+        this.dealCompanyDepartmentData(systemUser);
+        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
     public void updateById(CreateSystemUserDTO systemUser) {
@@ -184,7 +269,6 @@
         SystemUser queryUserDto = new SystemUser();
         SystemUser user = null;
         if (StringUtils.isNotBlank(systemUser.getUsername())){
-
             queryUserDto.setUsername(systemUser.getUsername());
             queryUserDto.setDeleted(Boolean.FALSE);
             user = systemUserService.findOne(queryUserDto);
@@ -211,17 +295,17 @@
                 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());
                 }
             }
         }
-        systemUser.setType(null);//涓嶆敮鎸佷慨鏀�
         systemUser.setCompanyId(null);//涓嶆敮鎸佷慨鏀�
         // 淇敼鐢ㄦ埛
         systemUserService.updateById(systemUser);
         // 璁剧疆閮ㄩ棬
-        SystemDepartmentUser deleteDepartmentDto = new SystemDepartmentUser();
+        /*SystemDepartmentUser deleteDepartmentDto = new SystemDepartmentUser();
         deleteDepartmentDto.setUserId(systemUser.getId());
         systemDepartmentUserService.delete(deleteDepartmentDto);
         if (systemUser.getDepartmentId() != null) {
@@ -231,7 +315,23 @@
             systemDepartmentUser.setOperaUser(systemUser.getUpdateUser());
             systemDepartmentUser.setOperaTime(new Date());
             systemDepartmentUserService.create(systemDepartmentUser);
+        }*/
+    }
+
+
+    public void dealCompanyDepartmentData(CreateSystemUserDTO systemUser){
+        if(Objects.isNull(systemUser.getDepartmentId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
+        //澶勭悊缁勭粐鏁版嵁
+        CompanyDepartment companyDepartment = companyDepartmentMapper.selectById(systemUser.getDepartmentId());
+        if(Objects.isNull(companyDepartment)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌缁勭粐鏁版嵁");
+        }
+        if(Constants.equalsInteger(companyDepartment.getType(),systemUser.getType())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"缁勭粐鍖归厤澶辫触,闈炲悓绫诲瀷缁勭粐");
+        }
+        systemUser.setDepartmentId(companyDepartment.getId());
 
     }
 
@@ -247,76 +347,6 @@
             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);
         }
     }

--
Gitblit v1.9.3