先给对应的数据库表中添加(一个可以标记置顶的状态即可,例如 已读) type : 置顶状态(0:未置顶; 1:置顶)

首先根据置顶状态倒叙排序, 这样置顶的数据总是排在前面;
其次根据创建时间进行倒叙排序.
点击置顶按钮后, 修改状态, 保存. 再次调用查询所有即可.

select * from t_role
ORDER BY type DESC, createTime ASC;

代码参考:

      Map<String, SearchFilter> filters = new HashMap<>();
      .
      .
      Specification<实体类> specification = DynamicSpecifications.bySearchFilter(filters.values());
      //主要是两个排序字段
      Sort sort = new Sort(Sort.Direction.DESC, "ceilingState").and(new Sort(Sort.Direction.DESC, "createTime"));
      return repository.findAll(specification, PageUtils.buildPageRequest(vo.getPageNum(), vo.getPageSize(), sort));

置顶,置底,上移,下移

对应的数据库表中添加排序字段index_number, 为了后续两个对象的交换位置;
按index_number排序;
准备交换位置 ,遍历查询出来的列表....交换index_number,也就是交换了位置.
置顶 : 和第一个交换位置.
置底 : 和最后一个交换.
上移 : 和上一个交换.
下移 : 和下一个交换.

相关文章:

  • 2022-12-23
  • 2021-06-13
  • 2022-12-23
  • 2022-12-23
  • 2021-04-11
  • 2021-11-18
  • 2021-11-18
猜你喜欢
  • 2022-12-23
  • 2021-10-18
  • 2021-07-03
  • 2021-06-20
  • 2021-11-26
  • 2022-12-23
相关资源
相似解决方案