优化管理员列表apic

This commit is contained in:
none
2023-04-04 11:03:07 +08:00
parent ab9e8da4b8
commit e947aab1d7
6 changed files with 51 additions and 8 deletions

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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();
}
}

View File

@@ -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);
}