From db8242513644b246a30222663ef20e21f1e7c7ce Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期二, 10 六月 2025 09:55:46 +0800
Subject: [PATCH] init

---
 exam-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java |   56 +++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 47 insertions(+), 9 deletions(-)

diff --git a/exam-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
index 899df46..7690a1c 100644
--- a/exam-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
@@ -3,13 +3,17 @@
 import cn.hutool.core.codec.Base64;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.exam.common.annotation.DataScope;
 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.SysUser;
 import com.gkhy.exam.common.enums.UserTypeEnum;
 import com.gkhy.exam.common.exception.ApiException;
-import com.gkhy.exam.common.utils.*;
+import com.gkhy.exam.common.utils.PageUtils;
+import com.gkhy.exam.common.utils.RedisUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.common.utils.StringUtils;
 import com.gkhy.exam.system.mapper.SysUserMapper;
 import com.gkhy.exam.system.service.SysConfigService;
 import com.gkhy.exam.system.service.SysUserService;
@@ -17,6 +21,7 @@
 import org.springframework.stereotype.Service;
 
 import javax.validation.Validator;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -44,15 +49,43 @@
     @Override
     public CommonPage<SysUser> selectUserList(SysUser user) {
         SysUser currentUser=SecurityUtils.getLoginUser().getUser();
-        Map<String,Object> paramsMap=new HashMap<>();
-        paramsMap.put("userType",currentUser.getUserType());
-        user.setParams(paramsMap);
-        if(!currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())){
-            user.setCompanyId(currentUser.getCompanyId());
+        List<SysUser> users=new ArrayList<>();
+        if(!currentUser.getUserType().equals(UserTypeEnum.WORKSHOP_USER.getCode())){
+            if(!currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())){
+                user.setCompanyId(currentUser.getCompanyId());
+                Map<String,Object> paramsMap=new HashMap<>();
+                paramsMap.put("userType",currentUser.getUserType());
+                user.setParams(paramsMap);
+            }
+            PageUtils.startPage();
+            users=baseMapper.userList(user);
         }
-        PageUtils.startPage();
-        List<SysUser> users=baseMapper.userList(user);
         return CommonPage.restPage(users);
+    }
+    /**
+     * 根据条件分页查询已分配用户角色列表
+     *
+     * @param user 用户信息
+     * @return 用户信息集合信息
+     */
+    @Override
+    @DataScope( userAlias = "u")
+    public List<SysUser> selectAllocatedList(SysUser user)
+    {
+        return baseMapper.selectAllocatedList(user);
+    }
+
+    /**
+     * 根据条件分页查询未分配用户角色列表
+     *
+     * @param user 用户信息
+     * @return 用户信息集合信息
+     */
+    @Override
+    @DataScope( userAlias = "u")
+    public List<SysUser> selectUnallocatedList(SysUser user)
+    {
+        return baseMapper.selectUnallocatedList(user);
     }
 
 
@@ -109,6 +142,7 @@
         checkRequestData(user);
         checkUserAllowed(user);
         user.setUpdateBy(SecurityUtils.getUsername());
+        user.setPassword(null);
         int row=baseMapper.updateById(user);
         if(row<1){
             throw new ApiException("更新用户信息失败");
@@ -182,7 +216,11 @@
         Integer currentUserType=currentUser.getUserType();
         Integer userType=user.getUserType();
         //校验权限,规则:上一级用户可以增加下一级用户类型的用户
-        if(!currentUserType.equals(UserTypeEnum.SYSTEM_USER.getCode())){
+        if(currentUserType.equals(UserTypeEnum.SYSTEM_USER.getCode())){
+            if( !userType.equals(UserTypeEnum.SYSTEM_USER.getCode())&&!userType.equals(UserTypeEnum.OTHER_USER.getCode()) &&!userType.equals(UserTypeEnum.COMPANY_USER.getCode())){
+                throw new ApiException("管理员只能操作管理员、企业级和其他类型的用户");
+            }
+        }else{
             if(userType.equals(UserTypeEnum.OTHER_USER.getCode())){
                 throw new ApiException("没有权限操作或者更新上级用户类型的用户");
             }

--
Gitblit v1.9.2