标签排序修改
This commit is contained in:
+1
-1
@@ -34,7 +34,7 @@
|
|||||||
</otherwise>
|
</otherwise>
|
||||||
</choose>
|
</choose>
|
||||||
</if>
|
</if>
|
||||||
order by create_time desc
|
order by sort_order
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getFieldInfo" resultType="java.lang.String">
|
<select id="getFieldInfo" resultType="java.lang.String">
|
||||||
|
|||||||
+1
-1
@@ -166,6 +166,6 @@
|
|||||||
</choose>
|
</choose>
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
order by d.order_num desc
|
order by d.order_num
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+35
-33
@@ -370,47 +370,49 @@ public class SysCategoryServiceImpl extends ServiceImpl<SysCategoryMapper, SysCa
|
|||||||
if(inputOrderNum != null) {
|
if(inputOrderNum != null) {
|
||||||
//查询展示顺序相同的
|
//查询展示顺序相同的
|
||||||
QueryWrapper<SysCategory> queryWrapper = new QueryWrapper<>();
|
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)
|
.eq("del_flag", CommonConstant.DEL_FLAG_0)
|
||||||
.orderByAsc("sort_order");
|
.orderByAsc("sort_order");
|
||||||
if(StringUtils.isNotBlank(sysCategory.getPid())){
|
if (StringUtils.isNotBlank(sysCategory.getPid())) {
|
||||||
queryWrapper.eq("pid",sysCategory.getPid());
|
queryWrapper.eq("pid", sysCategory.getPid());
|
||||||
}else{
|
} else {
|
||||||
queryWrapper.eq("pid",0);
|
queryWrapper.eq("pid", 0);
|
||||||
}
|
}
|
||||||
Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysCategory.getId()))
|
if (list(queryWrapper).size() > 0) {
|
||||||
.map(e -> e.getSortOrder()).collect(Collectors.toList()).get(0);
|
Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysCategory.getId()))
|
||||||
queryWrapper.eq("sort_order", inputOrderNum);
|
.map(e -> e.getSortOrder()).collect(Collectors.toList()).get(0);
|
||||||
Integer orderNumCount = sysCategoryMapper.selectCount(queryWrapper);
|
queryWrapper.eq("sort_order", inputOrderNum);
|
||||||
if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1
|
Integer orderNumCount = sysCategoryMapper.selectCount(queryWrapper);
|
||||||
//设置排序
|
if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1
|
||||||
QueryWrapper<SysCategory> orderNumQueryWrapper = new QueryWrapper<>();
|
//设置排序
|
||||||
orderNumQueryWrapper.ge("sort_order", inputOrderNum)
|
QueryWrapper<SysCategory> orderNumQueryWrapper = new QueryWrapper<>();
|
||||||
.eq("sys_dict_id",sysCategory.getSysDictId())
|
orderNumQueryWrapper.ge("sort_order", inputOrderNum)
|
||||||
.eq("del_flag", CommonConstant.DEL_FLAG_0)
|
.eq("sys_dict_id", sysCategory.getSysDictId())
|
||||||
.orderByAsc("sort_order");
|
.eq("del_flag", CommonConstant.DEL_FLAG_0)
|
||||||
if(StringUtils.isNotBlank(sysCategory.getPid())){
|
.orderByAsc("sort_order");
|
||||||
orderNumQueryWrapper.eq("pid",sysCategory.getPid());
|
if (StringUtils.isNotBlank(sysCategory.getPid())) {
|
||||||
}else{
|
orderNumQueryWrapper.eq("pid", sysCategory.getPid());
|
||||||
orderNumQueryWrapper.eq("pid",0);
|
} else {
|
||||||
}
|
orderNumQueryWrapper.eq("pid", 0);
|
||||||
List<SysCategory> geOrderNumList = list(orderNumQueryWrapper);
|
}
|
||||||
|
List<SysCategory> geOrderNumList = list(orderNumQueryWrapper);
|
||||||
|
|
||||||
//判断相邻的序号,去掉不邻的
|
//判断相邻的序号,去掉不邻的
|
||||||
for (int i = 0; i < geOrderNumList.size(); i++) {
|
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)) {
|
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;
|
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));
|
geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1));
|
||||||
saveOrUpdateBatch(geOrderNumList);
|
saveOrUpdateBatch(geOrderNumList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+29
-27
@@ -65,7 +65,7 @@ public class SysDictItemServiceImpl extends ServiceImpl<SysDictItemMapper, SysDi
|
|||||||
queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0)
|
queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0)
|
||||||
.eq("dict_id",sysDictItem.getDictId())
|
.eq("dict_id",sysDictItem.getDictId())
|
||||||
.eq("is_tag_dict",sysDictItem.getIsTagDict())
|
.eq("is_tag_dict",sysDictItem.getIsTagDict())
|
||||||
.orderByDesc("sort_order");
|
.orderByAsc("sort_order");
|
||||||
queryWrapper.eq("sort_order", inputOrderNum);
|
queryWrapper.eq("sort_order", inputOrderNum);
|
||||||
Integer orderNumCount = sysDictItemMapper.selectCount(queryWrapper);
|
Integer orderNumCount = sysDictItemMapper.selectCount(queryWrapper);
|
||||||
if (orderNumCount > 0) {//有重复展示顺序的,后面的号全+1
|
if (orderNumCount > 0) {//有重复展示顺序的,后面的号全+1
|
||||||
@@ -102,36 +102,38 @@ public class SysDictItemServiceImpl extends ServiceImpl<SysDictItemMapper, SysDi
|
|||||||
//查询展示顺序相同的
|
//查询展示顺序相同的
|
||||||
QueryWrapper<SysDictItem> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysDictItem> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0)
|
queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0)
|
||||||
.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");
|
||||||
Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysDictItem.getId()))
|
if (list(queryWrapper).size() > 0) {
|
||||||
.map(e -> e.getSortOrder()).collect(Collectors.toList()).get(0);
|
Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysDictItem.getId()))
|
||||||
queryWrapper.eq("sort_order", inputOrderNum);
|
.map(e -> e.getSortOrder()).collect(Collectors.toList()).get(0);
|
||||||
Integer orderNumCount = sysDictItemMapper.selectCount(queryWrapper);
|
queryWrapper.eq("sort_order", inputOrderNum);
|
||||||
if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1
|
Integer orderNumCount = sysDictItemMapper.selectCount(queryWrapper);
|
||||||
//设置排序
|
if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1
|
||||||
QueryWrapper<SysDictItem> orderNumQueryWrapper = new QueryWrapper<>();
|
//设置排序
|
||||||
orderNumQueryWrapper.ge("sort_order", inputOrderNum)
|
QueryWrapper<SysDictItem> orderNumQueryWrapper = new QueryWrapper<>();
|
||||||
.eq("dict_id",sysDictItem.getDictId())
|
orderNumQueryWrapper.ge("sort_order", inputOrderNum)
|
||||||
.eq("del_flag", CommonConstant.DEL_FLAG_0)
|
.eq("dict_id", sysDictItem.getDictId())
|
||||||
.eq("is_tag_dict",sysDictItem.getIsTagDict())
|
.eq("del_flag", CommonConstant.DEL_FLAG_0)
|
||||||
.orderByAsc("sort_order");
|
.eq("is_tag_dict", sysDictItem.getIsTagDict())
|
||||||
List<SysDictItem> geOrderNumList = list(orderNumQueryWrapper);
|
.orderByAsc("sort_order");
|
||||||
|
List<SysDictItem> geOrderNumList = list(orderNumQueryWrapper);
|
||||||
|
|
||||||
//判断相邻的序号,去掉不邻的
|
//判断相邻的序号,去掉不邻的
|
||||||
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).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());
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1));
|
geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1));
|
||||||
saveOrUpdateBatch(geOrderNumList);
|
saveOrUpdateBatch(geOrderNumList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user