From 826976ff37a83fc8fec64aeb19727d69afc6fcfa Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期四, 31 七月 2025 16:05:24 +0800
Subject: [PATCH] 修改人员角色绑定

---
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java |   40 ++++++++++++++++++++++++++++++----------
 1 files changed, 30 insertions(+), 10 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 bd08a00..04d642e 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
@@ -7,6 +7,7 @@
 import com.gkhy.exam.common.api.CommonPage;
 import com.gkhy.exam.common.constant.CacheConstant;
 import com.gkhy.exam.common.constant.UserConstant;
+import com.gkhy.exam.common.domain.entity.SysRole;
 import com.gkhy.exam.common.domain.entity.SysUser;
 import com.gkhy.exam.common.enums.UserTypeEnum;
 import com.gkhy.exam.common.exception.ApiException;
@@ -26,10 +27,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.validation.Validator;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 
@@ -153,12 +151,8 @@
         user.setCreateBy(SecurityUtils.getUsername());
         user.setPassword(SecurityUtils.encryptPassword(Base64.decodeStr(user.getPassword())));
         int row=baseMapper.insert(user);
-        List<SysUserRole> userRoleList = new ArrayList<>();
-        SysUserRole sysUserRole = new SysUserRole();
-        sysUserRole.setUserId(user.getId());
-        sysUserRole.setRoleId(2L);
-        userRoleList.add(sysUserRole);
-        userRoleMapper.batchUserRole(userRoleList);
+
+        batchSaveRole(user.getRoles(),user.getId(),false);
 
         exStudentService.insertStudent(exStudent);
 
@@ -168,6 +162,30 @@
         return row;
     }
 
+    public void batchSaveRole(List<SysRole> roleIds, Long userId, boolean isUpdate){
+
+        if (isUpdate){
+            userRoleMapper.deleteUserRoleByUserId(userId);
+        }
+
+        List<SysUserRole> userRoleList = new ArrayList<>();
+        if(roleIds != null && !roleIds.isEmpty()){
+
+            for (SysRole roleId : roleIds) {
+                SysUserRole sysUserRole = new SysUserRole();
+                sysUserRole.setUserId(userId);
+                sysUserRole.setRoleId(roleId.getRoleId());
+                userRoleList.add(sysUserRole);
+            }
+        }else {
+            SysUserRole sysUserRole = new SysUserRole();
+            sysUserRole.setUserId(userId);
+            sysUserRole.setRoleId(2L);
+            userRoleList.add(sysUserRole);
+        }
+        userRoleMapper.batchUserRole(userRoleList);
+    }
+
     @Override
     public int updateUser(SysUser user) {
         checkRequestData(user);
@@ -175,6 +193,8 @@
         user.setUpdateBy(SecurityUtils.getUsername());
         user.setPassword(null);
         int row=baseMapper.updateById(user);
+        batchSaveRole(user.getRoles(),user.getId(),true);
+
         if(row<1){
             throw new ApiException("更新用户信息失败");
         }

--
Gitblit v1.9.2