From 50fb58286ed3b718c39a97e0987ee7561a295651 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 04 七月 2025 17:56:41 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java |  257 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 151 insertions(+), 106 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 990a06a..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
@@ -1,25 +1,32 @@
 package com.doumee.biz.system.impl;
 
+import cn.emay.sdk.core.dto.sms.response.SmsResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
 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.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;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.system.model.SystemUserRole;
 import com.doumee.service.business.CompanyService;
+import com.doumee.service.business.impl.SmsEmailServiceImpl;
 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.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -34,9 +41,18 @@
 
     @Autowired
     private SystemUserService systemUserService;
+    @Autowired
+    private SmsEmailMapper smsEmailMapper;
 
     @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
     private CompanyService companyService;
+    @Autowired
+    private CompanyDepartmentMapper companyDepartmentMapper;
+
+    @Value("${debug_model}")
+    private boolean debugModel;
 
     @Autowired
     private SystemUserRoleService systemUserRoleService;
@@ -109,29 +125,41 @@
     public void create(CreateSystemUserDTO systemUser) {
         // 楠岃瘉鐢ㄦ埛鍚�
 //        systemUser.setUsername(systemUser.getMobile());
+        if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){
+            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());
+        }
         SystemUser queryUserDto = new SystemUser();
         queryUserDto.setUsername(systemUser.getUsername());
         queryUserDto.setDeleted(Boolean.FALSE);
-        queryUserDto.setType(Constants.ZERO);
+//        queryUserDto.setType(Constants.ZERO);
         SystemUser user = systemUserService.findOne(queryUserDto);
         if (user != null) {
             throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鐧诲綍璐﹀彿宸插瓨鍦�");
         }
-        // 楠岃瘉宸ュ彿
-       if (StringUtils.isNotBlank(systemUser.getEmpNo())) {
+        // 楠岃瘉鎵嬫満鍙�
+       if (StringUtils.isNotBlank(systemUser.getMobile())) {
             queryUserDto = new SystemUser();
             queryUserDto.setDeleted(Boolean.FALSE);
-            queryUserDto.setEmpNo(systemUser.getEmpNo());
+            queryUserDto.setMobile(systemUser.getMobile());
             user = systemUserService.findOne(queryUserDto);
             if (user != null) {
-                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "宸ュ彿宸插瓨鍦�");
+                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙峰凡瀛樺湪");
             }
         }
         // 鐢熸垚瀵嗙爜鐩�
         String salt = RandomStringUtils.randomAlphabetic(6);
         // 鐢熸垚瀵嗙爜
-        systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt));
+//        systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt));
+        systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt));
         systemUser.setSalt(salt);
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        systemUser.setType(loginUserInfo.getType());
+        systemUser.setStatus(Constants.ZERO);
+        systemUser.setCompanyId(loginUserInfo.getCompanyId());
         Integer userId = systemUserService.create(systemUser);
         // 璁剧疆閮ㄩ棬
         if (systemUser.getDepartmentId() != null) {
@@ -152,17 +180,87 @@
             systemDepartmentUser.setOperaTime(new Date());
             systemDepartmentUserService.create(systemDepartmentUser);
         }
-        // 璁剧疆宀椾綅
-//        if (systemUser.getPositionIds() != null && systemUser.getPositionIds().size() > 0) {
-//            for (Integer positionId : systemUser.getPositionIds()) {
-//                SystemPositionUser systemPositionUser = new SystemPositionUser();
-//                systemPositionUser.setPositionId(positionId);
-//                systemPositionUser.setUserId(userId);
-//                systemPositionUser.setOperaUser(systemUser.getCreateUser());
-//                systemPositionUser.setOperaTime(new Date());
-//                systemPositionUserService.create(systemPositionUser);
-//            }
-//        }
+
+    }
+    @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
@@ -171,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);
@@ -181,19 +278,34 @@
         }
 
         // 楠岃瘉宸ュ彿
-        if (StringUtils.isNotBlank(systemUser.getEmpNo())) {
+        if (StringUtils.isNotBlank(systemUser.getMobile())) {
             queryUserDto = new SystemUser();
-            queryUserDto.setEmpNo(systemUser.getEmpNo());
+            queryUserDto.setEmpNo(systemUser.getMobile());
             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(), "鎵嬫満鍙峰凡瀛樺湪");
+            }
+            user = systemUserService.findById(systemUser.getId());
+            if(user == null){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛淇℃伅涓嶅瓨鍦紒");
+            }
+            if(!StringUtils.equals(systemUser.getMobile(),user.getMobile())){
+                //濡傛灉鎵嬫満鍙峰彂鐢熷彉鍖栭獙璇侀獙璇佺爜
+                if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐭俊楠岃瘉鐮佷笉鑳戒负绌猴紒");
+                }
+                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.setCompanyId(null);//涓嶆敮鎸佷慨鏀�
         // 淇敼鐢ㄦ埛
         systemUserService.updateById(systemUser);
         // 璁剧疆閮ㄩ棬
-        SystemDepartmentUser deleteDepartmentDto = new SystemDepartmentUser();
+        /*SystemDepartmentUser deleteDepartmentDto = new SystemDepartmentUser();
         deleteDepartmentDto.setUserId(systemUser.getId());
         systemDepartmentUserService.delete(deleteDepartmentDto);
         if (systemUser.getDepartmentId() != null) {
@@ -203,21 +315,24 @@
             systemDepartmentUser.setOperaUser(systemUser.getUpdateUser());
             systemDepartmentUser.setOperaTime(new Date());
             systemDepartmentUserService.create(systemDepartmentUser);
-        }
-        // 璁剧疆宀椾綅
-    /*    SystemPositionUser deletePositionDto = new SystemPositionUser();
-        deletePositionDto.setUserId(systemUser.getId());
-        systemPositionUserService.delete(deletePositionDto);
-        if (systemUser.getPositionIds() != null && systemUser.getPositionIds().size() > 0) {
-            for (Integer positionId : systemUser.getPositionIds()) {
-                SystemPositionUser systemPositionUser = new SystemPositionUser();
-                systemPositionUser.setPositionId(positionId);
-                systemPositionUser.setUserId(systemUser.getId());
-                systemPositionUser.setOperaUser(systemUser.getUpdateUser());
-                systemPositionUser.setOperaTime(new Date());
-                systemPositionUserService.create(systemPositionUser);
-            }
         }*/
+    }
+
+
+    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());
+
     }
 
     @Override
@@ -232,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