From 4e7650b1fc3749bb44dcab796fdd978beb610a8d Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 04 一月 2025 14:05:30 +0800
Subject: [PATCH] 修改管理后台权限bug

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java |   50 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 41 insertions(+), 9 deletions(-)

diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 08b41c6..291ae90 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -11,30 +11,27 @@
 import com.ruoyi.common.datascope.annotation.DataScope;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.api.domain.SysRole;
 import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.model.UserShop;
 import com.ruoyi.system.api.query.ChangeUserQuery;
 import com.ruoyi.system.domain.SysPost;
 import com.ruoyi.system.domain.SysUserPost;
 import com.ruoyi.system.domain.SysUserRole;
 import com.ruoyi.system.mapper.*;
 import com.ruoyi.system.query.GetSysUserList;
-import com.ruoyi.system.service.ISysConfigService;
-import com.ruoyi.system.service.ISysRoleService;
-import com.ruoyi.system.service.ISysUserRoleService;
-import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import javax.validation.Validator;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -75,6 +72,13 @@
 	
 	@Resource
 	private TokenService tokenService;
+
+	@Lazy
+	@Resource
+	private ISysDeptService deptService;
+	
+	@Resource
+	private UserShopService userShopService;
 	
 	
 	/**
@@ -446,7 +450,20 @@
 //        userRoleMapper.deleteUserRole(userIds);
 //        // 删除用户与岗位关联
 //        userPostMapper.deleteUserPost(userIds);
-		return userMapper.deleteUserByIds(userIds);
+		int i = userMapper.deleteUserByIds(userIds);
+		List<SysUser> sysUsers = this.listByIds(Arrays.asList(userIds));
+		for (SysUser user : sysUsers) {
+			if(2 == user.getRoleType()){
+				userShopService.remove(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, user.getUserId()).eq(UserShop::getShopId, user.getObjectId()));
+				UserShop userShop = new UserShop();
+				userShop.setUserId(user.getUserId());
+				userShop.setShopId(user.getObjectId());
+				userShop.setRoleType(2);
+				userShop.setRoleId(user.getRoleId());
+				userShopService.save(userShop);
+			}
+		}
+		return i;
 	}
 	
 	/**
@@ -509,17 +526,27 @@
 	
 	@Override
 	public PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, GetSysUserList getSysUserList) {
+		Long userid = tokenService.getLoginUser().getUserid();
+		SysUser sysUser1 = this.getById(userid);
+		if(sysUser1.getRoleType() == 2){
+			getSysUserList.setObjectId(sysUser1.getObjectId());
+		}
 		List<SysUser> list = this.baseMapper.getList(pageInfo, getSysUserList);
 		for (SysUser sysUser : list) {
 			List<SysUserRole> list1 = sysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, sysUser.getUserId()));
 			List<String> roleNames = new ArrayList<>();
 			for (SysUserRole sysUserRole : list1) {
 				SysRole sysRole = sysRoleService.selectRoleById(sysUserRole.getRoleId());
+				if(null == sysRole){
+					continue;
+				}
 				roleNames.add(sysRole.getRoleName());
 			}
 			Long[] roleIds = new Long[]{};
 			sysUser.setRoleIds(list1.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()).toArray(roleIds));
 			sysUser.setRoleNames(roleNames);
+            SysDept sysDept = deptService.selectDeptById(sysUser.getDeptId());
+            sysUser.setDept(sysDept);
 		}
 		return pageInfo.setRecords(list);
 	}
@@ -541,6 +568,11 @@
 	
 	@Override
 	public PageInfo<SysUser> getChangeUserList(ChangeUserQuery query) {
+		Long userid = tokenService.getLoginUser().getUserid();
+		SysUser sysUser1 = this.getById(userid);
+		if(sysUser1.getRoleType() == 2){
+			query.setObjectId(sysUser1.getObjectId());
+		}
 		PageInfo<SysUser> pageInfo = new PageInfo<>(query.getPageCurr(), query.getPageSize());
 		List<SysUser> list = this.baseMapper.getChangeUserList(pageInfo, query);
 		return pageInfo.setRecords(list);

--
Gitblit v1.7.1