diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java index 1f9d5269b..a207bf6ce 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java @@ -82,6 +82,8 @@ public class SysDictItemServiceImpl extends ServiceImpl= 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()); @@ -105,35 +107,35 @@ public class SysDictItemServiceImpl extends ServiceImpl 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 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 geOrderNumList = list(orderNumQueryWrapper); - //判断相邻的序号,去掉不邻的 - for (int i = 0; i < geOrderNumList.size(); i++) { - if (geOrderNumList.size() == 1) { - 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; - } + Integer orderNumData = getById(sysDictItem.getId()).getSortOrder(); + queryWrapper.eq("sort_order", inputOrderNum); + Integer orderNumCount = sysDictItemMapper.selectCount(queryWrapper); + if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1 + //设置排序 + QueryWrapper 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 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); } } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java index 23b6dfd8c..b97383d94 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java @@ -455,6 +455,7 @@ public class SysDictServiceImpl extends ServiceImpl impl //查询展示顺序相同的 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0) + .eq("is_tag_dict", sysDict.getIsTagDict()) .orderByAsc("order_num"); queryWrapper.eq("order_num", inputOrderNum); Integer orderNumCount = sysDictMapper.selectCount(queryWrapper); @@ -470,6 +471,8 @@ public class SysDictServiceImpl extends ServiceImpl impl 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).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) { int deleteStart = geOrderNumList.get(i + 1).getOrderNum(); geOrderNumList = geOrderNumList.stream().filter(e -> e.getOrderNum() < deleteStart).collect(Collectors.toList()); @@ -490,8 +493,10 @@ public class SysDictServiceImpl extends ServiceImpl impl //查询展示顺序相同的 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0) + .eq("is_tag_dict", sysDict.getIsTagDict()) .orderByAsc("order_num"); - Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysDict.getId())) + List dataList = list(queryWrapper); + Integer orderNumData = dataList.stream().filter(e -> e.getId().equals(sysDict.getId())) .map(e -> e.getOrderNum()).collect(Collectors.toList()).get(0); queryWrapper.eq("order_num", inputOrderNum); Integer orderNumCount = sysDictMapper.selectCount(queryWrapper); @@ -507,7 +512,9 @@ public class SysDictServiceImpl extends ServiceImpl impl for (int i = 0; i < geOrderNumList.size(); i++) { if (geOrderNumList.size() == 1) { 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(); geOrderNumList = geOrderNumList.stream().filter(e -> e.getOrderNum() < deleteStart).collect(Collectors.toList()); break; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/OnlCgformTagServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/OnlCgformTagServiceImpl.java index 21d1de081..d25fead6b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/OnlCgformTagServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/OnlCgformTagServiceImpl.java @@ -86,6 +86,8 @@ public class OnlCgformTagServiceImpl extends ServiceImpl= geOrderNumList.size()){ + break; }else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) { int deleteStart = geOrderNumList.get(i+1).getOrderNum(); geOrderNumList = geOrderNumList.stream().filter(e->e.getOrderNum() < deleteStart).collect(Collectors.toList()); @@ -178,6 +180,8 @@ public class OnlCgformTagServiceImpl extends ServiceImpl= geOrderNumList.size()){ + break; }else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) { int deleteStart = geOrderNumList.get(i+1).getOrderNum(); geOrderNumList = geOrderNumList.stream().filter(e->e.getOrderNum() < deleteStart).collect(Collectors.toList());