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 a0aa1cefc2fd50d3b6ef881580235c4cefd817c4..5a80f4d27a987f60d22a5e4b6bf1d8f2fa5c76bf 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 0000000000000000000000000000000000000000..4b69d4068d7c62e1afa1b484b5ed933b3075eee3 --- /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 a9140800b162fcb6de0082272533a8c2ad301158..cf2bdc8c68f82377b4e34708888cef00cbd75333 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 8eb187c68631e4c7e2f487c3f65c6f0b8682988a..c8299c4e9337cbc8228b596afd6c97e4c8dcb6ac 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 56daa87dfd0426216469bf6ed92973fd03e87746..b304e92f03c513d4070d11a5951a386a3e482f99 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 58b023757ab58beab91d3e7e1083cacb3defcc72..6f712d7ce28258696d32f157e9933ccc39659e4d 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