diff --git a/src/main/java/com/pms/ocp/controller/PmsApiDetailsController.java b/src/main/java/com/pms/ocp/controller/PmsApiDetailsController.java index a4fdfb9538b423af877795909fd3535fd090fc4b..455dec5fa93ce37c3c7a56e3f8ee48212672f93b 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 0000000000000000000000000000000000000000..2dbd7ef8307653c0177d08216178928488451942 --- /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 9e8b65ea26a50e254e0fb7e4b6034613b40ef71c..a8954231b86efd7fb10f5f59640c7d79718b72d4 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 19d7975ad86eeb5f2e6219acd33b4f618ba9390f..a55fa4ea40be2dcd5f4e89fda8a3b2bb13878b7c 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 0000000000000000000000000000000000000000..aef9305c622c37fe6278451ba96f2264dc55849d --- /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 0595f74a5668f7bde543b9212fe7e49efddbd180..f9bcf2db56b01c31f68426d2c7962a1d7ae52819 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 28bd1cf5ee43329417cbe81f81b74c9bfdb0dba9..9344e671955bb1a8738fd6f3a9e4ac5e6e45bf50 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 91afbeffa8783426bbf3b7ccd17a2690edc7d1e1..485a79d98b5ad18c5be186886522a3fd74c11eca 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 4034adfe947b09765cba66c54716816648faffe3..08569c93a0b45eac02dcccca6b4b17a1f4b08847 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} +