Skip to content

Commit a74cf51

Browse files
authored
feat: 增加分页实体 APage,使 Swagger 可显示接口的响应示例 (elunez#800)
* feat: 增加分页实体 APage,使 Swagger 可显示接口的响应示例 1. 增加类 APage,并重构 PageUtils 2. 调整 UserController 的 `查询用户` 接口的返回值类型 * refactor: rename APage -> PageResult
1 parent 8ce9db9 commit a74cf51

File tree

13 files changed

+51
-34
lines changed

13 files changed

+51
-34
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package me.zhengjie.utils;
2+
3+
import lombok.AccessLevel;
4+
import lombok.Getter;
5+
import lombok.RequiredArgsConstructor;
6+
7+
import java.util.List;
8+
9+
@Getter
10+
@RequiredArgsConstructor(access = AccessLevel.PACKAGE)
11+
public class PageResult<T> {
12+
13+
private final List<T> content;
14+
15+
private final long totalElements;
16+
17+
}

eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ public class PageUtil extends cn.hutool.core.util.PageUtil {
2828
/**
2929
* List 分页
3030
*/
31-
public static List toPage(int page, int size , List list) {
31+
public static <T> List<T> paging(int page, int size , List<T> list) {
3232
int fromIndex = page * size;
3333
int toIndex = page * size + size;
3434
if(fromIndex > list.size()){
35-
return new ArrayList();
35+
return Collections.emptyList();
3636
} else if(toIndex >= list.size()) {
3737
return list.subList(fromIndex,list.size());
3838
} else {
@@ -43,21 +43,15 @@ public static List toPage(int page, int size , List list) {
4343
/**
4444
* Page 数据处理,预防redis反序列化报错
4545
*/
46-
public static Map<String,Object> toPage(Page page) {
47-
Map<String,Object> map = new LinkedHashMap<>(2);
48-
map.put("content",page.getContent());
49-
map.put("totalElements",page.getTotalElements());
50-
return map;
46+
public static <T> PageResult<T> toPage(Page<T> page) {
47+
return new PageResult<>(page.getContent(), page.getTotalElements());
5148
}
5249

5350
/**
5451
* 自定义分页
5552
*/
56-
public static Map<String,Object> toPage(Object object, Object totalElements) {
57-
Map<String,Object> map = new LinkedHashMap<>(2);
58-
map.put("content",object);
59-
map.put("totalElements",totalElements);
60-
return map;
53+
public static <T> PageResult<T> toPage(List<T> list, long totalElements) {
54+
return new PageResult<>(list, totalElements);
6155
}
6256

6357
}

eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public Object getTables(String name, int[] startEnd) {
9090
"where table_schema = (select database()) and table_name like :table";
9191
Query queryCount = em.createNativeQuery(countSql);
9292
queryCount.setParameter("table", StringUtils.isNotBlank(name) ? ("%" + name + "%") : "%%");
93-
Object totalElements = queryCount.getSingleResult();
93+
long totalElements = (long) queryCount.getSingleResult();
9494
return PageUtil.toPage(tableInfos, totalElements);
9595
}
9696

eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package me.zhengjie.modules.security.service;
1717

1818
import lombok.extern.slf4j.Slf4j;
19+
import me.zhengjie.utils.PageResult;
1920
import me.zhengjie.modules.security.config.bean.SecurityProperties;
2021
import me.zhengjie.modules.security.service.dto.JwtUserDto;
2122
import me.zhengjie.modules.security.service.dto.OnlineUserDto;
@@ -70,10 +71,10 @@ public void save(JwtUserDto jwtUserDto, String token, HttpServletRequest request
7071
* @param pageable /
7172
* @return /
7273
*/
73-
public Map<String,Object> getAll(String filter, Pageable pageable){
74+
public PageResult<OnlineUserDto> getAll(String filter, Pageable pageable){
7475
List<OnlineUserDto> onlineUserDtos = getAll(filter);
7576
return PageUtil.toPage(
76-
PageUtil.toPage(pageable.getPageNumber(),pageable.getPageSize(), onlineUserDtos),
77+
PageUtil.paging(pageable.getPageNumber(),pageable.getPageSize(), onlineUserDtos),
7778
onlineUserDtos.size()
7879
);
7980
}

eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import io.swagger.annotations.ApiOperation;
2121
import lombok.RequiredArgsConstructor;
2222
import me.zhengjie.annotation.Log;
23+
import me.zhengjie.utils.PageResult;
2324
import me.zhengjie.config.RsaProperties;
2425
import me.zhengjie.modules.system.domain.Dept;
2526
import me.zhengjie.modules.system.service.DataService;
@@ -77,7 +78,7 @@ public void exportUser(HttpServletResponse response, UserQueryCriteria criteria)
7778
@ApiOperation("查询用户")
7879
@GetMapping
7980
@PreAuthorize("@el.check('user:list')")
80-
public ResponseEntity<Object> queryUser(UserQueryCriteria criteria, Pageable pageable){
81+
public ResponseEntity<PageResult<UserDto>> queryUser(UserQueryCriteria criteria, Pageable pageable){
8182
if (!ObjectUtils.isEmpty(criteria.getDeptId())) {
8283
criteria.getDeptIds().add(criteria.getDeptId());
8384
// 先查找是否存在子节点

eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictDetailService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
*/
1616
package me.zhengjie.modules.system.service;
1717

18+
import me.zhengjie.utils.PageResult;
1819
import me.zhengjie.modules.system.domain.DictDetail;
1920
import me.zhengjie.modules.system.service.dto.DictDetailDto;
2021
import me.zhengjie.modules.system.service.dto.DictDetailQueryCriteria;
2122
import org.springframework.data.domain.Pageable;
2223
import java.util.List;
23-
import java.util.Map;
2424

2525
/**
2626
* @author Zheng Jie
@@ -52,12 +52,12 @@ public interface DictDetailService {
5252
* @param pageable 分页参数
5353
* @return /
5454
*/
55-
Map<String,Object> queryAll(DictDetailQueryCriteria criteria, Pageable pageable);
55+
PageResult<DictDetailDto> queryAll(DictDetailQueryCriteria criteria, Pageable pageable);
5656

5757
/**
5858
* 根据字典名称获取字典详情
5959
* @param name 字典名称
6060
* @return /
6161
*/
6262
List<DictDetailDto> getDictByName(String name);
63-
}
63+
}

eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
*/
1616
package me.zhengjie.modules.system.service;
1717

18+
import me.zhengjie.utils.PageResult;
1819
import me.zhengjie.modules.system.domain.Dict;
1920
import me.zhengjie.modules.system.service.dto.DictDto;
2021
import me.zhengjie.modules.system.service.dto.DictQueryCriteria;
2122
import org.springframework.data.domain.Pageable;
2223
import javax.servlet.http.HttpServletResponse;
2324
import java.io.IOException;
2425
import java.util.List;
25-
import java.util.Map;
2626
import java.util.Set;
2727

2828
/**
@@ -37,7 +37,7 @@ public interface DictService {
3737
* @param pageable 分页参数
3838
* @return /
3939
*/
40-
Map<String,Object> queryAll(DictQueryCriteria criteria, Pageable pageable);
40+
PageResult<DictDto> queryAll(DictQueryCriteria criteria, Pageable pageable);
4141

4242
/**
4343
* 查询全部数据
@@ -72,4 +72,4 @@ public interface DictService {
7272
* @throws IOException /
7373
*/
7474
void download(List<DictDto> queryAll, HttpServletResponse response) throws IOException;
75-
}
75+
}

eladmin-system/src/main/java/me/zhengjie/modules/system/service/JobService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
*/
1616
package me.zhengjie.modules.system.service;
1717

18+
import me.zhengjie.utils.PageResult;
1819
import me.zhengjie.modules.system.domain.Job;
1920
import me.zhengjie.modules.system.service.dto.JobDto;
2021
import me.zhengjie.modules.system.service.dto.JobQueryCriteria;
2122
import org.springframework.data.domain.Pageable;
2223
import javax.servlet.http.HttpServletResponse;
2324
import java.io.IOException;
2425
import java.util.List;
25-
import java.util.Map;
2626
import java.util.Set;
2727

2828
/**
@@ -63,7 +63,7 @@ public interface JobService {
6363
* @param pageable 分页参数
6464
* @return /
6565
*/
66-
Map<String,Object> queryAll(JobQueryCriteria criteria, Pageable pageable);
66+
PageResult<JobDto> queryAll(JobQueryCriteria criteria, Pageable pageable);
6767

6868
/**
6969
* 查询全部数据
@@ -85,4 +85,4 @@ public interface JobService {
8585
* @param ids /
8686
*/
8787
void verification(Set<Long> ids);
88-
}
88+
}

eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package me.zhengjie.modules.system.service;
1717

18+
import me.zhengjie.utils.PageResult;
1819
import me.zhengjie.modules.system.domain.User;
1920
import me.zhengjie.modules.system.service.dto.UserDto;
2021
import me.zhengjie.modules.system.service.dto.UserLoginDto;
@@ -100,7 +101,7 @@ public interface UserService {
100101
* @param pageable 分页参数
101102
* @return /
102103
*/
103-
Object queryAll(UserQueryCriteria criteria, Pageable pageable);
104+
PageResult<UserDto> queryAll(UserQueryCriteria criteria, Pageable pageable);
104105

105106
/**
106107
* 查询全部不分页

eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictDetailServiceImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package me.zhengjie.modules.system.service.impl;
1717

1818
import lombok.RequiredArgsConstructor;
19+
import me.zhengjie.utils.PageResult;
1920
import me.zhengjie.modules.system.domain.Dict;
2021
import me.zhengjie.modules.system.domain.DictDetail;
2122
import me.zhengjie.modules.system.repository.DictRepository;
@@ -32,7 +33,6 @@
3233
import org.springframework.stereotype.Service;
3334
import org.springframework.transaction.annotation.Transactional;
3435
import java.util.List;
35-
import java.util.Map;
3636

3737
/**
3838
* @author Zheng Jie
@@ -49,7 +49,7 @@ public class DictDetailServiceImpl implements DictDetailService {
4949
private final RedisUtils redisUtils;
5050

5151
@Override
52-
public Map<String,Object> queryAll(DictDetailQueryCriteria criteria, Pageable pageable) {
52+
public PageResult<DictDetailDto> queryAll(DictDetailQueryCriteria criteria, Pageable pageable) {
5353
Page<DictDetail> page = dictDetailRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
5454
return PageUtil.toPage(page.map(dictDetailMapper::toDto));
5555
}
@@ -92,4 +92,4 @@ public void delCaches(DictDetail dictDetail){
9292
Dict dict = dictRepository.findById(dictDetail.getDict().getId()).orElseGet(Dict::new);
9393
redisUtils.del(CacheKey.DICT_NAME + dict.getName());
9494
}
95-
}
95+
}

eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import cn.hutool.core.collection.CollectionUtil;
1919
import lombok.RequiredArgsConstructor;
20+
import me.zhengjie.utils.PageResult;
2021
import me.zhengjie.modules.system.domain.Dict;
2122
import me.zhengjie.modules.system.service.dto.DictDetailDto;
2223
import me.zhengjie.modules.system.service.dto.DictQueryCriteria;
@@ -48,7 +49,7 @@ public class DictServiceImpl implements DictService {
4849
private final RedisUtils redisUtils;
4950

5051
@Override
51-
public Map<String, Object> queryAll(DictQueryCriteria dict, Pageable pageable){
52+
public PageResult<DictDto> queryAll(DictQueryCriteria dict, Pageable pageable){
5253
Page<Dict> page = dictRepository.findAll((root, query, cb) -> QueryHelp.getPredicate(root, dict, cb), pageable);
5354
return PageUtil.toPage(page.map(dictMapper::toDto));
5455
}
@@ -118,4 +119,4 @@ public void download(List<DictDto> dictDtos, HttpServletResponse response) throw
118119
public void delCaches(Dict dict){
119120
redisUtils.del(CacheKey.DICT_NAME + dict.getName());
120121
}
121-
}
122+
}

eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package me.zhengjie.modules.system.service.impl;
1717

1818
import lombok.RequiredArgsConstructor;
19+
import me.zhengjie.utils.PageResult;
1920
import me.zhengjie.exception.BadRequestException;
2021
import me.zhengjie.exception.EntityExistException;
2122
import me.zhengjie.modules.system.domain.Job;
@@ -52,7 +53,7 @@ public class JobServiceImpl implements JobService {
5253
private final UserRepository userRepository;
5354

5455
@Override
55-
public Map<String,Object> queryAll(JobQueryCriteria criteria, Pageable pageable) {
56+
public PageResult<JobDto> queryAll(JobQueryCriteria criteria, Pageable pageable) {
5657
Page<Job> page = jobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
5758
return PageUtil.toPage(page.map(jobMapper::toDto).getContent(),page.getTotalElements());
5859
}
@@ -122,4 +123,4 @@ public void verification(Set<Long> ids) {
122123
throw new BadRequestException("所选的岗位中存在用户关联,请解除关联再试!");
123124
}
124125
}
125-
}
126+
}

eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package me.zhengjie.modules.system.service.impl;
1717

1818
import lombok.RequiredArgsConstructor;
19+
import me.zhengjie.utils.PageResult;
1920
import me.zhengjie.config.FileProperties;
2021
import me.zhengjie.exception.BadRequestException;
2122
import me.zhengjie.modules.security.service.OnlineUserService;
@@ -61,7 +62,7 @@ public class UserServiceImpl implements UserService {
6162
private final UserLoginMapper userLoginMapper;
6263

6364
@Override
64-
public Object queryAll(UserQueryCriteria criteria, Pageable pageable) {
65+
public PageResult<UserDto> queryAll(UserQueryCriteria criteria, Pageable pageable) {
6566
Page<User> page = userRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
6667
return PageUtil.toPage(page.map(userMapper::toDto));
6768
}

0 commit comments

Comments
 (0)