From 5506edbe54883b31db3cc8e4a1d9d0795a18a3c9 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 27 十二月 2024 14:37:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1

---
 server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java |   41 +++++++++++++++++++++++++++++++++--------
 1 files changed, 33 insertions(+), 8 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 1bb9727..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;
 
@@ -181,7 +186,6 @@
     @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);
@@ -205,12 +209,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(), "鐧诲綍璐﹀彿宸插瓨鍦�");
         }
-
         // 楠岃瘉鎵嬫満鍙�
        if (StringUtils.isNotBlank(systemUser.getMobile())) {
             queryUserDto = new SystemUser();
@@ -229,8 +231,17 @@
         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());
@@ -248,7 +259,7 @@
             systemDepartmentUser.setOperaUser(systemUser.getCreateUser());
             systemDepartmentUser.setOperaTime(new Date());
             systemDepartmentUserService.create(systemDepartmentUser);
-        }
+        }*/
 
     }
 
@@ -258,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);
@@ -291,12 +301,11 @@
                 }
             }
         }
-        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) {
@@ -306,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());
 
     }
 

--
Gitblit v1.9.3