Java Spring Framework - Auto Sorting and Pagination with Bookmarks
@GetMapping("/autoSort2")
public R autoSort2(@RequestParam Map<String, Object> params,
NongzuowuEntity nongzuowuEntity,
HttpServletRequest request) {
// get current user id from session
Long userId = (Long) request.getSession().getAttribute('userId');
// query bookmarked entries with pagination enabled
QueryWrapper<StoreupEntity> storeupQuery = new QueryWrapper<>();
storeupQuery.eq('user_id', userId);
PageUtils storeupPage = storeupService.queryPage(params, storeupQuery);
// append sorting and ordering parameters to query
QueryWrapper<NongzuowuEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc('id');
if (StringUtils.isNotBlank(nongzuowuEntity.getSort())) {
queryWrapper.orderByAsc(nongzuowuEntity.getSort());
}
if (StringUtils.isNotBlank(nongzuowuEntity.getOrder())) {
queryWrapper.orderByAsc(nongzuowuEntity.getOrder());
}
// execute query and store results into PageUtils object
PageUtils page = nongzuowuService.queryPage(params, queryWrapper);
// add more entries from sorted result set to bookmarked list if necessary
int limit = 5;
if (storeupPage.getList().size() < limit) {
for (Object obj : page.getList()) {
NongzuowuEntity entity = (NongzuowuEntity) obj;
boolean exists = false;
for (StoreupEntity storeupEntity : storeupPage.getList()) {
if (storeupEntity.getNzwId().equals(entity.getId())) {
exists = true;
break;
}
}
if (!exists) {
storeupService.save(new StoreupEntity(userId, entity.getId()));
storeupPage.getList().add(entity);
}
if (storeupPage.getList().size() >= limit) {
break;
}
}
} else {
storeupPage.setList(storeupPage.getList().subList(0, limit));
}
// return response object containing data wrapped in R.ok() object
return R.ok().put('storeupPage', storeupPage).put('page', page);
}
原文地址: http://www.cveoy.top/t/topic/nMu2 著作权归作者所有。请勿转载和采集!