只有置頂
先給對應的數據庫表中添加(一個可以標記置頂的狀態即可,例如 已讀) 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,也就是交換了位置.
置頂 : 和第一個交換位置.
置底 : 和最后一個交換.
上移 : 和上一個交換.
下移 : 和下一個交換.