From 392b42c4891cf2e6beda57ab32c51598f290f4b7 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 14 三月 2025 20:56:27 +0800
Subject: [PATCH] bug修改

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java |   61 +++++++++++++++++-------------
 1 files changed, 35 insertions(+), 26 deletions(-)

diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
index cee3a8e..32a4833 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
@@ -18,6 +18,7 @@
 import com.ruoyi.system.domain.SysRoleMenu;
 import com.ruoyi.system.domain.SysUserRole;
 import com.ruoyi.system.domain.dto.RoleAddDto;
+import com.ruoyi.system.domain.dto.RoleQuery;
 import com.ruoyi.system.domain.dto.RoleUpdateDto;
 import com.ruoyi.system.domain.vo.RoleInfoVo;
 import com.ruoyi.system.mapper.SysMenuMapper;
@@ -26,12 +27,15 @@
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserRoleService;
 import com.ruoyi.system.service.ISysUserService;
+import io.seata.common.util.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -87,14 +91,17 @@
     }
 
 
-    // @ApiOperation("获取所有角色信息根据公司id--分页")
-    @GetMapping("/listPage")
-    public AjaxResult listPage(Integer companyId,int pageNumber,int pageSize)
+    @ApiOperation("获取角色列表")
+    @PostMapping("/listPage")
+    public AjaxResult listPage(@Validated @RequestBody RoleQuery query)
     {
-        PageInfo<SysRole> pageInfo = new PageInfo<>(pageNumber, pageSize);
+        PageInfo<SysRole> pageInfo = new PageInfo<>(query.getPageCurr(), query.getPageSize());
 
         PageInfo<SysRole> page = roleService.page(pageInfo,
-                new LambdaQueryWrapper<SysRole>().ne(SysRole::getRoleId, 20));
+                new LambdaQueryWrapper<SysRole>().ne(SysRole::getRoleId, 20)
+                        .like(StringUtils.isNotBlank(query.getRoleName()), SysRole::getRoleName,
+                                query.getRoleName()).eq(SysRole::getDelFlag, "0")
+                        .orderByDesc(SysRole::getCreateTime));
         return AjaxResult.success(page);
     }
 
@@ -121,7 +128,7 @@
         SysRole role = new SysRole();
         role.setRoleName(dto.getRoleName());
         long count = roleService.count(Wrappers.lambdaQuery(SysRole.class)
-                .eq(SysRole::getRoleName, dto.getRoleName()));
+                .eq(SysRole::getRoleName, dto.getRoleName()).eq(SysRole::getDelFlag, "0"));
         if(count>0){
             return AjaxResult.error("角色已存在,请重新输入");
         }
@@ -190,17 +197,29 @@
     public AjaxResult roleInfoFromUserId( @RequestParam Long userId)
     {
         SysUserRole one = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
+        if (Objects.isNull(one)) {
+            return AjaxResult.success();
+        }
         Long id =one.getRoleId();
         // 获取当前角色的菜单id
         List<Long> menusId = sysRoleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, id)).stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList());
         if(menusId.size()==0){
             return AjaxResult.success(new ArrayList<>());
         }
-        if(id!=1){
-            menusId = menusId.stream().filter(e->e!=1074 && e!=1075 && e!=1193 && e!=1194).collect(Collectors.toList());
-        }
         //获取当前的权限菜单
-        List<SysMenus> all = menuMapper.getAllInIds(menusId);
+        List<SysMenus> allUser = menuMapper.getAllInIds(menusId);
+        // 查询所有权限菜单
+        List<SysMenus> all = menuMapper.getAll();
+        // 创建一个Map来存储all集合中的menuId
+        Map<Long, Boolean> menuIdExistMap = allUser.stream()
+                .collect(Collectors.toMap(SysMenus::getMenuId, aMenu -> true,
+                        (oldValue, newValue) -> oldValue));
+
+        // 遍历allUser集合,根据menuIdExistMap来设置isHave值
+        for (SysMenus allMenu : all) {
+            allMenu.setIsHave(menuIdExistMap.containsKey(allMenu.getMenuId()) ? 1 : 2);
+        }
+
         // 第三级
         List<SysMenus> s3 = all.stream().filter(e -> e.getMenuType().equals("F")).collect(Collectors.toList());
         // 第二级
@@ -228,7 +247,9 @@
     {
         SysRole role = new SysRole();
         role.setRoleName(dto.getRoleName());
-        SysRole one = roleService.getOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleId, dto.getRoleId()));
+        SysRole one = roleService.getOne(
+                new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleId, dto.getRoleId())
+                        .eq(SysRole::getDelFlag, "0"));
         List<SysRole> sysRoles = roleService.isExitUpdate(dto.getRoleName(), dto.getRoleId());
         if(sysRoles.size()>0){
             return AjaxResult.error("角色已存在,请重新输入");
@@ -241,20 +262,8 @@
         ArrayList<SysRoleMenu> sysRoleMenus = new ArrayList<>();
         List<Long> menuIds = dto.getMenuIds();
         // 移除原来的权限菜单
-        if(menuIds.contains(1061L)){
-            sysRoleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>()
-                    .eq(SysRoleMenu::getRoleId,dto.getRoleId()));
-        }else {
-            sysRoleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>()
-                    .eq(SysRoleMenu::getRoleId,dto.getRoleId())
-                    .ne(SysRoleMenu::getMenuId,1061L)
-                    .ne(SysRoleMenu::getMenuId,1062L)
-                    .ne(SysRoleMenu::getMenuId,1065L)
-                    .ne(SysRoleMenu::getMenuId,1073L)
-                    .ne(SysRoleMenu::getMenuId,1161L)
-                    .ne(SysRoleMenu::getMenuId,1203L)
-            );
-        }
+        sysRoleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>()
+                .eq(SysRoleMenu::getRoleId, dto.getRoleId()));
         for (Long menuId : menuIds) {
             SysRoleMenu sysRoleMenu = new SysRoleMenu();
             sysRoleMenu.setMenuId(menuId);
@@ -267,7 +276,7 @@
 
     @Log(title = "角色管理", businessType = BusinessType.DELETE)
     @ApiOperation("删除角色")
-    @DeleteMapping("/{id}")
+    @DeleteMapping("/del/{id}")
     public AjaxResult removeRole(
             @ApiParam(name = "id", value = "角色ID", required = true) @PathVariable Long id) {
         roleService.removeRole(id);

--
Gitblit v1.7.1