public class SortOrderUtil extends Object
| 构造器和说明 |
|---|
SortOrderUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static <T> SortOrder |
move(SortOrder start,
SortOrder end,
Supplier<List<T>> all,
BiConsumer<T,SortOrder> setter,
Function<List<T>,BetweenSortScope> reorderCompleted)
获取 start end之间的有效排序
10,20,30
start = 10 && end = 20 ( return 15 返回中间可用的序号
start = 10 && end = null ( return 20 返回后一个可用的序号
start = null && end = 10 ( return 5 返回前一个可用的序号
--- 重新排序条件
start = null && end = 0
start = max && end = null
start = 1 && end = 2
...
|
public static <T> SortOrder move(@Nullable SortOrder start, @Nullable SortOrder end, Supplier<List<T>> all, BiConsumer<T,SortOrder> setter, Function<List<T>,BetweenSortScope> reorderCompleted)
10,20,30
start = 10 && end = 20 ( return 15 返回中间可用的序号
start = 10 && end = null ( return 20 返回后一个可用的序号
start = null && end = 10 ( return 5 返回前一个可用的序号
--- 重新排序条件
start = null && end = 0
start = max && end = null
start = 1 && end = 2
... 无法正常生成新的序号,都会触发重排序
## 移动排序代码示例:
SortOrder move = SortOrderUtil.move(
start, end, // 1
() -> departmentMapper.all(), // 2
Department::setSort, // 3
(list) -> { // 4
departmentMapper.batchSave(list);
return new BetweenSortScope(newStart, newEnd);
});
1:开始与结束的序号,不能同时为空 T - 实例对象类型start - 前面的序号end - 后面的序号all - 全部数据列表setter - 需要重排序的字段reorderCompleted - 重排序完成触发Copyright © 2024. All rights reserved.