From d1401310a48a89f81446d2150b8eb15107261dcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E7=A7=80=E6=AD=A6?= <18621965254@yeah.net> Date: Wed, 6 Apr 2022 09:52:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E5=88=97=E8=A1=A8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=BB=9F=E6=8E=A8=E8=87=AA=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/pms/ocp/model/entity/TreeNode.java | 9 +++- .../ocp/model/vo/ModelListNavigationVO.java | 19 +++++++ .../ocp/service/ModelSubscribeService.java | 8 --- .../impl/ModelSubscribeServiceImpl.java | 49 +++++++++++-------- .../resources/mapper/ModelSubscribeMapper.xml | 5 +- .../resources/mapper/PmsApiAuditMapper.xml | 2 +- 6 files changed, 59 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/pms/ocp/model/vo/ModelListNavigationVO.java diff --git a/src/main/java/com/pms/ocp/model/entity/TreeNode.java b/src/main/java/com/pms/ocp/model/entity/TreeNode.java index a0aa1ce..5a80f4d 100644 --- a/src/main/java/com/pms/ocp/model/entity/TreeNode.java +++ b/src/main/java/com/pms/ocp/model/entity/TreeNode.java @@ -40,11 +40,12 @@ public class TreeNode implements Serializable { @ApiModelProperty("子类") private int belongLevel; + @ApiModelProperty("统推,自建") + private Integer modelPromotion; + @ApiModelProperty("子类") private List children; - - public String getCode() { return code == null ? "":code; } @@ -55,6 +56,10 @@ public class TreeNode implements Serializable { return companyCode == null ? "":companyCode; } + public Integer getModelPromotion() { + return modelPromotion == null ? -1 : modelPromotion; + } + public String getModelGroupCode() { return modelGroupCode == null ? "":modelGroupCode; } diff --git a/src/main/java/com/pms/ocp/model/vo/ModelListNavigationVO.java b/src/main/java/com/pms/ocp/model/vo/ModelListNavigationVO.java new file mode 100644 index 0000000..4b69d40 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/vo/ModelListNavigationVO.java @@ -0,0 +1,19 @@ +package com.pms.ocp.model.vo; + +import lombok.Data; + +import java.util.LinkedList; +import java.util.List; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/2 15:28 + */ +@Data +public class ModelListNavigationVO { + //统推 + private List unifiedPush = new LinkedList<>(); + //自建 + private List selfBuilt = new LinkedList<>(); +} diff --git a/src/main/java/com/pms/ocp/service/ModelSubscribeService.java b/src/main/java/com/pms/ocp/service/ModelSubscribeService.java index a914080..cf2bdc8 100644 --- a/src/main/java/com/pms/ocp/service/ModelSubscribeService.java +++ b/src/main/java/com/pms/ocp/service/ModelSubscribeService.java @@ -53,14 +53,6 @@ public interface ModelSubscribeService { */ List getModelSubscribeList(String objId, String modelCode, String subsCompanyCode); - /** - * 获取模型订阅列表 - * - * @param modelId - * @return - */ - ModelSubscribeDTO getModelSubscribe(String modelId); - ResponseVO modelListNavigation(String searchCondition); } diff --git a/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java index 8eb187c..c8299c4 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java @@ -1,13 +1,13 @@ package com.pms.ocp.service.impl; -import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.pms.ocp.common.constants.CodeEnum; +import com.pms.ocp.common.constants.Constant; import com.pms.ocp.common.utils.TreeUtils; import com.pms.ocp.mapper.ModelSubscribeMapper; import com.pms.ocp.model.dto.ModelSubscribeDTO; import com.pms.ocp.model.entity.ModelSubscribe; import com.pms.ocp.model.entity.TreeNode; +import com.pms.ocp.model.vo.ModelListNavigationVO; import com.pms.ocp.model.vo.ResponseVO; import com.pms.ocp.service.ModelSubscribeService; import org.apache.commons.lang3.StringUtils; @@ -18,7 +18,9 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.function.BiFunction; +import java.util.stream.Collectors; /** * @Auther: wangjian @@ -84,12 +86,6 @@ public class ModelSubscribeServiceImpl implements ModelSubscribeService { return modelSubscribeMapper.selectList(queryWrapper); } - @Override - public ModelSubscribeDTO getModelSubscribe(String modelId) { - return null; - } - - /** * 服务列表导航树 * @author huxiuwu @@ -99,26 +95,39 @@ public class ModelSubscribeServiceImpl implements ModelSubscribeService { **/ @Override public ResponseVO modelListNavigation(String searchCondition) { + ModelListNavigationVO modelNavigationVO = new ModelListNavigationVO<>(); //查询模型和模型属性表列表 List modelGroupList = modelSubscribeMapper.selectModelAndModelGroup(); List modelList = modelSubscribeMapper.getModelList(searchCondition); - List groupAndChildrenList = setChildren(modelList,modelGroupList , (org, group) -> - org.getModelGroupCode().equals(group.getModelGroupCode()) - ); - if (CollectionUtil.isEmpty(groupAndChildrenList)){ - return ResponseVO.error(CodeEnum.NO_DATA); - } - List newModelGroupList = TreeUtils.build(groupAndChildrenList); + //统推自建分组 + Map> modelGroupMap = modelList.stream().collect(Collectors.groupingBy(TreeNode::getModelPromotion)); + //统推list + List unifiedPushList = setChildren(HandlingNullPointers(modelGroupMap.get(Constant.Number.ZERO)),modelGroupList ,(org, group) -> + org.getModelGroupCode().equals(group.getModelGroupCode())); + List newModelGroupList = TreeUtils.build(unifiedPushList); + modelNavigationVO.setUnifiedPush(newModelGroupList); + List selfModelBuildList = setChildren(HandlingNullPointers(modelGroupMap.get(Constant.Number.ONE)),modelGroupList ,(org, group) -> + org.getModelGroupCode().equals(group.getModelGroupCode())); //查询组织机构表 List organList = modelSubscribeMapper.selectOrganData(); //将分类放入各自所属于的组织机构下 - List groupOrgList = setChildren(newModelGroupList, organList,(org, group) -> + List groupOrgList = setChildren(selfModelBuildList, organList,(org, group) -> org.getCompanyCode().equals(group.getCompanyCode()) ); - List result = TreeUtils.build(groupOrgList); - return ResponseVO.ok(result); + List selfBuildList = TreeUtils.build(groupOrgList); + modelNavigationVO.setSelfBuilt(selfBuildList); + return ResponseVO.ok(modelNavigationVO); + } + /** + * 处理空指针问题 + * @author huxiuwu + * @date 2022/4/6 + * @param list + * @return List + **/ + private List HandlingNullPointers(List list){ + return list == null ? new LinkedList<>() : list; } - /** * 合并list设置子类 * @param modelGroupList @@ -129,7 +138,7 @@ public class ModelSubscribeServiceImpl implements ModelSubscribeService { private List setChildren(List modelGroupList, List organList, BiFunction function) { organList.forEach(org -> { modelGroupList.forEach(group -> { - if (function.apply(org, group)) { + if (function.apply(org, group) ) { if (org.getChildren() == null) { org.setChildren(new LinkedList<>()); } diff --git a/src/main/resources/mapper/ModelSubscribeMapper.xml b/src/main/resources/mapper/ModelSubscribeMapper.xml index 56daa87..b304e92 100644 --- a/src/main/resources/mapper/ModelSubscribeMapper.xml +++ b/src/main/resources/mapper/ModelSubscribeMapper.xml @@ -18,7 +18,8 @@ 3 as belongLevel, model_name as name , model_code as code, - model_group_code as modelGroupCode + model_group_code as modelGroupCode, + model_promotion as modelPromotion from ocp_model_base @@ -34,7 +35,7 @@ org_id AS code, org_code AS companyCode from - t_public_organization + ocp_organization where trim(org_level) != '' and diff --git a/src/main/resources/mapper/PmsApiAuditMapper.xml b/src/main/resources/mapper/PmsApiAuditMapper.xml index 58b0237..6f712d7 100644 --- a/src/main/resources/mapper/PmsApiAuditMapper.xml +++ b/src/main/resources/mapper/PmsApiAuditMapper.xml @@ -25,7 +25,7 @@ is_delete, apply_version, pre_api_version - from ocp_api_audit + from ocp_api_audit