mirror of https://github.com/elunez/eladmin
feat: 增加分页实体 APage,使 Swagger 可显示接口的响应示例 (#800)
* feat: 增加分页实体 APage,使 Swagger 可显示接口的响应示例 1. 增加类 APage,并重构 PageUtils 2. 调整 UserController 的 `查询用户` 接口的返回值类型 * refactor: rename APage -> PageResultpull/729/head^2
parent
8ce9db9a5c
commit
a74cf51c0a
|
@ -0,0 +1,17 @@
|
|||
package me.zhengjie.utils;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@RequiredArgsConstructor(access = AccessLevel.PACKAGE)
|
||||
public class PageResult<T> {
|
||||
|
||||
private final List<T> content;
|
||||
|
||||
private final long totalElements;
|
||||
|
||||
}
|
|
@ -28,11 +28,11 @@ public class PageUtil extends cn.hutool.core.util.PageUtil {
|
|||
/**
|
||||
* List 分页
|
||||
*/
|
||||
public static List toPage(int page, int size , List list) {
|
||||
public static <T> List<T> paging(int page, int size , List<T> list) {
|
||||
int fromIndex = page * size;
|
||||
int toIndex = page * size + size;
|
||||
if(fromIndex > list.size()){
|
||||
return new ArrayList();
|
||||
return Collections.emptyList();
|
||||
} else if(toIndex >= list.size()) {
|
||||
return list.subList(fromIndex,list.size());
|
||||
} else {
|
||||
|
@ -43,21 +43,15 @@ public class PageUtil extends cn.hutool.core.util.PageUtil {
|
|||
/**
|
||||
* Page 数据处理,预防redis反序列化报错
|
||||
*/
|
||||
public static Map<String,Object> toPage(Page page) {
|
||||
Map<String,Object> map = new LinkedHashMap<>(2);
|
||||
map.put("content",page.getContent());
|
||||
map.put("totalElements",page.getTotalElements());
|
||||
return map;
|
||||
public static <T> PageResult<T> toPage(Page<T> page) {
|
||||
return new PageResult<>(page.getContent(), page.getTotalElements());
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义分页
|
||||
*/
|
||||
public static Map<String,Object> toPage(Object object, Object totalElements) {
|
||||
Map<String,Object> map = new LinkedHashMap<>(2);
|
||||
map.put("content",object);
|
||||
map.put("totalElements",totalElements);
|
||||
return map;
|
||||
public static <T> PageResult<T> toPage(List<T> list, long totalElements) {
|
||||
return new PageResult<>(list, totalElements);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -90,7 +90,7 @@ public class GeneratorServiceImpl implements GeneratorService {
|
|||
"where table_schema = (select database()) and table_name like :table";
|
||||
Query queryCount = em.createNativeQuery(countSql);
|
||||
queryCount.setParameter("table", StringUtils.isNotBlank(name) ? ("%" + name + "%") : "%%");
|
||||
Object totalElements = queryCount.getSingleResult();
|
||||
long totalElements = (long) queryCount.getSingleResult();
|
||||
return PageUtil.toPage(tableInfos, totalElements);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
package me.zhengjie.modules.security.service;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import me.zhengjie.utils.PageResult;
|
||||
import me.zhengjie.modules.security.config.bean.SecurityProperties;
|
||||
import me.zhengjie.modules.security.service.dto.JwtUserDto;
|
||||
import me.zhengjie.modules.security.service.dto.OnlineUserDto;
|
||||
|
@ -70,10 +71,10 @@ public class OnlineUserService {
|
|||
* @param pageable /
|
||||
* @return /
|
||||
*/
|
||||
public Map<String,Object> getAll(String filter, Pageable pageable){
|
||||
public PageResult<OnlineUserDto> getAll(String filter, Pageable pageable){
|
||||
List<OnlineUserDto> onlineUserDtos = getAll(filter);
|
||||
return PageUtil.toPage(
|
||||
PageUtil.toPage(pageable.getPageNumber(),pageable.getPageSize(), onlineUserDtos),
|
||||
PageUtil.paging(pageable.getPageNumber(),pageable.getPageSize(), onlineUserDtos),
|
||||
onlineUserDtos.size()
|
||||
);
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ import io.swagger.annotations.Api;
|
|||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import me.zhengjie.annotation.Log;
|
||||
import me.zhengjie.utils.PageResult;
|
||||
import me.zhengjie.config.RsaProperties;
|
||||
import me.zhengjie.modules.system.domain.Dept;
|
||||
import me.zhengjie.modules.system.service.DataService;
|
||||
|
@ -77,7 +78,7 @@ public class UserController {
|
|||
@ApiOperation("查询用户")
|
||||
@GetMapping
|
||||
@PreAuthorize("@el.check('user:list')")
|
||||
public ResponseEntity<Object> queryUser(UserQueryCriteria criteria, Pageable pageable){
|
||||
public ResponseEntity<PageResult<UserDto>> queryUser(UserQueryCriteria criteria, Pageable pageable){
|
||||
if (!ObjectUtils.isEmpty(criteria.getDeptId())) {
|
||||
criteria.getDeptIds().add(criteria.getDeptId());
|
||||
// 先查找是否存在子节点
|
||||
|
|
|
@ -15,12 +15,12 @@
|
|||
*/
|
||||
package me.zhengjie.modules.system.service;
|
||||
|
||||
import me.zhengjie.utils.PageResult;
|
||||
import me.zhengjie.modules.system.domain.DictDetail;
|
||||
import me.zhengjie.modules.system.service.dto.DictDetailDto;
|
||||
import me.zhengjie.modules.system.service.dto.DictDetailQueryCriteria;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Zheng Jie
|
||||
|
@ -52,7 +52,7 @@ public interface DictDetailService {
|
|||
* @param pageable 分页参数
|
||||
* @return /
|
||||
*/
|
||||
Map<String,Object> queryAll(DictDetailQueryCriteria criteria, Pageable pageable);
|
||||
PageResult<DictDetailDto> queryAll(DictDetailQueryCriteria criteria, Pageable pageable);
|
||||
|
||||
/**
|
||||
* 根据字典名称获取字典详情
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package me.zhengjie.modules.system.service;
|
||||
|
||||
import me.zhengjie.utils.PageResult;
|
||||
import me.zhengjie.modules.system.domain.Dict;
|
||||
import me.zhengjie.modules.system.service.dto.DictDto;
|
||||
import me.zhengjie.modules.system.service.dto.DictQueryCriteria;
|
||||
|
@ -22,7 +23,6 @@ import org.springframework.data.domain.Pageable;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
|
@ -37,7 +37,7 @@ public interface DictService {
|
|||
* @param pageable 分页参数
|
||||
* @return /
|
||||
*/
|
||||
Map<String,Object> queryAll(DictQueryCriteria criteria, Pageable pageable);
|
||||
PageResult<DictDto> queryAll(DictQueryCriteria criteria, Pageable pageable);
|
||||
|
||||
/**
|
||||
* 查询全部数据
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package me.zhengjie.modules.system.service;
|
||||
|
||||
import me.zhengjie.utils.PageResult;
|
||||
import me.zhengjie.modules.system.domain.Job;
|
||||
import me.zhengjie.modules.system.service.dto.JobDto;
|
||||
import me.zhengjie.modules.system.service.dto.JobQueryCriteria;
|
||||
|
@ -22,7 +23,6 @@ import org.springframework.data.domain.Pageable;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
|
@ -63,7 +63,7 @@ public interface JobService {
|
|||
* @param pageable 分页参数
|
||||
* @return /
|
||||
*/
|
||||
Map<String,Object> queryAll(JobQueryCriteria criteria, Pageable pageable);
|
||||
PageResult<JobDto> queryAll(JobQueryCriteria criteria, Pageable pageable);
|
||||
|
||||
/**
|
||||
* 查询全部数据
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package me.zhengjie.modules.system.service;
|
||||
|
||||
import me.zhengjie.utils.PageResult;
|
||||
import me.zhengjie.modules.system.domain.User;
|
||||
import me.zhengjie.modules.system.service.dto.UserDto;
|
||||
import me.zhengjie.modules.system.service.dto.UserLoginDto;
|
||||
|
@ -100,7 +101,7 @@ public interface UserService {
|
|||
* @param pageable 分页参数
|
||||
* @return /
|
||||
*/
|
||||
Object queryAll(UserQueryCriteria criteria, Pageable pageable);
|
||||
PageResult<UserDto> queryAll(UserQueryCriteria criteria, Pageable pageable);
|
||||
|
||||
/**
|
||||
* 查询全部不分页
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
package me.zhengjie.modules.system.service.impl;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import me.zhengjie.utils.PageResult;
|
||||
import me.zhengjie.modules.system.domain.Dict;
|
||||
import me.zhengjie.modules.system.domain.DictDetail;
|
||||
import me.zhengjie.modules.system.repository.DictRepository;
|
||||
|
@ -32,7 +33,6 @@ import org.springframework.data.domain.Pageable;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Zheng Jie
|
||||
|
@ -49,7 +49,7 @@ public class DictDetailServiceImpl implements DictDetailService {
|
|||
private final RedisUtils redisUtils;
|
||||
|
||||
@Override
|
||||
public Map<String,Object> queryAll(DictDetailQueryCriteria criteria, Pageable pageable) {
|
||||
public PageResult<DictDetailDto> queryAll(DictDetailQueryCriteria criteria, Pageable pageable) {
|
||||
Page<DictDetail> page = dictDetailRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
|
||||
return PageUtil.toPage(page.map(dictDetailMapper::toDto));
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ package me.zhengjie.modules.system.service.impl;
|
|||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import me.zhengjie.utils.PageResult;
|
||||
import me.zhengjie.modules.system.domain.Dict;
|
||||
import me.zhengjie.modules.system.service.dto.DictDetailDto;
|
||||
import me.zhengjie.modules.system.service.dto.DictQueryCriteria;
|
||||
|
@ -48,7 +49,7 @@ public class DictServiceImpl implements DictService {
|
|||
private final RedisUtils redisUtils;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(DictQueryCriteria dict, Pageable pageable){
|
||||
public PageResult<DictDto> queryAll(DictQueryCriteria dict, Pageable pageable){
|
||||
Page<Dict> page = dictRepository.findAll((root, query, cb) -> QueryHelp.getPredicate(root, dict, cb), pageable);
|
||||
return PageUtil.toPage(page.map(dictMapper::toDto));
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
package me.zhengjie.modules.system.service.impl;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import me.zhengjie.utils.PageResult;
|
||||
import me.zhengjie.exception.BadRequestException;
|
||||
import me.zhengjie.exception.EntityExistException;
|
||||
import me.zhengjie.modules.system.domain.Job;
|
||||
|
@ -52,7 +53,7 @@ public class JobServiceImpl implements JobService {
|
|||
private final UserRepository userRepository;
|
||||
|
||||
@Override
|
||||
public Map<String,Object> queryAll(JobQueryCriteria criteria, Pageable pageable) {
|
||||
public PageResult<JobDto> queryAll(JobQueryCriteria criteria, Pageable pageable) {
|
||||
Page<Job> page = jobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
|
||||
return PageUtil.toPage(page.map(jobMapper::toDto).getContent(),page.getTotalElements());
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
package me.zhengjie.modules.system.service.impl;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import me.zhengjie.utils.PageResult;
|
||||
import me.zhengjie.config.FileProperties;
|
||||
import me.zhengjie.exception.BadRequestException;
|
||||
import me.zhengjie.modules.security.service.OnlineUserService;
|
||||
|
@ -61,7 +62,7 @@ public class UserServiceImpl implements UserService {
|
|||
private final UserLoginMapper userLoginMapper;
|
||||
|
||||
@Override
|
||||
public Object queryAll(UserQueryCriteria criteria, Pageable pageable) {
|
||||
public PageResult<UserDto> queryAll(UserQueryCriteria criteria, Pageable pageable) {
|
||||
Page<User> page = userRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
|
||||
return PageUtil.toPage(page.map(userMapper::toDto));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue