Browse Source

用户管理

孙永军 1 year ago
parent
commit
d37889d883

+ 7 - 2
src/main/java/com/sxtvs/open/api/user/controller/UserRoleController.java

@@ -1,5 +1,6 @@
 package com.sxtvs.open.api.user.controller;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sxtvs.open.api.user.dto.RoleDTO;
 import com.sxtvs.open.api.user.entity.UserRole;
 import com.sxtvs.open.api.user.service.impl.UserRoleServiceImpl;
@@ -26,8 +27,12 @@ public class UserRoleController {
 
     @RequestMapping("list")
     @LoginRequired
-    public List<UserRole> userRoles(){
-        return userRoleService.roles();
+    public Page<UserRole> userRoles(
+            @RequestParam(value = "keyword", required = false, defaultValue = "") String keyword,
+            @RequestParam(value = "page", required = false, defaultValue = "1") Long page,
+            @RequestParam(value = "pageSize", required = false, defaultValue = "") Long pageSize
+    ){
+        return userRoleService.roles(keyword, page, pageSize);
     }
 
     @RequestMapping("store")

+ 26 - 3
src/main/java/com/sxtvs/open/api/user/service/impl/UserRoleServiceImpl.java

@@ -1,5 +1,8 @@
 package com.sxtvs.open.api.user.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sxtvs.open.api.user.dto.RoleDTO;
 import com.sxtvs.open.api.user.entity.Menus;
 import com.sxtvs.open.api.user.entity.UserRole;
@@ -29,10 +32,30 @@ public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> i
     @Resource
     private MenusServiceImpl menusService;
 
-    public List<UserRole> roles(){
-        return lambdaQuery().gt(UserRole::getRoleId, 1).list().stream().peek(role -> {
+    public Page<UserRole> roles(String keyword, Long page, Long pageSize){
+
+        List<UserRole> userRoles = lambdaQuery().gt(UserRole::getRoleId, 1).list().stream().peek(role -> {
             role.setMenus(menusService.lambdaQuery().in(Menus::getId, Arrays.asList(role.getMenuId().split(","))).list());
-        }).collect(Collectors.toList());
+        }).filter(role -> {
+            for (Menus menu : role.getMenus()) {
+                if (menu.getTitle().contains(keyword)) {
+                    return true;
+                }
+            }
+            ;
+            return role.getName().contains(keyword);
+        }).toList();
+        Page<UserRole> userRolePage = new Page<>(page, pageSize, userRoles.size());
+        long end = userRolePage.getSize() * userRolePage.getCurrent() + 1;
+        long start = (userRolePage.getCurrent() - 1) * userRolePage.getSize();
+        if (end > userRoles.size()) {
+            end = userRoles.size();
+        }
+        if (start > end) {
+            start = end;
+        }
+        userRolePage.setRecords(userRoles.subList((int) start, (int) end ));
+        return userRolePage;
     }
 
     public void createRole(RoleDTO roleDTO){