Commit 90904b5e authored by 裴晨曦's avatar 裴晨曦

服务目录 服务管理更新

parent 774014ad
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<ApiManagementVO> 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<ApiManagementVO> 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<ApiManagementVO> apiManagement = apiManagementService.selectApiExport(apiCodes);
if (StringUtils.isEmpty(excelFileName)) {
excelFileName = "服务列表-";
}
//导出excel
ExcelUtils.exportExcel(response, excelFileName + LocalDate.now(), apiManagement, ApiManagementVO.class);
return ResponseVO.ok();
}
}
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<CatalogVO> list=catalogService.getCatalog(catalogVO);
return ResponseVO.ok(list);
}
}
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<OcpApiBase> {
List<ApiManagementVO> 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<ApiManagementVO> selectApiExport(List<String> list);
}
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<CatalogVO> getCatalog(CatalogVO catalogVO);
}
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;
}
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;
}
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;
}
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<ApiManagementVO> 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<ApiManagementVO> personList);
void save(OcpApiBase ocpApiBase);
List<ApiManagementVO> selectApiExport(String apiCodes);
}
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<CatalogVO> getCatalog(CatalogVO catalogVO);
}
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<ApiManagementVO> 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<ApiManagementVO> 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<ApiManagementVO> selectApiExport(String apiCodes) {
String[] split = apiCodes.split(",");
List<String> list = Arrays.asList(split);
return apiManagementMapper.selectApiExport(list);
}
}
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<CatalogVO> getCatalog(CatalogVO catalogVO) {
return catalogMapper.getCatalog(catalogVO);
}
}
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pms.ocp.mapper.ApiManagementMapper">
<resultMap id="oabMap" type="com.pms.ocp.model.dto.ApiManagementDto">
<result property="objId" column="obj_id"/>
<result property="apiCode" column="api_code"/>
<result property="apiName" column="api_name"/>
<result property="apiDescription" column="api_description"/>
<result property="ownerCompanyCode" column="owner_company_code"/>
<result property="apiVersion" column="api_version"/>
<result property="apiState" column="api_state"/>
<result property="apiCtime" column="api_ctime"/>
<result property="apiMtime" column="api_mtime"/>
<result property="apiUrl" column="api_url"/>
<result property="apiGroupCode" column="api_group_code"/>
</resultMap>
<select id="queryApiManagementList" resultType="com.pms.ocp.model.vo.ApiManagementVO">
select ab.obj_id,ab.api_name,ab.api_description,ab.owner_company_code,ab.api_version,ab.api_ctime,ab.api_mtime,ae.api_state
from ocp_api_base ab left join ocp_api_extent ae ON ab.api_code = ae.api_code
<where>
<if test="apiName !=null and apiName != '' ">
and api_name like concat('%',#{apiName},'%')
</if>
<if test="apiGroupCode !=null and apiGroupCode != '' ">
and api_group_code = #{apiGroupCode}
</if>
<if test="apiUrl !=null and apiUrl != '' ">
and api_url like concat('%',#{apiUrl},'%')
</if>
<if test="startTime !=null ">
<![CDATA[
and api_ctime >= #{startTime}
]]>
</if>
<if test="endTime !=null ">
<![CDATA[
and api_ctime <= #{endTime}
]]>
</if>
</where>
limit #{pageNum} offset #{pageSize}
</select>
<select id="selectApiExport" resultType="com.pms.ocp.model.vo.ApiManagementVO">
SELECT ab.api_name,ab.api_description,ab.owner_company_code,ab.api_version,
ab.api_ctime,ab.api_mtime,ab.api_code,ae.api_state,ab.api_url,ab.api_group_code
FROM ocp_api_base ab JOIN ocp_api_extent ae ON ae.api_code = ab.api_code
where ab.api_code in
<foreach collection="list" index="index" item="apiCode" open="(" separator="," close=")">
#{apiCode}
</foreach>
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pms.ocp.mapper.CatalogMapper">
<select id="getCatalog" resultType="com.pms.ocp.model.vo.CatalogVO">
select api_req from ocp_api_base
<where>
<if test="apiCode !=null and apiCode !='' ">
and api_code = #{apiCode}
</if>
</where>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment