|
@@ -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){
|