From e947aab1d77bce053b63810caad15c22021d5a3b Mon Sep 17 00:00:00 2001 From: none Date: Tue, 4 Apr 2023 11:03:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E5=88=97=E8=A1=A8apic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/AdminUserController.java | 21 ++++++++++++--- .../playedu/api/service/AdminUserService.java | 3 +++ .../service/impl/AdminUserServiceImpl.java | 26 ++++++++++++++++--- .../internal/AdminUserRoleServiceImpl.java | 6 +++++ .../internal/AdminUserRoleService.java | 1 + .../paginate/AdminUserPaginateFilter.java | 2 ++ 6 files changed, 51 insertions(+), 8 deletions(-) diff --git a/src/main/java/xyz/playedu/api/controller/backend/AdminUserController.java b/src/main/java/xyz/playedu/api/controller/backend/AdminUserController.java index e2d840e..f02095c 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/AdminUserController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/AdminUserController.java @@ -20,6 +20,8 @@ import xyz.playedu.api.types.JsonResponse; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @RestController @Slf4j @@ -38,15 +40,26 @@ public class AdminUserController { Integer page = MapUtils.getInteger(params, "page", 1); Integer size = MapUtils.getInteger(params, "size", 10); String name = MapUtils.getString(params, "name"); + Integer roleId = MapUtils.getInteger(params, "role_id"); AdminUserPaginateFilter filter = new AdminUserPaginateFilter(); - if (name != null && name.length() > 0) { - filter.setName(name); - } + filter.setName(name); + filter.setRoleId(roleId); PaginationResult result = adminUserService.paginate(page, size, filter); - return JsonResponse.data(result); + Map> userRoleIds = new HashMap<>(); + if (result.getData() != null && result.getData().size() > 0) { + userRoleIds = adminUserService.getAdminUserRoleIds(result.getData().stream().map(AdminUser::getId).toList()); + } + + HashMap data = new HashMap<>(); + data.put("data", result.getData()); + data.put("total", result.getTotal()); + data.put("user_role_ids", userRoleIds); + data.put("roles", roleService.list().stream().collect(Collectors.groupingBy(AdminRole::getId))); + + return JsonResponse.data(data); } @BackendPermissionMiddleware(slug = BPermissionConstant.ADMIN_USER_CUD) diff --git a/src/main/java/xyz/playedu/api/service/AdminUserService.java b/src/main/java/xyz/playedu/api/service/AdminUserService.java index 61fe403..c25dc76 100644 --- a/src/main/java/xyz/playedu/api/service/AdminUserService.java +++ b/src/main/java/xyz/playedu/api/service/AdminUserService.java @@ -8,6 +8,7 @@ import xyz.playedu.api.types.paginate.AdminUserPaginateFilter; import xyz.playedu.api.types.paginate.PaginationResult; import java.util.List; +import java.util.Map; /** * @author tengteng @@ -44,4 +45,6 @@ public interface AdminUserService extends IService { List chunks(List ids); Long total(); + + Map> getAdminUserRoleIds(List userIds); } diff --git a/src/main/java/xyz/playedu/api/service/impl/AdminUserServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/AdminUserServiceImpl.java index dde7d1b..b193acd 100644 --- a/src/main/java/xyz/playedu/api/service/impl/AdminUserServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/AdminUserServiceImpl.java @@ -18,9 +18,8 @@ import xyz.playedu.api.types.paginate.AdminUserPaginateFilter; import xyz.playedu.api.types.paginate.PaginationResult; import xyz.playedu.api.util.HelperUtil; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @Service public class AdminUserServiceImpl extends ServiceImpl implements AdminUserService { @@ -31,9 +30,18 @@ public class AdminUserServiceImpl extends ServiceImpl paginate(int page, int size, AdminUserPaginateFilter filter) { QueryWrapper wrapper = query().getWrapper().eq("1", "1"); - if (filter.getName() != null) { + if (filter.getName() != null && filter.getName().trim().length() > 0) { wrapper.like("name", "%" + filter.getName() + "%"); } + if (filter.getRoleId() != null) { + List userIds = userRoleService.getAdminUserIds(filter.getRoleId()); + if (userIds == null || userIds.size() == 0) { + userIds = new ArrayList<>() {{ + add(0); + }}; + } + wrapper.in("id", userIds); + } IPage pageObj = new Page<>(page, size); pageObj = this.getBaseMapper().selectPage(pageObj, wrapper); @@ -180,6 +188,16 @@ public class AdminUserServiceImpl extends ServiceImpl> getAdminUserRoleIds(List userIds) { + Map> records = userRoleService.list(userRoleService.query().getWrapper().in("admin_id", userIds)).stream().collect(Collectors.groupingBy(AdminUserRole::getAdminId)); + Map> data = new HashMap<>(); + records.forEach((adminId, record) -> { + data.put(adminId, record.stream().map(AdminUserRole::getRoleId).toList()); + }); + return data; + } } diff --git a/src/main/java/xyz/playedu/api/service/impl/internal/AdminUserRoleServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/internal/AdminUserRoleServiceImpl.java index bfcae16..c24f4eb 100644 --- a/src/main/java/xyz/playedu/api/service/impl/internal/AdminUserRoleServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/internal/AdminUserRoleServiceImpl.java @@ -6,6 +6,8 @@ import xyz.playedu.api.service.internal.AdminUserRoleService; import xyz.playedu.api.mapper.AdminUserRoleMapper; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author tengteng * @description 针对表【admin_user_role】的数据库操作Service实现 @@ -13,6 +15,10 @@ import org.springframework.stereotype.Service; */ @Service public class AdminUserRoleServiceImpl extends ServiceImpl implements AdminUserRoleService { + @Override + public List getAdminUserIds(Integer roleId) { + return list(query().getWrapper().eq("role_id", roleId)).stream().map(AdminUserRole::getAdminId).toList(); + } } diff --git a/src/main/java/xyz/playedu/api/service/internal/AdminUserRoleService.java b/src/main/java/xyz/playedu/api/service/internal/AdminUserRoleService.java index 45fe5fc..4bfb937 100644 --- a/src/main/java/xyz/playedu/api/service/internal/AdminUserRoleService.java +++ b/src/main/java/xyz/playedu/api/service/internal/AdminUserRoleService.java @@ -11,4 +11,5 @@ import java.util.List; * @createDate 2023-02-21 16:25:43 */ public interface AdminUserRoleService extends IService { + List getAdminUserIds(Integer roleId); } diff --git a/src/main/java/xyz/playedu/api/types/paginate/AdminUserPaginateFilter.java b/src/main/java/xyz/playedu/api/types/paginate/AdminUserPaginateFilter.java index d2f2108..01a706c 100644 --- a/src/main/java/xyz/playedu/api/types/paginate/AdminUserPaginateFilter.java +++ b/src/main/java/xyz/playedu/api/types/paginate/AdminUserPaginateFilter.java @@ -11,4 +11,6 @@ public class AdminUserPaginateFilter { private String name; + private Integer roleId; + }