From c58316993ee13c6f4dc727f9a052b6ba4e8fff7d Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 25 一月 2024 17:37:43 +0800
Subject: [PATCH] 开发业务接口

---
 server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java |   75 +++++++++++++++++++++----------------
 1 files changed, 43 insertions(+), 32 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..d108c33 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,5 +1,6 @@
 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.SystemUserBiz;
 import com.doumee.core.constants.ResponseStatus;
@@ -7,6 +8,7 @@
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.SmsEmailMapper;
 import com.doumee.dao.business.model.Company;
 import com.doumee.dao.system.dto.*;
 import com.doumee.dao.system.model.SystemDepartment;
@@ -14,12 +16,14 @@
 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 +38,13 @@
 
     @Autowired
     private SystemUserService systemUserService;
+    @Autowired
+    private SmsEmailMapper smsEmailMapper;
 
     @Autowired
     private CompanyService companyService;
+    @Value("${debug_model}")
+    private boolean debugModel;
 
     @Autowired
     private SystemUserRoleService systemUserRoleService;
@@ -109,22 +117,29 @@
     public void create(CreateSystemUserDTO systemUser) {
         // 楠岃瘉鐢ㄦ埛鍚�
 //        systemUser.setUsername(systemUser.getMobile());
+        if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(!debugModel){
+            SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,systemUser.getMobile(),systemUser.getCaptcha());
+        }
         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.getEmpNo())) {
+        // 楠岃瘉鎵嬫満鍙�
+       if (StringUtils.isNotBlank(systemUser.getMobile())) {
             queryUserDto = new SystemUser();
             queryUserDto.setDeleted(Boolean.FALSE);
-            queryUserDto.setEmpNo(systemUser.getEmpNo());
+            queryUserDto.setEmpNo(systemUser.getMobile());
             user = systemUserService.findOne(queryUserDto);
             if (user != null) {
-                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "宸ュ彿宸插瓨鍦�");
+                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙峰凡瀛樺湪");
             }
         }
         // 鐢熸垚瀵嗙爜鐩�
@@ -132,6 +147,10 @@
         // 鐢熸垚瀵嗙爜
         systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), 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 +171,7 @@
             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
@@ -181,15 +190,30 @@
         }
 
         // 楠岃瘉宸ュ彿
-        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(),"鐭俊楠岃瘉鐮佷笉鑳戒负绌猴紒");
+                }
+                if(!debugModel){
+                    SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,systemUser.getMobile(),systemUser.getCaptcha());
+                }
             }
         }
+        systemUser.setType(null);//涓嶆敮鎸佷慨鏀�
+        systemUser.setCompanyId(null);//涓嶆敮鎸佷慨鏀�
         // 淇敼鐢ㄦ埛
         systemUserService.updateById(systemUser);
         // 璁剧疆閮ㄩ棬
@@ -204,20 +228,7 @@
             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);
-            }
-        }*/
+
     }
 
     @Override

--
Gitblit v1.9.3