From 189849927e37278c8bc03202bd714aca7a0f8f7d Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期三, 10 十二月 2025 11:10:03 +0800
Subject: [PATCH] 修改功能

---
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java |   99 +++++++++++++++++++++++++++++--------------------
 1 files changed, 59 insertions(+), 40 deletions(-)

diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
index b5cf48f..c96fc70 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
@@ -24,6 +24,7 @@
 import com.gkhy.exam.system.domain.vo.EmployeeRecordVO;
 import com.gkhy.exam.system.domain.vo.SpSysUser;
 import com.gkhy.exam.system.mapper.EmployeeRecordMapper;
+import com.gkhy.exam.system.mapper.ExStudentMapper;
 import com.gkhy.exam.system.mapper.SysUserMapper;
 import com.gkhy.exam.system.mapper.SysUserRoleMapper;
 import com.gkhy.exam.system.service.ExStudentService;
@@ -65,6 +66,9 @@
 
     @Autowired
     private EmployeeRecordMapper employeeRecordMapper;
+
+    @Autowired
+    private ExStudentMapper exStudentMapper;
 
 
     @Override
@@ -153,8 +157,6 @@
     public SysUser selectUserById(Long userId) {
 
 
-
-
         return baseMapper.getUserById(userId);
     }
 
@@ -166,7 +168,7 @@
         }
         delCacheByUsername(user.getUsername());
         int i = baseMapper.deleteUserById(userId);
-        if (i > 0){
+        if (i > 0) {
             delEmployeeRecord(userId);
         }
         return i;
@@ -185,26 +187,28 @@
 
         batchSaveRole(user.getRoles(), user.getId(), false);
 
-        ExStudent exStudent = new ExStudent();
-        exStudent.setCompanyId(user.getCompanyId());
-        exStudent.setName(user.getName());
-        exStudent.setPassword(user.getPassword());
-        exStudent.setDeptId(user.getDeptId());
-        exStudent.setDuty(user.getDuty());
-        exStudent.setSex(user.getSex());
-        exStudent.setPhone(user.getPhone());
-        exStudent.setUserId(user.getId());
-        exStudentService.insertStudent(exStudent);
-
-        Integer internal = user.getInternal();
-        if (internal == 0){
-            EmployeeRecord employeeRecord = new EmployeeRecord();
-            employeeRecord.setCompanyId(user.getCompanyId());
-            employeeRecord.setUserId(user.getId());
-            employeeRecord.setCreateBy(SecurityUtils.getUsername());
-            employeeRecord.setCreateTime(LocalDateTime.now());
-            saveEmployeeRecord(employeeRecord);
+        if (user.getCompanyId() != null) {
+            ExStudent exStudent = new ExStudent();
+            exStudent.setCompanyId(user.getCompanyId());
+            exStudent.setName(user.getName());
+            exStudent.setPassword(user.getPassword());
+            exStudent.setDeptId(user.getDeptId());
+            exStudent.setDuty(user.getDuty());
+            exStudent.setSex(user.getSex());
+            exStudent.setPhone(user.getPhone());
+            exStudent.setUserId(user.getId());
+            exStudentService.insertStudent(exStudent);
+            Integer internal = user.getInternal();
+            if (internal == 0) {
+                EmployeeRecord employeeRecord = new EmployeeRecord();
+                employeeRecord.setCompanyId(user.getCompanyId());
+                employeeRecord.setUserId(user.getId());
+                employeeRecord.setCreateBy(SecurityUtils.getUsername());
+                employeeRecord.setCreateTime(LocalDateTime.now());
+                saveEmployeeRecord(employeeRecord);
+            }
         }
+
 
         if (row < 1) {
             throw new ApiException("新增用户失败");
@@ -212,15 +216,15 @@
         return row;
     }
 
-    private void saveEmployeeRecord( EmployeeRecord employeeRecord){
-        employeeRecordMapper.insert( employeeRecord);
+    private void saveEmployeeRecord(EmployeeRecord employeeRecord) {
+        employeeRecordMapper.insert(employeeRecord);
     }
 
-    private void delEmployeeRecord(Long userId){
+    private void delEmployeeRecord(Long userId) {
         LambdaUpdateWrapper<EmployeeRecord> updateWrapper = new LambdaUpdateWrapper<>();
-        updateWrapper.eq(EmployeeRecord::getUserId,userId).set(EmployeeRecord::getDelFlag,1)
-                .set(EmployeeRecord::getUpdateBy,SecurityUtils.getUsername()).set(EmployeeRecord::getUpdateTime,LocalDateTime.now());
-        employeeRecordMapper.update(new EmployeeRecord() ,updateWrapper);
+        updateWrapper.eq(EmployeeRecord::getUserId, userId).set(EmployeeRecord::getDelFlag, 1)
+                .set(EmployeeRecord::getUpdateBy, SecurityUtils.getUsername()).set(EmployeeRecord::getUpdateTime, LocalDateTime.now());
+        employeeRecordMapper.update(new EmployeeRecord(), updateWrapper);
     }
 
 
@@ -255,26 +259,41 @@
         checkUserAllowed(user);
         user.setUpdateBy(SecurityUtils.getUsername());
 
-        if(StringUtils.isNotEmpty(user.getPassword())){
+        if (StringUtils.isNotEmpty(user.getPassword())) {
             user.setPassword(SecurityUtils.encryptPassword(Base64.decodeStr(user.getPassword())));
-        }else {
+        } else {
             user.setPassword(null);
+        }
+        if (sysUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode()) && !user.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())){
+            if (user.getCompanyId() == null){
+                throw new ApiException("请选择所属公司");
+            }
+        }
+        if (user.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode()) && !sysUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())){
+           user.setCompanyId(null);
+           delEmployeeRecord(user.getId());
+            LambdaUpdateWrapper<ExStudent> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.eq(ExStudent::getUserId, user.getId()).set(ExStudent::getDelFlag, 1)
+                    .set(ExStudent::getUpdateBy, SecurityUtils.getUsername()).set(ExStudent::getUpdateTime, LocalDateTime.now());
+            exStudentMapper.update(new ExStudent(),updateWrapper);
         }
 
         int row = baseMapper.updateById(user);
         batchSaveRole(user.getRoles(), user.getId(), true);
-
-        if (sysUser.getInternal() == 0 && sysUser.getInternal() == 1){
-            delEmployeeRecord(user.getId());
-        }else if (sysUser.getInternal() == 1 && user.getInternal() == 0){
-            EmployeeRecord employeeRecord = new EmployeeRecord();
-            employeeRecord.setCompanyId(user.getCompanyId());
-            employeeRecord.setUserId(user.getId());
-            employeeRecord.setCreateBy(SecurityUtils.getUsername());
-            employeeRecord.setCreateTime(LocalDateTime.now());
-            saveEmployeeRecord(employeeRecord);
+        if (user.getCompanyId() != null){
+            if (sysUser.getInternal() == 0 && sysUser.getInternal() == 1) {
+                delEmployeeRecord(user.getId());
+            } else if (sysUser.getInternal() == 1 && user.getInternal() == 0) {
+                EmployeeRecord employeeRecord = new EmployeeRecord();
+                employeeRecord.setCompanyId(user.getCompanyId());
+                employeeRecord.setUserId(user.getId());
+                employeeRecord.setCreateBy(SecurityUtils.getUsername());
+                employeeRecord.setCreateTime(LocalDateTime.now());
+                saveEmployeeRecord(employeeRecord);
+            }
         }
 
+
         if (row < 1) {
             throw new ApiException("更新用户信息失败");
         }

--
Gitblit v1.9.2