diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysCategoryController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysCategoryController.java index 830910af5..659e28fe9 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysCategoryController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysCategoryController.java @@ -16,6 +16,7 @@ import com.jero.modules.enums.FixedFieldEnum; import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.model.TreeSelectModel; import com.jero.modules.system.service.ISysCategoryService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; @@ -27,6 +28,7 @@ import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; @@ -44,6 +46,7 @@ import java.util.stream.Collectors; * @Date: 2019-05-29 * @Version: V1.0 */ +@Api(tags="标签内容-树形结构") @RestController @RequestMapping("/sys/category") @Slf4j @@ -94,6 +97,14 @@ public class SysCategoryController { result.setResult(list); return result; } + @AutoLog(value = "标签内容-查询字典配置的父级名称") + @ApiOperation(value = "标签内容-查询字典配置的父级名称", notes = "标签内容-查询字典配置的父级名称") + @GetMapping(value = "/queryPid") + public Result> queryPid() { + List list = sysCategoryService.queryPid(); + + return Result.OK(list); + } /**标签内容-树形结构列表 * @@ -118,6 +129,7 @@ public class SysCategoryController { @PostMapping(value = "/add") public Result add(@RequestBody SysCategory sysCategory) { Result result = new Result(); + sysCategoryService.setAddOrdderNum(sysCategory); sysCategory.setName(sysCategory.getName().replace(" ","")); sysCategoryService.addSysCategory(sysCategory); result.success("添加成功!"); @@ -133,6 +145,7 @@ public class SysCategoryController { @PutMapping(value = "/edit") public Result edit(@RequestBody SysCategory sysCategory) { Result result = new Result(); + sysCategoryService.setEditOrderNum(sysCategory); SysCategory sysCategoryEntity = sysCategoryService.getById(sysCategory.getId()); if(sysCategoryEntity==null) { result.error500("未找到对应实体"); diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java index 064aa382c..c25f4d9b1 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java @@ -436,7 +436,7 @@ public class SysDictController { @RequiresPermissions("dict:edit") public Result edit(@RequestBody SysDict sysDict) { Result result = new Result(); - sysDictService.setEditOrdderNum(sysDict); + sysDictService.setEditOrderNum(sysDict); SysDict sysdict = sysDictService.getById(sysDict.getId()); if (sysdict == null) { result.error500("未找到对应实体"); diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java index 46eacf4ed..0a360f37e 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java @@ -84,6 +84,7 @@ public class SysDictItemController { @CacheEvict(value= CacheConstant.SYS_DICT_CACHE, allEntries=true) public Result add(@RequestBody SysDictItem sysDictItem) { Result result = new Result(); + sysDictItemService.setAddOrdderNum(sysDictItem); //查询同名数据 List exitDictItemList = sysDictItemMapper.selctItemByName(sysDictItem.getItemText(),sysDictItem.getDictId()); if(CollectionUtils.isNotEmpty(exitDictItemList)){ @@ -127,6 +128,7 @@ public class SysDictItemController { @CacheEvict(value=CacheConstant.SYS_DICT_CACHE, allEntries=true) public Result edit(@RequestBody SysDictItem sysDictItem) { Result result = new Result(); + sysDictItemService.setEditOrderNum(sysDictItem); SysDictItem sysdict = sysDictItemService.getById(sysDictItem.getId()); if (sysdict == null) { result.error500("未找到对应实体"); diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysCategoryService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysCategoryService.java index 9e95752fe..793ced8fe 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysCategoryService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysCategoryService.java @@ -85,4 +85,10 @@ public interface ISysCategoryService extends IService { public void updateDictDelFlag(int delFlag,String id); List queryByTreeDicCode(String dicCode); + + void setAddOrdderNum(SysCategory sysCategory); + + void setEditOrderNum(SysCategory sysCategory); + + List queryPid(); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictItemService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictItemService.java index 21fd8cc2e..0d59ef710 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictItemService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictItemService.java @@ -30,4 +30,8 @@ public interface ISysDictItemService extends IService { * @param id */ public void updateDictDelFlag(int delFlag,String id); + + void setAddOrdderNum(SysDictItem sysDictItem); + + void setEditOrderNum(SysDictItem sysDictItem); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java index 3deed8b29..a73c187ec 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java @@ -172,5 +172,5 @@ public interface ISysDictService extends IService { void setAddOrdderNum(SysDict sysDict); - void setEditOrdderNum(SysDict sysDict); + void setEditOrderNum(SysDict sysDict); } 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 5868d597d..d060ca6d6 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 @@ -309,4 +309,88 @@ public class SysCategoryServiceImpl extends ServiceImpl queryByTreeDicCode(String dicCode) { return sysCategoryMapper.queryByTreeDicCode(dicCode); } + + @Override + public void setAddOrdderNum(SysCategory sysCategory) { + Integer inputOrderNum = sysCategory.getSortOrder(); + if(inputOrderNum != null) { + //查询展示顺序相同的 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sys_dict_id",sysCategory.getSysDictId()) + .eq("del_flag", CommonConstant.DEL_FLAG_0) + .orderByAsc("sort_order"); + queryWrapper.eq("sort_order", inputOrderNum); + Integer orderNumCount = sysCategoryMapper.selectCount(queryWrapper); + if (orderNumCount > 0) {//有重复展示顺序的,后面的号全+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"); + 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; + } + } + + geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1)); + saveOrUpdateBatch(geOrderNumList); + } + } + } + + @Override + public void setEditOrderNum(SysCategory sysCategory) { + Integer inputOrderNum = sysCategory.getSortOrder(); + if(inputOrderNum != null) { + //查询展示顺序相同的 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sys_dict_id",sysCategory.getSysDictId()) + .eq("del_flag", CommonConstant.DEL_FLAG_0) + .orderByAsc("sort_order"); + 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"); + 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; + } + } + + geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1)); + saveOrUpdateBatch(geOrderNumList); + } + } + } + + @Override + public List queryPid() { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("pid",0); + List list = list(queryWrapper); + return list; + } } 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 6b07d515c..394f168f3 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 @@ -1,6 +1,8 @@ package com.jero.modules.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.constant.CommonConstant; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.service.ISysDictItemService; @@ -8,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.stream.Collectors; /** *

@@ -52,4 +55,80 @@ public class SysDictItemServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0) + .eq("dict_id",sysDictItem.getDictId()) + .orderByAsc("order_num"); + queryWrapper.eq("order_num", inputOrderNum); + Integer orderNumCount = sysDictItemMapper.selectCount(queryWrapper); + if (orderNumCount > 0) {//有重复展示顺序的,后面的号全+1 + //设置排序 + QueryWrapper orderNumQueryWrapper = new QueryWrapper<>(); + orderNumQueryWrapper.ge("order_num", inputOrderNum) + .eq("dict_id",sysDictItem.getDictId()) + .eq("del_flag", CommonConstant.DEL_FLAG_0) + .orderByAsc("order_num"); + 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; + } + } + + geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1)); + saveOrUpdateBatch(geOrderNumList); + } + } + } + + @Override + public void setEditOrderNum(SysDictItem sysDictItem) { + Integer inputOrderNum = sysDictItem.getSortOrder(); + if(inputOrderNum != null) { + //查询展示顺序相同的 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0) + .eq("dict_id",sysDictItem.getDictId()) + .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) + .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; + } + } + + 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 ee647db3f..23b6dfd8c 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 @@ -484,7 +484,7 @@ public class SysDictServiceImpl extends ServiceImpl impl } @Override - public void setEditOrdderNum(SysDict sysDict) { + public void setEditOrderNum(SysDict sysDict) { Integer inputOrderNum = sysDict.getOrderNum(); if(inputOrderNum != null) { //查询展示顺序相同的