fix 新增区域管理报错

This commit is contained in:
lijiarao
2023-08-24 16:20:44 +08:00
parent 18e3b9bffc
commit 5aa3f1e571
@@ -49,37 +49,6 @@ public class LawsAreaServiceImpl extends ServiceImpl<LawsAreaMapper, LawsArea> i
*/
@Override
public void add(LawsArea lawsArea) {
Integer inputSort = lawsArea.getSort();
//查询展示顺序相同的
QueryWrapper<LawsArea> queryWrapper= new QueryWrapper<>();
queryWrapper.orderByAsc("sort");
queryWrapper.eq("sort", inputSort);
Integer orderNumCount = lawsAreaMapper.selectCount(queryWrapper);
if(orderNumCount > 0) {//有重复展示顺序的,后面的号全+1
//设置排序
QueryWrapper<LawsArea> orderNumQueryWrapper = new QueryWrapper<>();
orderNumQueryWrapper.ge("sort", inputSort)
.orderByAsc("sort");
List<LawsArea> geSortList = list(orderNumQueryWrapper);
//判断相邻的序号,去掉不邻的
for(int i = 0 ; i <= geSortList.size() ; i++) {
if (geSortList.size()==1){
break;
}else if (geSortList.get(i + 1).getSort() - geSortList.get(i).getSort() > 1) {
int deleteStart = geSortList.get(i+1).getSort();
geSortList = geSortList.stream().filter(e->e.getSort() < deleteStart).collect(Collectors.toList());
break;
}
}
geSortList.stream().forEach(e -> e.setSort(e.getSort() + 1));
saveOrUpdateBatch(geSortList);
}
Date now = new Date();
lawsArea.setCreateTime(now);
lawsArea.setUpdateTime(now);
save(lawsArea);
}
/**
@@ -105,37 +74,6 @@ public class LawsAreaServiceImpl extends ServiceImpl<LawsAreaMapper, LawsArea> i
*/
@Override
public void editById(LawsArea lawsArea) {
Integer inputSort = lawsArea.getSort();
//查询展示顺序相同的
QueryWrapper<LawsArea> queryWrapper= new QueryWrapper<>();
queryWrapper.orderByAsc("sort");
Integer orderNumData = list(queryWrapper).stream().filter(e->e.getId().equals(lawsArea.getId()))
.map(e -> e.getSort()).collect(Collectors.toList()).get(0);
queryWrapper.eq("sort", inputSort);
Integer orderNumCount = lawsAreaMapper.selectCount(queryWrapper);
if(orderNumCount > 0 && !orderNumData.equals(inputSort)) {//有重复展示顺序的,后面的号全+1
//设置排序
QueryWrapper<LawsArea> orderNumQueryWrapper = new QueryWrapper<>();
orderNumQueryWrapper.ge("sort", inputSort)
.orderByAsc("sort");
List<LawsArea> geSortList = list(orderNumQueryWrapper);
//判断相邻的序号,去掉不邻的
for(int i = 0 ; i <= geSortList.size() ; i++) {
if (geSortList.size()==1){
break;
}else if (geSortList.get(i + 1).getSort() - geSortList.get(i).getSort() > 1) {
int deleteStart = geSortList.get(i+1).getSort();
geSortList = geSortList.stream().filter(e->e.getSort() < deleteStart).collect(Collectors.toList());
break;
}
}
geSortList.stream().forEach(e -> e.setSort(e.getSort() + 1));
saveOrUpdateBatch(geSortList);
}
Date now = new Date();
lawsArea.setUpdateTime(now);
saveOrUpdate(lawsArea);
}