From 90904b5ec80356548d3617bc1939a3f778cd088d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A3=B4=E6=99=A8=E6=9B=A6?= <1378167589@qq.com> Date: Mon, 28 Mar 2022 14:29:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=9B=AE=E5=BD=95=20?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AE=A1=E7=90=86=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ApiManagementController.java | 111 ++++++++++++++++ .../pms/ocp/controller/CatalogController.java | 40 ++++++ .../pms/ocp/mapper/ApiManagementMapper.java | 19 +++ .../com/pms/ocp/mapper/CatalogMapper.java | 17 +++ .../pms/ocp/model/dto/ApiManagementDto.java | 59 +++++++++ .../com/pms/ocp/model/vo/ApiManagementVO.java | 67 ++++++++++ .../java/com/pms/ocp/model/vo/CatalogVO.java | 34 +++++ .../pms/ocp/service/ApiManagementService.java | 31 +++++ .../com/pms/ocp/service/CatalogService.java | 15 +++ .../ocp/service/impl/ApiManagementImpl.java | 120 ++++++++++++++++++ .../ocp/service/impl/CatalogServiceImpl.java | 27 ++++ .../resources/mapper/ApiManagementMapper.xml | 56 ++++++++ src/main/resources/mapper/CatalogMapper.xml | 13 ++ 13 files changed, 609 insertions(+) create mode 100644 src/main/java/com/pms/ocp/controller/ApiManagementController.java create mode 100644 src/main/java/com/pms/ocp/controller/CatalogController.java create mode 100644 src/main/java/com/pms/ocp/mapper/ApiManagementMapper.java create mode 100644 src/main/java/com/pms/ocp/mapper/CatalogMapper.java create mode 100644 src/main/java/com/pms/ocp/model/dto/ApiManagementDto.java create mode 100644 src/main/java/com/pms/ocp/model/vo/ApiManagementVO.java create mode 100644 src/main/java/com/pms/ocp/model/vo/CatalogVO.java create mode 100644 src/main/java/com/pms/ocp/service/ApiManagementService.java create mode 100644 src/main/java/com/pms/ocp/service/CatalogService.java create mode 100644 src/main/java/com/pms/ocp/service/impl/ApiManagementImpl.java create mode 100644 src/main/java/com/pms/ocp/service/impl/CatalogServiceImpl.java create mode 100644 src/main/resources/mapper/ApiManagementMapper.xml create mode 100644 src/main/resources/mapper/CatalogMapper.xml diff --git a/src/main/java/com/pms/ocp/controller/ApiManagementController.java b/src/main/java/com/pms/ocp/controller/ApiManagementController.java new file mode 100644 index 0000000..38f2ce1 --- /dev/null +++ b/src/main/java/com/pms/ocp/controller/ApiManagementController.java @@ -0,0 +1,111 @@ +package com.pms.ocp.controller; + +import com.pms.ocp.common.utils.ExcelUtils; +import com.pms.ocp.common.utils.FileUtil; +import com.pms.ocp.model.dto.ApiManagementDto; +import com.pms.ocp.model.vo.ApiManagementVO; +import com.pms.ocp.model.vo.ResponseVO; +import com.pms.ocp.service.ApiManagementService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.sql.Timestamp; +import java.time.LocalDate; +import java.util.List; + +/** + * @className: ApiManagementController + * @Description: + * @author: pei-chen-xi + * @DateTime: 2022/3/25 14:28 + */ +@Slf4j +@RequestMapping("/api-management/v1") +@RestController +@Api(tags = "服务管理接口") +public class ApiManagementController { + + @Autowired + private ApiManagementService apiManagementService; + + @ApiOperation(value = "服务管理查询") + @GetMapping("/get/management") + public ResponseVO getManagement(@RequestParam(required = false) String apiName, + @RequestParam(required = false) String apiGroupCode, + @RequestParam(required = false) String apiUrl, + @RequestParam(required = false) Timestamp startTime, + @RequestParam(required = false) Timestamp endTime, + @RequestParam(required = false) Integer pageSize, + @RequestParam(required = false) Integer pageNum + + ) { + + List list=apiManagementService.queryManagement(apiName,apiGroupCode,apiUrl,startTime,endTime,pageSize + , pageNum); + + return ResponseVO.ok(list); + } + + @ApiOperation(value = "服务管理新增") + @PostMapping("/insert/management") + public ResponseVO insertManagement(@RequestBody ApiManagementDto apiManagementDto){ + apiManagementService.insertManagement(apiManagementDto); + return ResponseVO.ok(); + } + + @ApiOperation(value = "服务管理修改") + @PostMapping("/update/management") + public ResponseVO updateManagement(@RequestBody ApiManagementDto apiManagementDto){ + apiManagementService.updateManagement(apiManagementDto); + return ResponseVO.ok(); + } + + @ApiOperation(value = "服务管理删除") + @DeleteMapping("/delete/management") + public ResponseVO deleteManagement(@RequestBody Integer ids){ + apiManagementService.deleteManagement(ids); + return ResponseVO.ok(); + } + + @ApiOperation(value = "导入功能") + @PostMapping("/import") + public ResponseVO ApiImport(@RequestParam(required = false) MultipartFile file, + HttpServletRequest request) throws Exception{ + if (file == null){ + return ResponseVO.ok("导入数据不能为空"); + } + System.out.println(file);//用来检查前端是否把文件传过来 + //解析excel, + List personList = FileUtil.importExcel(file,0,1,ApiManagementVO.class); + System.out.println("导入数据一共【" + personList.size() + "】行"); + apiManagementService.apiImport(personList); + return ResponseVO.ok(); + } + + @ApiOperation("导出功能") + @GetMapping("/export") + public ResponseVO ApiExport(HttpServletResponse response, + @RequestParam(required = false) String apiCodes, + @RequestParam(required = false) String excelFileName) throws Exception { + if (StringUtils.isEmpty(apiCodes)) { + return ResponseVO.ok("请选择你要导出的数据"); + } + List apiManagement = apiManagementService.selectApiExport(apiCodes); + + if (StringUtils.isEmpty(excelFileName)) { + excelFileName = "服务列表-"; + } + + //导出excel + ExcelUtils.exportExcel(response, excelFileName + LocalDate.now(), apiManagement, ApiManagementVO.class); + + return ResponseVO.ok(); + } +} diff --git a/src/main/java/com/pms/ocp/controller/CatalogController.java b/src/main/java/com/pms/ocp/controller/CatalogController.java new file mode 100644 index 0000000..6bca584 --- /dev/null +++ b/src/main/java/com/pms/ocp/controller/CatalogController.java @@ -0,0 +1,40 @@ +package com.pms.ocp.controller; + +import com.pms.ocp.model.vo.CatalogVO; +import com.pms.ocp.model.vo.ResponseVO; +import com.pms.ocp.service.CatalogService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @className: CatalogController + * @Description: + * @author: pei-chen-xi + * @DateTime: 2022/3/27 13:36 + */ +@Slf4j +@RequestMapping("/catalog/v1") +@RestController +@Api(tags = "服务目录接口") +public class CatalogController { + + @Autowired + private CatalogService catalogService; + + @ApiOperation(value = "服务目录查询") + @GetMapping("/get/catalog") + public ResponseVO getCatalog(CatalogVO catalogVO){ + + List list=catalogService.getCatalog(catalogVO); + + return ResponseVO.ok(list); + + } +} diff --git a/src/main/java/com/pms/ocp/mapper/ApiManagementMapper.java b/src/main/java/com/pms/ocp/mapper/ApiManagementMapper.java new file mode 100644 index 0000000..22f0c27 --- /dev/null +++ b/src/main/java/com/pms/ocp/mapper/ApiManagementMapper.java @@ -0,0 +1,19 @@ +package com.pms.ocp.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.pms.ocp.model.entity.OcpApiBase; +import com.pms.ocp.model.vo.ApiManagementVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.sql.Timestamp; +import java.util.List; + +@Mapper +public interface ApiManagementMapper extends BaseMapper { + + List queryApiManagementList(@Param("apiName") String apiName,@Param("apiGroupCode") String apiGroupCode,@Param("apiUrl") String apiUrl,@Param("startTime") Timestamp startTime,@Param("endTime") Timestamp endTime,@Param("pageSize")Integer pageSize,@Param("pageNum") Integer pageNum); + + List selectApiExport(List list); +} diff --git a/src/main/java/com/pms/ocp/mapper/CatalogMapper.java b/src/main/java/com/pms/ocp/mapper/CatalogMapper.java new file mode 100644 index 0000000..f4bc3ca --- /dev/null +++ b/src/main/java/com/pms/ocp/mapper/CatalogMapper.java @@ -0,0 +1,17 @@ +package com.pms.ocp.mapper; + +import com.pms.ocp.model.vo.CatalogVO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @className: CatalogMapper + * @Description: + * @author: pei-chen-xi + * @DateTime: 2022/3/27 13:45 + */ +@Mapper +public interface CatalogMapper { + List getCatalog(CatalogVO catalogVO); +} diff --git a/src/main/java/com/pms/ocp/model/dto/ApiManagementDto.java b/src/main/java/com/pms/ocp/model/dto/ApiManagementDto.java new file mode 100644 index 0000000..f6b9ee2 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/dto/ApiManagementDto.java @@ -0,0 +1,59 @@ +package com.pms.ocp.model.dto; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.pms.ocp.model.entity.OcpApiBase; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.sql.Timestamp; + +/** + * @className: ApiManagementDto + * @Description: + * @author: pei-chen-xi + * @DateTime: 2022/3/25 18:36 + */ +@Data +@AllArgsConstructor +@ApiModel(value = "服务管理dto") +public class ApiManagementDto extends OcpApiBase implements Serializable { + @ApiModelProperty(value = "服务名称") + @Excel(name = "服务名称") + private String apiName; + @ApiModelProperty("服务代码") + @Excel(name = "服务代码") + private String apiCode; + @ApiModelProperty(value = "服务类型") + @Excel(name = "服务类型") + private String apiGroupCode; + @ApiModelProperty(value = "服务简述") + @Excel(name = "服务简述") + private String apiDescription; + @ApiModelProperty(value = "服务所属公司") + @Excel(name = "服务所属公司") + private String ownerCompanyCode; + @ApiModelProperty(value = "服务版本") + @Excel(name = "服务版本") + private String apiVersion; + @ApiModelProperty(value = "服务状态0未发布1已发布") + @Excel(name = "服务状态0未发布1已发布") + private String apiState; + @ApiModelProperty(value = "更新时间") + @Excel(name = "更新时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Timestamp apiCtime; + @ApiModelProperty(value = "修改时间") + @Excel(name = "修改时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Timestamp apiMtime; + + + +} diff --git a/src/main/java/com/pms/ocp/model/vo/ApiManagementVO.java b/src/main/java/com/pms/ocp/model/vo/ApiManagementVO.java new file mode 100644 index 0000000..811f42e --- /dev/null +++ b/src/main/java/com/pms/ocp/model/vo/ApiManagementVO.java @@ -0,0 +1,67 @@ +package com.pms.ocp.model.vo; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.sql.Timestamp; + +/** +* @className: ApiManagementVO +* @Description: +* @author: pei-chen-xi +* @DateTime: 2022/3/25 15:03 +*/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value = "服务管理vo") +public class ApiManagementVO implements Serializable { + @ApiModelProperty(value = "序号") + @Excel(name = "序号") + private String objId; + @ApiModelProperty(value = "服务名称") + @Excel(name = "服务名称") + private String apiName; + @ApiModelProperty(value = "服务类型") + @Excel(name = "服务类型") + private String apiGroupCode; + @ApiModelProperty("服务编码") + @Excel(name = "服务编码") + private String apiCode; + @ApiModelProperty(value = "服务简述") + @Excel(name = "服务简述") + private String apiDescription; + @ApiModelProperty(value = "服务所属公司") + @Excel(name = "服务所属公司") + private String ownerCompanyCode; + @ApiModelProperty(value = "服务版本") + @Excel(name = "服务版本") + private String apiVersion; + @ApiModelProperty(value = "接口地址") + @Excel(name = "接口地址") + private String apiUrl; + @ApiModelProperty(value = "更新时间") + @Excel(name = "更新时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Timestamp apiCtime; +// @ApiModelProperty(value = "数据格式") +// @Excel(name = "数据格式") +// private String apiName; +// @ApiModelProperty(value = "请求方式") +// @Excel(name = "请求方式") +// private String spaceName; +// @ApiModelProperty(value = "调用次数") +// @Excel(name = "调用次数") +// private String apiUrl; +// @ApiModelProperty(value = "更新人员") +// @Excel(name = "更新人员") +// private String apiUserName; +} diff --git a/src/main/java/com/pms/ocp/model/vo/CatalogVO.java b/src/main/java/com/pms/ocp/model/vo/CatalogVO.java new file mode 100644 index 0000000..b129102 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/vo/CatalogVO.java @@ -0,0 +1,34 @@ +package com.pms.ocp.model.vo; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @className: CatalogVO + * @Description: + * @author: pei-chen-xi + * @DateTime: 2022/3/27 13:30 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value = "服务目录vo") +public class CatalogVO implements Serializable { + @ApiModelProperty(value = "服务请求体") + @Excel(name = "服务请求体") + private String apiReq; + + @ApiModelProperty(value = "服务返回体") + @Excel(name = "服务返回体") + private String apiResp; + + @ApiModelProperty(value = "服务编码") + @Excel(name = "服务编码") + private String apiCode; +} diff --git a/src/main/java/com/pms/ocp/service/ApiManagementService.java b/src/main/java/com/pms/ocp/service/ApiManagementService.java new file mode 100644 index 0000000..1e60fd7 --- /dev/null +++ b/src/main/java/com/pms/ocp/service/ApiManagementService.java @@ -0,0 +1,31 @@ +package com.pms.ocp.service; + +import com.pms.ocp.model.dto.ApiManagementDto; +import com.pms.ocp.model.entity.OcpApiBase; +import com.pms.ocp.model.vo.ApiManagementVO; + +import java.sql.Timestamp; +import java.util.List; + +/** + * @className: ApiManagement + * @Description: + * @author: pei-chen-xi + * @DateTime: 2022/3/25 14:32 + */ +public interface ApiManagementService { + List queryManagement(String apiName, String apiGroupCode, String apiUrl, + Timestamp startTime, Timestamp endTime,Integer pageSize, Integer pageNum); + + void insertManagement(ApiManagementDto apiManagementDto); + + void updateManagement(ApiManagementDto apiManagementDto); + + void deleteManagement(Integer ids); + + void apiImport(List personList); + + void save(OcpApiBase ocpApiBase); + + List selectApiExport(String apiCodes); +} diff --git a/src/main/java/com/pms/ocp/service/CatalogService.java b/src/main/java/com/pms/ocp/service/CatalogService.java new file mode 100644 index 0000000..298d935 --- /dev/null +++ b/src/main/java/com/pms/ocp/service/CatalogService.java @@ -0,0 +1,15 @@ +package com.pms.ocp.service; + +import com.pms.ocp.model.vo.CatalogVO; + +import java.util.List; + +/** + * @className: CatalogService + * @Description: + * @author: pei-chen-xi + * @DateTime: 2022/3/27 13:41 + */ +public interface CatalogService { + List getCatalog(CatalogVO catalogVO); +} diff --git a/src/main/java/com/pms/ocp/service/impl/ApiManagementImpl.java b/src/main/java/com/pms/ocp/service/impl/ApiManagementImpl.java new file mode 100644 index 0000000..5bb0a61 --- /dev/null +++ b/src/main/java/com/pms/ocp/service/impl/ApiManagementImpl.java @@ -0,0 +1,120 @@ +package com.pms.ocp.service.impl; + +import com.pms.ocp.mapper.ApiManagementMapper; +import com.pms.ocp.model.dto.ApiManagementDto; +import com.pms.ocp.model.entity.OcpApiBase; +import com.pms.ocp.model.entity.OcpApiExtent; +import com.pms.ocp.model.vo.ApiManagementVO; +import com.pms.ocp.service.ApiManagementService; +import com.pms.ocp.service.OcpApiExtentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; +import java.util.Arrays; +import java.util.List; + +/** + * @className: ApiManagementImpl + * @Description: + * @author: pei-chen-xi + * @DateTime: 2022/3/25 14:32 + */ +@Service +public class ApiManagementImpl implements ApiManagementService { + + @Autowired + private ApiManagementMapper apiManagementMapper; + @Autowired + private OcpApiExtentService ocpApiExtentService; + + /** + * @Description:服务管理查询 + * @param apiName,apiGroupCode,apiUrl,startTime,startTime,endTime,pageSize,pageNum + * @return queryApiManagementList + */ + + @Override + public List queryManagement(String apiName, String apiGroupCode, String apiUrl, Timestamp startTime,Timestamp endTime,Integer pageSize, Integer pageNum) { + + return apiManagementMapper.queryApiManagementList(apiName,apiGroupCode,apiUrl,startTime,endTime,pageSize,pageNum); + } + + /** + * @Description:服务管理新增 + * @param apiManagementDto + * @return + */ + @Override + public void insertManagement(ApiManagementDto apiManagementDto) { + apiManagementMapper.insert(apiManagementDto); + } + + /** + * @Description:服务管理修改 + * @param apiManagementDto + * @return + */ + @Override + public void updateManagement(ApiManagementDto apiManagementDto) { + apiManagementMapper.updateById(apiManagementDto); + } + + /** + * @Description:服务管理删除 + * @param ids + * @return + */ + @Override + public void deleteManagement(Integer ids) { + apiManagementMapper.deleteById(ids); + } + + /** + * @Description:导入数据 + * @param personList + * @return + */ + @Override + public void apiImport(List personList) { + for (ApiManagementVO apiManagementVO :personList){ + String apiName=apiManagementVO.getApiName(); + String apiCode=apiManagementVO.getApiCode(); + String apiGroupCode=apiManagementVO.getApiGroupCode(); + String apiDescription=apiManagementVO.getApiDescription(); + String ownerCompanyCode=apiManagementVO.getOwnerCompanyCode(); + String apiVersion=apiManagementVO.getApiVersion(); + String apiUrl=apiManagementVO.getApiUrl(); + Timestamp apiCtime = apiManagementVO.getApiCtime(); + + OcpApiBase ocpApiBase = new OcpApiBase(); + ocpApiBase.setApiCode(apiCode); + ocpApiBase.setApiGroupCode("1"); + ocpApiBase.setApiName(apiName); + ocpApiBase.setApiDescription(apiDescription); + ocpApiBase.setOwnerCompanyCode(ownerCompanyCode); + ocpApiBase.setApiVersion(apiVersion); + ocpApiBase.setApiUrl(apiUrl); + ocpApiBase.setApiCtime(apiCtime); + this.save(ocpApiBase); + + OcpApiExtent ocpApiExtent = new OcpApiExtent(); + ocpApiExtent.setApiCode(apiCode); + ocpApiExtentService.save(ocpApiExtent); + } + } + + @Override + public void save(OcpApiBase ocpApiBase) { + + } + + @Override + public List selectApiExport(String apiCodes) { + String[] split = apiCodes.split(","); + List list = Arrays.asList(split); + return apiManagementMapper.selectApiExport(list); + } + + +} diff --git a/src/main/java/com/pms/ocp/service/impl/CatalogServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/CatalogServiceImpl.java new file mode 100644 index 0000000..2fc92e6 --- /dev/null +++ b/src/main/java/com/pms/ocp/service/impl/CatalogServiceImpl.java @@ -0,0 +1,27 @@ +package com.pms.ocp.service.impl; + +import com.pms.ocp.mapper.CatalogMapper; +import com.pms.ocp.model.vo.CatalogVO; +import com.pms.ocp.service.CatalogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @className: CatalogService + * @Description: + * @author: pei-chen-xi + * @DateTime: 2022/3/27 13:41 + */ +@Service +public class CatalogServiceImpl implements CatalogService { + + @Autowired + private CatalogMapper catalogMapper; + @Override + public List getCatalog(CatalogVO catalogVO) { + + return catalogMapper.getCatalog(catalogVO); + } +} diff --git a/src/main/resources/mapper/ApiManagementMapper.xml b/src/main/resources/mapper/ApiManagementMapper.xml new file mode 100644 index 0000000..9b9143c --- /dev/null +++ b/src/main/resources/mapper/ApiManagementMapper.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/CatalogMapper.xml b/src/main/resources/mapper/CatalogMapper.xml new file mode 100644 index 0000000..dc45947 --- /dev/null +++ b/src/main/resources/mapper/CatalogMapper.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file -- 2.26.0