标签排序修改

This commit is contained in:
xiejunyu
2022-06-09 11:10:39 +08:00
parent 58235ba61d
commit 443608c4c8
3 changed files with 41 additions and 28 deletions
@@ -82,6 +82,8 @@ public class SysDictItemServiceImpl extends ServiceImpl<SysDictItemMapper, SysDi
for (int i = 0; i < geOrderNumList.size(); i++) { for (int i = 0; i < geOrderNumList.size(); i++) {
if (geOrderNumList.size() == 1) { if (geOrderNumList.size() == 1) {
break; break;
}else if(i+1 >= geOrderNumList.size()){
break;
} else if (geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() > 1) { } else if (geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() > 1) {
int deleteStart = geOrderNumList.get(i + 1).getSortOrder(); int deleteStart = geOrderNumList.get(i + 1).getSortOrder();
geOrderNumList = geOrderNumList.stream().filter(e -> e.getSortOrder() < deleteStart).collect(Collectors.toList()); geOrderNumList = geOrderNumList.stream().filter(e -> e.getSortOrder() < deleteStart).collect(Collectors.toList());
@@ -105,35 +107,35 @@ public class SysDictItemServiceImpl extends ServiceImpl<SysDictItemMapper, SysDi
.eq("dict_id", sysDictItem.getDictId()) .eq("dict_id", sysDictItem.getDictId())
.eq("is_tag_dict", sysDictItem.getIsTagDict()) .eq("is_tag_dict", sysDictItem.getIsTagDict())
.orderByAsc("sort_order"); .orderByAsc("sort_order");
if (list(queryWrapper).size() > 0) {
Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysDictItem.getId()))
.map(e -> e.getSortOrder()).collect(Collectors.toList()).get(0);
queryWrapper.eq("sort_order", inputOrderNum);
Integer orderNumCount = sysDictItemMapper.selectCount(queryWrapper);
if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1
//设置排序
QueryWrapper<SysDictItem> orderNumQueryWrapper = new QueryWrapper<>();
orderNumQueryWrapper.ge("sort_order", inputOrderNum)
.eq("dict_id", sysDictItem.getDictId())
.eq("del_flag", CommonConstant.DEL_FLAG_0)
.eq("is_tag_dict", sysDictItem.getIsTagDict())
.orderByAsc("sort_order");
List<SysDictItem> geOrderNumList = list(orderNumQueryWrapper);
//判断相邻的序号,去掉不邻的 Integer orderNumData = getById(sysDictItem.getId()).getSortOrder();
for (int i = 0; i < geOrderNumList.size(); i++) { queryWrapper.eq("sort_order", inputOrderNum);
if (geOrderNumList.size() == 1) { Integer orderNumCount = sysDictItemMapper.selectCount(queryWrapper);
break; if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1
} else if (geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() > 1) { //设置排序
int deleteStart = geOrderNumList.get(i + 1).getSortOrder(); QueryWrapper<SysDictItem> orderNumQueryWrapper = new QueryWrapper<>();
geOrderNumList = geOrderNumList.stream().filter(e -> e.getSortOrder() < deleteStart).collect(Collectors.toList()); orderNumQueryWrapper.ge("sort_order", inputOrderNum)
break; .eq("dict_id", sysDictItem.getDictId())
} .eq("del_flag", CommonConstant.DEL_FLAG_0)
.eq("is_tag_dict", sysDictItem.getIsTagDict())
.orderByAsc("sort_order");
List<SysDictItem> geOrderNumList = list(orderNumQueryWrapper);
//判断相邻的序号,去掉不邻的
for (int i = 0; i < geOrderNumList.size(); i++) {
if (geOrderNumList.size() == 1) {
break;
}else if(i+1 >= geOrderNumList.size()){
break;
} else if (geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() > 1) {
int deleteStart = geOrderNumList.get(i + 1).getSortOrder();
geOrderNumList = geOrderNumList.stream().filter(e -> e.getSortOrder() < deleteStart).collect(Collectors.toList());
break;
} }
geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1));
saveOrUpdateBatch(geOrderNumList);
} }
geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1));
saveOrUpdateBatch(geOrderNumList);
} }
} }
} }
@@ -455,6 +455,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
//查询展示顺序相同的 //查询展示顺序相同的
QueryWrapper<SysDict> queryWrapper = new QueryWrapper<>(); QueryWrapper<SysDict> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0) queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0)
.eq("is_tag_dict", sysDict.getIsTagDict())
.orderByAsc("order_num"); .orderByAsc("order_num");
queryWrapper.eq("order_num", inputOrderNum); queryWrapper.eq("order_num", inputOrderNum);
Integer orderNumCount = sysDictMapper.selectCount(queryWrapper); Integer orderNumCount = sysDictMapper.selectCount(queryWrapper);
@@ -470,6 +471,8 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
for (int i = 0; i < geOrderNumList.size(); i++) { for (int i = 0; i < geOrderNumList.size(); i++) {
if (geOrderNumList.size() == 1) { if (geOrderNumList.size() == 1) {
break; break;
}else if(i+1 >= geOrderNumList.size()){
break;
} else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) { } else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) {
int deleteStart = geOrderNumList.get(i + 1).getOrderNum(); int deleteStart = geOrderNumList.get(i + 1).getOrderNum();
geOrderNumList = geOrderNumList.stream().filter(e -> e.getOrderNum() < deleteStart).collect(Collectors.toList()); geOrderNumList = geOrderNumList.stream().filter(e -> e.getOrderNum() < deleteStart).collect(Collectors.toList());
@@ -490,8 +493,10 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
//查询展示顺序相同的 //查询展示顺序相同的
QueryWrapper<SysDict> queryWrapper = new QueryWrapper<>(); QueryWrapper<SysDict> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0) queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0)
.eq("is_tag_dict", sysDict.getIsTagDict())
.orderByAsc("order_num"); .orderByAsc("order_num");
Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysDict.getId())) List<SysDict> dataList = list(queryWrapper);
Integer orderNumData = dataList.stream().filter(e -> e.getId().equals(sysDict.getId()))
.map(e -> e.getOrderNum()).collect(Collectors.toList()).get(0); .map(e -> e.getOrderNum()).collect(Collectors.toList()).get(0);
queryWrapper.eq("order_num", inputOrderNum); queryWrapper.eq("order_num", inputOrderNum);
Integer orderNumCount = sysDictMapper.selectCount(queryWrapper); Integer orderNumCount = sysDictMapper.selectCount(queryWrapper);
@@ -507,7 +512,9 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
for (int i = 0; i < geOrderNumList.size(); i++) { for (int i = 0; i < geOrderNumList.size(); i++) {
if (geOrderNumList.size() == 1) { if (geOrderNumList.size() == 1) {
break; break;
} else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) { } else if(i+1 >= geOrderNumList.size()){
break;
}else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) {
int deleteStart = geOrderNumList.get(i + 1).getOrderNum(); int deleteStart = geOrderNumList.get(i + 1).getOrderNum();
geOrderNumList = geOrderNumList.stream().filter(e -> e.getOrderNum() < deleteStart).collect(Collectors.toList()); geOrderNumList = geOrderNumList.stream().filter(e -> e.getOrderNum() < deleteStart).collect(Collectors.toList());
break; break;
@@ -86,6 +86,8 @@ public class OnlCgformTagServiceImpl extends ServiceImpl<OnlCgformTagMapper, Onl
for(int i = 0 ; i < geOrderNumList.size() ; i++) { for(int i = 0 ; i < geOrderNumList.size() ; i++) {
if (geOrderNumList.size() == 1){ if (geOrderNumList.size() == 1){
break; break;
}else if(i+1 >= geOrderNumList.size()){
break;
}else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) { }else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) {
int deleteStart = geOrderNumList.get(i+1).getOrderNum(); int deleteStart = geOrderNumList.get(i+1).getOrderNum();
geOrderNumList = geOrderNumList.stream().filter(e->e.getOrderNum() < deleteStart).collect(Collectors.toList()); geOrderNumList = geOrderNumList.stream().filter(e->e.getOrderNum() < deleteStart).collect(Collectors.toList());
@@ -178,6 +180,8 @@ public class OnlCgformTagServiceImpl extends ServiceImpl<OnlCgformTagMapper, Onl
for(int i = 0 ; i < geOrderNumList.size() ; i++) { for(int i = 0 ; i < geOrderNumList.size() ; i++) {
if (geOrderNumList.size()==1){ if (geOrderNumList.size()==1){
break; break;
}else if(i+1 >= geOrderNumList.size()){
break;
}else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) { }else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) {
int deleteStart = geOrderNumList.get(i+1).getOrderNum(); int deleteStart = geOrderNumList.get(i+1).getOrderNum();
geOrderNumList = geOrderNumList.stream().filter(e->e.getOrderNum() < deleteStart).collect(Collectors.toList()); geOrderNumList = geOrderNumList.stream().filter(e->e.getOrderNum() < deleteStart).collect(Collectors.toList());