diff --git a/src/main/java/com/pms/ocp/controller/ModelClassifyController.java b/src/main/java/com/pms/ocp/controller/ModelClassifyController.java index 921492c8c23d618da70894fdbaa3d5b80587c112..126c214bf804c48b0749ea876b9cd1af6b5c1dbe 100644 --- a/src/main/java/com/pms/ocp/controller/ModelClassifyController.java +++ b/src/main/java/com/pms/ocp/controller/ModelClassifyController.java @@ -37,8 +37,8 @@ public class ModelClassifyController { **/ @ApiOperation("模型分类导航") @GetMapping("/navigation") - public ResponseVO> getModelNavigation(String searchCondition) { - return modelClassifyService.getModelNavigation(searchCondition); + public ResponseVO> getModelNavigation() { + return modelClassifyService.getModelNavigation(); } /** @@ -50,12 +50,12 @@ public class ModelClassifyController { **/ @ApiOperation("右侧子类详情列表") @GetMapping("/subclassDetailsList") - public ResponseVO> subclassDetailsList(@RequestParam(required = false) int pageSize, - @RequestParam(required = false) int pageNum, + public ResponseVO> subclassDetailsList(@RequestParam int currentPage, + @RequestParam int pageSize, @RequestParam(required = false,defaultValue = "") String parentGroupCode, - @RequestParam(required = false) String subclassGroupName + @RequestParam(required = false,defaultValue = "") String subclassGroupName ) { - return modelClassifyService.subclassDetailsList(pageSize, pageNum, parentGroupCode, subclassGroupName); + return modelClassifyService.subclassDetailsList(currentPage, pageSize, parentGroupCode, subclassGroupName); } /** diff --git a/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java b/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java index fa5281796e36020139e53730f4a4c177676c5760..68a5c6cd9105c48f1c189915b6ef32566528cd34 100644 --- a/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java +++ b/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java @@ -95,7 +95,13 @@ public class OcpModelGroupVO implements Serializable { @ApiModelProperty(value = "子类集合") List childrenList; + public String getModelGroupCode() { + return modelGroupCode == null ? "" : modelGroupCode; + } + public String getModelGroupPcode() { + return modelGroupPcode == null ? "" : modelGroupPcode; + } } diff --git a/src/main/java/com/pms/ocp/service/ModelClassifyService.java b/src/main/java/com/pms/ocp/service/ModelClassifyService.java index 7052d1de9ea0166ea77449fd3e4d4c3fde20c3aa..e895d0b79fceddcad2fae988fdf98c172490b9ee 100644 --- a/src/main/java/com/pms/ocp/service/ModelClassifyService.java +++ b/src/main/java/com/pms/ocp/service/ModelClassifyService.java @@ -12,11 +12,11 @@ import java.util.List; * @date 2022/3/8 15:19 */ public interface ModelClassifyService { - ResponseVO> getModelNavigation(String searchCondition); + ResponseVO> getModelNavigation(); ResponseVO insert(List list); - ResponseVO subclassDetailsList(int pageSize,int pageNum,String parentGroupCode,String subclassGroupName); + ResponseVO subclassDetailsList(int currentPage,int pageSize,String parentGroupCode,String subclassGroupName); ResponseVO update(List list); } diff --git a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java index 2bc92f48def4364c77b6a6061eac1bad674861d4..4855c8d9795645bfbdfe0c2633981d510d7a2a07 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java @@ -34,17 +34,17 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { private OcpModelGroupService ocpService; /** + * currentPage pageSize * 模型分类-导航树 * - * @param searchCondition 搜索条件 * @return List * @author huxiuwu * @date 2022/3/8 **/ @Override - public ResponseVO> getModelNavigation(String searchCondition) { + public ResponseVO> getModelNavigation() { //根据是否传入搜索条件创建构造器进行查询 - List modelTypeList = this.selectByCondition(searchCondition, null); + List modelTypeList = this.selectByCondition(null, null); if (CollectionUtil.isEmpty(modelTypeList)) { return ResponseVO.error(CodeEnum.NO_DATA); } @@ -55,18 +55,27 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { /** * 右侧子类详情列表 - * + * 这边是右侧详情页,需求是点击右侧导航树上的分类显示该分类的所有子集, + * 所以第一次查询查询到所有并将其转换为key为其分类编码,value为其本身 + * 的map.第二次是根据搜素框的值进行模糊查询 * @return pms.ocp.model.vo.ResponseVO * @author huxiuwu * @date 2022/3/9 **/ @Override - public ResponseVO> subclassDetailsList(int pageSize,int pageNum,String parentGroupCode,String subclassGroupName) { - PageHelper.startPage(pageSize,pageNum); - List ocpModelGroupVOList = this.selectByCondition(null,subclassGroupName); + public ResponseVO> subclassDetailsList(int currentPage,int pageSize,String parentGroupCode,String subclassGroupName) { + + //查询所有 + List ocpModelGroupVOList = this.selectByCondition(null,null); + //将查询到所有数据的list转换为key为分类code,value为本身的map Map groupByCode = ocpModelGroupVOList.stream().collect(Collectors.toMap(OcpModelGroupVO::getModelGroupCode, Function.identity(), (key1, key2) -> key2)); + //根据key获取前端传入code的对象 OcpModelGroupVO ocpModelGroupVO = groupByCode.get(parentGroupCode); - List childrenList = findChildren(ocpModelGroupVOList, ocpModelGroupVO, new LinkedList<>()); + //模糊查询 + PageHelper.startPage(currentPage,pageSize); + List dimConditionList = this.selectByCondition(null,subclassGroupName); + //递归获取模糊查询后属于parentGroupCode子集 + List childrenList = findChildren(dimConditionList, ocpModelGroupVO, new LinkedList<>()); PageInfo pageInfo = new PageInfo<>(childrenList); return ResponseVO.ok(pageInfo); } @@ -109,21 +118,23 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { * 获取父节点下的所有子节点放入list中 * @author huxiuwu * @date 2022/3/9 - * @param menuList - * @param childMenu + * @param groupList + * @param childList * @return void **/ - private List findChildren(List menuList, OcpModelGroupVO parent,List childMenu) { - for (OcpModelGroupVO vo : menuList) { + private List findChildren(List groupList, OcpModelGroupVO parent,List childList) { + for (OcpModelGroupVO vo : groupList) { //遍历出父id等于参数的id,add进子节点集合 - if (parent.getModelGroupCode() != null && parent.getModelGroupCode().equals(vo.getModelGroupPcode())) { + if (parent!= null + && parent.getModelGroupCode() + .equals(vo.getModelGroupPcode())) { //递归遍历下一级 vo.setModelGroupPName(parent.getModelGroupName()); - childMenu.add(vo); - childMenu = findChildren(menuList, vo, childMenu); + childList.add(vo); + childList = findChildren(groupList,vo,childList); } } - return childMenu; + return childList; } @@ -155,8 +166,8 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { private List selectByCondition(String... searchCondition) { QueryWrapper queryWrapper = new QueryWrapper<>(); //根据是否传入搜索条件创建构造器进行查询 - queryWrapper.eq(StringUtils.isNotEmpty(searchCondition[0]), "model_group_pcode", searchCondition[1]) - .like(StringUtils.isNotEmpty(searchCondition[1]), "model_group_name", searchCondition[0]); + queryWrapper.eq(StringUtils.isNotEmpty(searchCondition[0]), "model_group_pcode", searchCondition[0]) + .like(StringUtils.isNotEmpty(searchCondition[1]),"model_group_name", searchCondition[1]).orderBy(false,false,"group_ctime"); return classifyMapper.selectList(queryWrapper); } }