diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysCategoryMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysCategoryMapper.xml index 8a1b15956..147a6b2b0 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysCategoryMapper.xml +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysCategoryMapper.xml @@ -34,7 +34,7 @@ - order by create_time desc + order by sort_order diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysCategoryServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysCategoryServiceImpl.java index aa7d80250..c30c1abb2 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysCategoryServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysCategoryServiceImpl.java @@ -370,47 +370,49 @@ public class SysCategoryServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("sys_dict_id",sysCategory.getSysDictId()) + queryWrapper.eq("sys_dict_id", sysCategory.getSysDictId()) .eq("del_flag", CommonConstant.DEL_FLAG_0) .orderByAsc("sort_order"); - if(StringUtils.isNotBlank(sysCategory.getPid())){ - queryWrapper.eq("pid",sysCategory.getPid()); - }else{ - queryWrapper.eq("pid",0); + if (StringUtils.isNotBlank(sysCategory.getPid())) { + queryWrapper.eq("pid", sysCategory.getPid()); + } else { + queryWrapper.eq("pid", 0); } - Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysCategory.getId())) - .map(e -> e.getSortOrder()).collect(Collectors.toList()).get(0); - queryWrapper.eq("sort_order", inputOrderNum); - Integer orderNumCount = sysCategoryMapper.selectCount(queryWrapper); - if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1 - //设置排序 - QueryWrapper orderNumQueryWrapper = new QueryWrapper<>(); - orderNumQueryWrapper.ge("sort_order", inputOrderNum) - .eq("sys_dict_id",sysCategory.getSysDictId()) - .eq("del_flag", CommonConstant.DEL_FLAG_0) - .orderByAsc("sort_order"); - if(StringUtils.isNotBlank(sysCategory.getPid())){ - orderNumQueryWrapper.eq("pid",sysCategory.getPid()); - }else{ - orderNumQueryWrapper.eq("pid",0); - } - List geOrderNumList = list(orderNumQueryWrapper); + if (list(queryWrapper).size() > 0) { + Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysCategory.getId())) + .map(e -> e.getSortOrder()).collect(Collectors.toList()).get(0); + queryWrapper.eq("sort_order", inputOrderNum); + Integer orderNumCount = sysCategoryMapper.selectCount(queryWrapper); + if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1 + //设置排序 + QueryWrapper orderNumQueryWrapper = new QueryWrapper<>(); + orderNumQueryWrapper.ge("sort_order", inputOrderNum) + .eq("sys_dict_id", sysCategory.getSysDictId()) + .eq("del_flag", CommonConstant.DEL_FLAG_0) + .orderByAsc("sort_order"); + if (StringUtils.isNotBlank(sysCategory.getPid())) { + orderNumQueryWrapper.eq("pid", sysCategory.getPid()); + } else { + orderNumQueryWrapper.eq("pid", 0); + } + List geOrderNumList = list(orderNumQueryWrapper); - //判断相邻的序号,去掉不邻的 - for (int i = 0; i < geOrderNumList.size(); i++) { - if (geOrderNumList.size() == 1 || (geOrderNumList.size()==2 && geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() == 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()); - if(geOrderNumList.size()!=(i+1)) { + //判断相邻的序号,去掉不邻的 + for (int i = 0; i < geOrderNumList.size(); i++) { + if (geOrderNumList.size() == 1 || (geOrderNumList.size() == 2 && geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() == 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()); + if (geOrderNumList.size() != (i + 1)) { + 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/SysDictItemServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java index 85e6df8da..1f9d5269b 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 @@ -65,7 +65,7 @@ public class SysDictItemServiceImpl extends ServiceImpl 0) {//有重复展示顺序的,后面的号全+1 @@ -102,36 +102,38 @@ public class SysDictItemServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0) - .eq("dict_id",sysDictItem.getDictId()) - .eq("is_tag_dict",sysDictItem.getIsTagDict()) + .eq("dict_id", sysDictItem.getDictId()) + .eq("is_tag_dict", sysDictItem.getIsTagDict()) .orderByAsc("sort_order"); - 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); + 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 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; + //判断相邻的序号,去掉不邻的 + 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; + } } - } - geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1)); - saveOrUpdateBatch(geOrderNumList); + geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1)); + saveOrUpdateBatch(geOrderNumList); + } } } }