@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("排序参数为空");
    }
}
``
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

原文地址: http://www.cveoy.top/t/topic/d1zs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录