From bce87e3cd9746fb8d6ab2aacf7e141ae9898c1db Mon Sep 17 00:00:00 2001 From: liukai <35074062@qq.com> Date: Tue, 29 Mar 2022 14:55:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PmsApiDetailsController.java | 10 ++- .../pms/ocp/mapper/OcpApiGroupVoMapper.java | 11 +++ .../ocp/mapper/PmsApiManagementMapper.java | 2 + .../ocp/model/entity/PmsApiManagement.java | 18 +++-- .../com/pms/ocp/model/vo/OcpApiGroupVo.java | 75 +++++++++++++++++++ .../ocp/service/PmsApiManagementService.java | 6 ++ .../impl/PmsApiManagementServiceImpl.java | 69 ++++++++++++++--- .../resources/mapper/OcpApiGroupMapper.xml | 3 - .../mapper/PmsApiManagementMapper.xml | 70 +++-------------- 9 files changed, 186 insertions(+), 78 deletions(-) create mode 100644 src/main/java/com/pms/ocp/mapper/OcpApiGroupVoMapper.java create mode 100644 src/main/java/com/pms/ocp/model/vo/OcpApiGroupVo.java diff --git a/src/main/java/com/pms/ocp/controller/PmsApiDetailsController.java b/src/main/java/com/pms/ocp/controller/PmsApiDetailsController.java index a4fdfb9..455dec5 100644 --- a/src/main/java/com/pms/ocp/controller/PmsApiDetailsController.java +++ b/src/main/java/com/pms/ocp/controller/PmsApiDetailsController.java @@ -4,6 +4,8 @@ package com.pms.ocp.controller; import com.github.pagehelper.PageInfo; import com.pms.ocp.model.ResponseResult; import com.pms.ocp.model.entity.*; +import com.pms.ocp.model.vo.OcpApiGroupVo; +import com.pms.ocp.model.vo.OcpModelGroupVO; import com.pms.ocp.model.vo.ResponseVO; import com.pms.ocp.service.*; import io.swagger.annotations.Api; @@ -92,7 +94,7 @@ public class PmsApiDetailsController { } @ApiOperation("服务分类") - @PostMapping("/getPamm") + @PostMapping("province/provinceList") public ResponseVO> getPamm(@RequestBody PmsApiManagement pmsApiManagement) { return pmsApiManagementService.getPammList(pmsApiManagement); } @@ -128,5 +130,11 @@ public class PmsApiDetailsController { return pmsApiManagementService.updateApi(pmsApiMangageApi); } + @ApiOperation("模型分类导航") + @GetMapping("/navigation") + public ResponseVO> getApiNavigation() { + return pmsApiManagementService.getApiNavigation(); + } + } diff --git a/src/main/java/com/pms/ocp/mapper/OcpApiGroupVoMapper.java b/src/main/java/com/pms/ocp/mapper/OcpApiGroupVoMapper.java new file mode 100644 index 0000000..2dbd7ef --- /dev/null +++ b/src/main/java/com/pms/ocp/mapper/OcpApiGroupVoMapper.java @@ -0,0 +1,11 @@ +package com.pms.ocp.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.pms.ocp.model.vo.OcpApiGroupVo; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface OcpApiGroupVoMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/com/pms/ocp/mapper/PmsApiManagementMapper.java b/src/main/java/com/pms/ocp/mapper/PmsApiManagementMapper.java index 9e8b65e..a895423 100644 --- a/src/main/java/com/pms/ocp/mapper/PmsApiManagementMapper.java +++ b/src/main/java/com/pms/ocp/mapper/PmsApiManagementMapper.java @@ -28,6 +28,8 @@ public interface PmsApiManagementMapper extends BaseMapper { int updateOag(PmsApiMangageApi pmsApiMangageApi); + List getList(PmsApiManagement pmsApiManagement); + diff --git a/src/main/java/com/pms/ocp/model/entity/PmsApiManagement.java b/src/main/java/com/pms/ocp/model/entity/PmsApiManagement.java index 19d7975..a55fa4e 100644 --- a/src/main/java/com/pms/ocp/model/entity/PmsApiManagement.java +++ b/src/main/java/com/pms/ocp/model/entity/PmsApiManagement.java @@ -125,17 +125,25 @@ public class PmsApiManagement { private String companyCode; @ApiModelProperty("当前页") - private Integer currentPage; + private Integer pageNum; @ApiModelProperty("每页条数") private Integer pageSize; - public Integer getCurrentPage() { - return currentPage; + public String getApiGroupCode() { + return apiGroupCode; } - public void setCurrentPage(Integer currentPage) { - this.currentPage = currentPage; + public void setApiGroupCode(String apiGroupCode) { + this.apiGroupCode = apiGroupCode; + } + + public Integer getPageNum() { + return pageNum; + } + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; } public Integer getPageSize() { diff --git a/src/main/java/com/pms/ocp/model/vo/OcpApiGroupVo.java b/src/main/java/com/pms/ocp/model/vo/OcpApiGroupVo.java new file mode 100644 index 0000000..aef9305 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/vo/OcpApiGroupVo.java @@ -0,0 +1,75 @@ +package com.pms.ocp.model.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.sql.Timestamp; +import java.util.List; + +@Data +@Accessors(chain = true) +@TableName("ocp_api_group") +@ApiModel("服务分类表") +public class OcpApiGroupVo { + + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty("主键ID") + private String objId; + + @ApiModelProperty("分类编码") + private String apiGroupCode; + + @ApiModelProperty("分类名称") + private String apiGroupName; + + @ApiModelProperty("推广类型0统推,1自建") + private long apiGroupPromotionType; + + @ApiModelProperty("分类所属公司") + private String apiGroupCompanyCode; + + @ApiModelProperty("分类版本") + private String apiGroupVersion; + + @ApiModelProperty("显示顺序") + private long apiGroupOrderNo; + + @ApiModelProperty("提交人id") + private String apiGroupUserId; + + @ApiModelProperty("提交人姓名") + private String apiGroupUserName; + + @ApiModelProperty("创建时间") + private Timestamp apiGroupCtime; + + @ApiModelProperty("修改时间") + private Timestamp apiGroupMtime; + + @ApiModelProperty("上级code") + private String apiGroupPcode; + + + @ApiModelProperty("是否删除0-否1-是") + private long isDelete; + + @ApiModelProperty("分层树层级 1中台层 2中心层 3 服务组层 4服务层 ") + private String apiGroupLevel; + + + @ApiModelProperty("上级分类名称") + @TableField(exist = false) + private String classIfy; + + @TableField(exist = false) + @ApiModelProperty(value = "子类集合") + private List childrenList; + + +} \ No newline at end of file diff --git a/src/main/java/com/pms/ocp/service/PmsApiManagementService.java b/src/main/java/com/pms/ocp/service/PmsApiManagementService.java index 0595f74..f9bcf2d 100644 --- a/src/main/java/com/pms/ocp/service/PmsApiManagementService.java +++ b/src/main/java/com/pms/ocp/service/PmsApiManagementService.java @@ -6,8 +6,12 @@ import com.github.pagehelper.PageInfo; import com.pms.ocp.model.ResponseResult; import com.pms.ocp.model.entity.PmsApiManagement; import com.pms.ocp.model.entity.PmsApiMangageApi; +import com.pms.ocp.model.vo.OcpApiGroupVo; +import com.pms.ocp.model.vo.OcpModelGroupVO; import com.pms.ocp.model.vo.ResponseVO; +import java.util.List; + public interface PmsApiManagementService extends IService { @@ -27,6 +31,8 @@ public interface PmsApiManagementService extends IService { ResponseResult updateApi(PmsApiMangageApi pmsApiMangageApi); + ResponseVO> getApiNavigation(); + diff --git a/src/main/java/com/pms/ocp/service/impl/PmsApiManagementServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/PmsApiManagementServiceImpl.java index 28bd1cf..9344e67 100644 --- a/src/main/java/com/pms/ocp/service/impl/PmsApiManagementServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/PmsApiManagementServiceImpl.java @@ -1,25 +1,24 @@ package com.pms.ocp.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.pms.ocp.common.constants.Constant; +import com.pms.ocp.common.constants.CodeEnum; import com.pms.ocp.common.utils.GUIDGenerator; -import com.pms.ocp.mapper.OcpApiBaseMapper; -import com.pms.ocp.mapper.OcpApiGroupMapper; -import com.pms.ocp.mapper.PmsApiManagementMapper; -import com.pms.ocp.mapper.PmsApiModelRelMapper; +import com.pms.ocp.mapper.*; import com.pms.ocp.model.CommonCode; import com.pms.ocp.model.ResponseResult; import com.pms.ocp.model.entity.*; +import com.pms.ocp.model.vo.OcpApiGroupVo; import com.pms.ocp.model.vo.ResponseVO; import com.pms.ocp.service.PmsApiManagementService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; +import java.util.*; @Service @@ -37,15 +36,18 @@ public class PmsApiManagementServiceImpl extends ServiceImpl> getPammList(PmsApiManagement pmsApiManagement) { - if (pmsApiManagement.getCurrentPage() ==null || pmsApiManagement.getPageSize() == null) { + if (pmsApiManagement.getPageNum() ==null || pmsApiManagement.getPageSize() == null) { return ResponseVO.error("分页参数不能为空"); } - PageHelper.startPage(pmsApiManagement.getCurrentPage(),pmsApiManagement.getPageSize()); - List pammList = pmsApiManagementMapper.getPammList(pmsApiManagement); + PageHelper.startPage(pmsApiManagement.getPageNum(),pmsApiManagement.getPageSize()); + List pammList = pmsApiManagementMapper.getList(pmsApiManagement); PageInfo pageInfo = new PageInfo<>(pammList); return ResponseVO.ok(pageInfo); } @@ -97,6 +99,55 @@ public class PmsApiManagementServiceImpl extends ServiceImpl> getApiNavigation() { + //根据是否传入搜索条件创建构造器进行查询 + List apiTypeList = this.selectByCondition(null, null); + if (CollectionUtil.isEmpty(apiTypeList)) { + return ResponseVO.error(CodeEnum.NO_DATA); + } + //对模型分类信息进行处理 + List resultList = this.build(apiTypeList); + return ResponseVO.ok(resultList); + } + + + private List selectByCondition(String... searchCondition) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + //根据是否传入搜索条件创建构造器进行查询 + queryWrapper.eq(StringUtils.isNotEmpty(searchCondition[0]), "api_group_pcode", searchCondition[0]) + .like(StringUtils.isNotEmpty(searchCondition[1]),"api_group_name", searchCondition[1]); + return ocpApiGroupVoMapper.selectList(queryWrapper); + } + + private List build(List treeNodes) { + List result = new ArrayList<>(); + //list转map =>将每个对象的id作为key,自己作为value. + Map nodeMap = new LinkedHashMap<>(treeNodes.size()); + for (OcpApiGroupVo treeNode : treeNodes) { + nodeMap.put(treeNode.getApiGroupCode(), treeNode); + } + for (OcpApiGroupVo node : nodeMap.values()) { + //得到自己的父类 + OcpApiGroupVo parent = nodeMap.get(node.getApiGroupPcode()); + if (parent != null && (node.getApiGroupPcode().equals(parent.getApiGroupCode())) + && (!"".equals(node.getApiGroupPcode())|| !"".equals(parent.getApiGroupCode())) + && !parent.getApiGroupCode().equals(node.getApiGroupCode())) { + //防止每次都new list或者只是使用该对象就new对象浪费内存或者覆盖上一次记录 + if (parent.getChildrenList() == null) { + parent.setChildrenList(new LinkedList<>()); + } + //设置上级父类名称 + node.setClassIfy(parent.getApiGroupName()); + //说明他有父类其下子类都需要加一级 + parent.getChildrenList().add(node); + continue; + } + result.add(node); + } + return result; + } + private QueryWrapper getCondition(String apiCode){ QueryWrapper qw = new QueryWrapper<>(); diff --git a/src/main/resources/mapper/OcpApiGroupMapper.xml b/src/main/resources/mapper/OcpApiGroupMapper.xml index 91afbef..485a79d 100644 --- a/src/main/resources/mapper/OcpApiGroupMapper.xml +++ b/src/main/resources/mapper/OcpApiGroupMapper.xml @@ -86,9 +86,6 @@ and oab.api_unit = #{apiUnit} - - and oab.api_name = #{apiName} - and oab.api_promotion = #{apiPromotion} diff --git a/src/main/resources/mapper/PmsApiManagementMapper.xml b/src/main/resources/mapper/PmsApiManagementMapper.xml index 4034adf..08569c9 100644 --- a/src/main/resources/mapper/PmsApiManagementMapper.xml +++ b/src/main/resources/mapper/PmsApiManagementMapper.xml @@ -3,66 +3,10 @@ + select * from ocp_api_group oag + LEFT JOIN ocp_api_base oab on + oag.api_group_code = oab.api_group_code + where oag.api_group_code = #{apiGroupCode} + -- 2.26.0