标签排序修改

This commit is contained in:
xiejunyu
2022-05-27 18:36:58 +08:00
parent 47379263ee
commit 04284a75ce
4 changed files with 66 additions and 62 deletions
@@ -34,7 +34,7 @@
</otherwise>
</choose>
</if>
order by create_time desc
order by sort_order
</select>
<select id="getFieldInfo" resultType="java.lang.String">
@@ -166,6 +166,6 @@
</choose>
</if>
order by d.order_num desc
order by d.order_num
</select>
</mapper>
@@ -370,47 +370,49 @@ public class SysCategoryServiceImpl extends ServiceImpl<SysCategoryMapper, SysCa
if(inputOrderNum != null) {
//查询展示顺序相同的
QueryWrapper<SysCategory> 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<SysCategory> 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<SysCategory> 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<SysCategory> 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<SysCategory> 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);
}
}
}
}
@@ -65,7 +65,7 @@ public class SysDictItemServiceImpl extends ServiceImpl<SysDictItemMapper, SysDi
queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0)
.eq("dict_id",sysDictItem.getDictId())
.eq("is_tag_dict",sysDictItem.getIsTagDict())
.orderByDesc("sort_order");
.orderByAsc("sort_order");
queryWrapper.eq("sort_order", inputOrderNum);
Integer orderNumCount = sysDictItemMapper.selectCount(queryWrapper);
if (orderNumCount > 0) {//有重复展示顺序的,后面的号全+1
@@ -102,36 +102,38 @@ public class SysDictItemServiceImpl extends ServiceImpl<SysDictItemMapper, SysDi
//查询展示顺序相同的
QueryWrapper<SysDictItem> 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<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);
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);
//判断相邻的序号,去掉不邻的
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);
}
}
}
}