mirror of
https://github.com/PlayEdu/PlayEdu
synced 2025-07-23 17:49:34 +08:00
优化管理员列表apic
This commit is contained in:
parent
ab9e8da4b8
commit
e947aab1d7
@ -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<AdminUser> result = adminUserService.paginate(page, size, filter);
|
||||
|
||||
return JsonResponse.data(result);
|
||||
Map<Integer, List<Integer>> userRoleIds = new HashMap<>();
|
||||
if (result.getData() != null && result.getData().size() > 0) {
|
||||
userRoleIds = adminUserService.getAdminUserRoleIds(result.getData().stream().map(AdminUser::getId).toList());
|
||||
}
|
||||
|
||||
HashMap<String, Object> 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)
|
||||
|
@ -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<AdminUser> {
|
||||
List<AdminUser> chunks(List<Integer> ids);
|
||||
|
||||
Long total();
|
||||
|
||||
Map<Integer, List<Integer>> getAdminUserRoleIds(List<Integer> userIds);
|
||||
}
|
||||
|
@ -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<AdminUserMapper, AdminUser> implements AdminUserService {
|
||||
@ -31,9 +30,18 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
||||
public PaginationResult<AdminUser> paginate(int page, int size, AdminUserPaginateFilter filter) {
|
||||
QueryWrapper<AdminUser> 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<Integer> userIds = userRoleService.getAdminUserIds(filter.getRoleId());
|
||||
if (userIds == null || userIds.size() == 0) {
|
||||
userIds = new ArrayList<>() {{
|
||||
add(0);
|
||||
}};
|
||||
}
|
||||
wrapper.in("id", userIds);
|
||||
}
|
||||
|
||||
IPage<AdminUser> pageObj = new Page<>(page, size);
|
||||
pageObj = this.getBaseMapper().selectPage(pageObj, wrapper);
|
||||
@ -180,6 +188,16 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
||||
public Long total() {
|
||||
return count();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Integer, List<Integer>> getAdminUserRoleIds(List<Integer> userIds) {
|
||||
Map<Integer, List<AdminUserRole>> records = userRoleService.list(userRoleService.query().getWrapper().in("admin_id", userIds)).stream().collect(Collectors.groupingBy(AdminUserRole::getAdminId));
|
||||
Map<Integer, List<Integer>> data = new HashMap<>();
|
||||
records.forEach((adminId, record) -> {
|
||||
data.put(adminId, record.stream().map(AdminUserRole::getRoleId).toList());
|
||||
});
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -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<AdminUserRoleMapper, AdminUserRole> implements AdminUserRoleService {
|
||||
@Override
|
||||
public List<Integer> getAdminUserIds(Integer roleId) {
|
||||
return list(query().getWrapper().eq("role_id", roleId)).stream().map(AdminUserRole::getAdminId).toList();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -11,4 +11,5 @@ import java.util.List;
|
||||
* @createDate 2023-02-21 16:25:43
|
||||
*/
|
||||
public interface AdminUserRoleService extends IService<AdminUserRole> {
|
||||
List<Integer> getAdminUserIds(Integer roleId);
|
||||
}
|
||||
|
@ -11,4 +11,6 @@ public class AdminUserPaginateFilter {
|
||||
|
||||
private String name;
|
||||
|
||||
private Integer roleId;
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user