This is a Java code block using the Spring framework It defines a method called autoSort2 with several parameters including a request parameter map params an instance of NongzuowuEntity class and an H
@GetMapping("autoSort2")
@ResponseBody
public R autoSort2(@RequestParam Map<String, Object> params, NongzuowuEntity nongzuowuEntity, HttpServletRequest request) {
Integer userId = getUserId(request.getSession());
params.put("userId", userId);
PageUtils page = storeupService.queryPage(params);
String sortField = request.getParameter("sortField");
String order = request.getParameter("order");
if (StringUtils.isNotBlank(sortField) && StringUtils.isNotBlank(order)) {
List<Map<String, Object>> records = page.getRecords();
List<Map<String, Object>> sortedRecords = new ArrayList<>(records.size());
for (Map<String, Object> record : records) {
Integer id = (Integer) record.get("id");
StoreupEntity storeupEntity = storeupService.getByUserIdAndRefId(userId, id);
if (storeupEntity != null) {
record.put("storeupTime", storeupEntity.getCreateTime());
}
sortedRecords.add(record);
}
String orderClause = order.equalsIgnoreCase("asc") ? "ASC" : "DESC";
String sortClause = " ORDER BY " + sortField + " " + orderClause + ", id DESC";
QueryWrapper<NongzuowuEntity> wrapper = new QueryWrapper<>(nongzuowuEntity);
wrapper.in("id", sortedRecords.stream().map(s -> s.get("id")).collect(Collectors.toList()));
wrapper.last(sortClause);
List<NongzuowuEntity> nongzuowuEntities = nongzuowuService.list(wrapper);
List<NongzuowuEntity> resultList = new ArrayList<>(nongzuowuEntities.size());
List<Integer> bookmarkedIds = storeupService.getByUserId(userId).stream().map(StoreupEntity::getRefId).collect(Collectors.toList());
int limit = 20;
if (bookmarkedIds.size() < limit) {
for (NongzuowuEntity entity : nongzuowuEntities) {
if (!bookmarkedIds.contains(entity.getId())) {
resultList.add(entity);
bookmarkedIds.add(entity.getId());
}
if (bookmarkedIds.size() >= limit) {
break;
}
}
} else {
for (NongzuowuEntity entity : nongzuowuEntities) {
if (bookmarkedIds.contains(entity.getId())) {
resultList.add(entity);
}
}
resultList = resultList.subList(0, limit);
}
return R.ok().put("data", resultList);
} else {
return R.error("排序参数为空");
}
}
``
原文地址: http://www.cveoy.top/t/topic/d1zs 著作权归作者所有。请勿转载和采集!