Commit bced7623 authored by cuijun's avatar cuijun

Merge remote-tracking branch 'origin/dev' into dev

parents 12689c7a 6ba8ad14
package com.upyuns.platform.rs.website.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
@Data
public class ApiDocDTO extends PageParam {
private String keyWord;
}
package com.upyuns.platform.rs.website.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
*
* @TableName api_custom_node
*/
@Table(name="api_custom_node")
@Data
public class ApiCustomNode implements Serializable {
/**
* 主键自增ID
*/
@Id
private Integer id;
/**
* api_doc主键ID
*/
@Column(name = "doc_id")
private Long docId;
/**
* 父文件夹ID
*/
@Column(name = "parent_id")
private Long parentId;
/**
* 节点类型 0=目录 1=接口
*/
@Column(name = "node_type")
private Byte nodeType;
/**
* 节点名称
*/
@Column(name = "node_name")
private String nodeName;
/**
* 节点说明
*/
@Column(name = "node_desc")
private String nodeDesc;
/**
* 路由
*/
@Column(name = "path")
private String path;
/**
* 节点顺序
*/
@Column(name = "seq_no")
private Integer seqNo;
/**
* 响应结果
*/
@Column(name = "respond_json")
private String respondJson;
/**
* 状态:1.上架 2.下架
*/
private Byte status;
/**
* 是否删除:0、否, 1、是
*/
@Column(name = "is_del")
private Byte isDel;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 创建人
*/
@Column(name = "create_user")
private Long createUser;
/**
* 更新时间
*/
@Column(name = "last_update_time")
private Date lastUpdateTime;
/**
* 更新人
*/
@Column(name = "last_update_user")
private Long lastUpdateUser;
private static final long serialVersionUID = 1L;
}
package com.upyuns.platform.rs.website.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
*
* @TableName api_custom_params
*/
@Table(name="api_custom_params")
@Data
public class ApiCustomParams implements Serializable {
/**
* 主键自增ID
*/
@Id
private Integer id;
/**
* api_doc主键ID
*/
@Column(name = "doc_id")
private Long docId;
/**
* 节点ID
*/
@Column(name = "node_id")
private Long nodeId;
/**
* 请求方式:get、head、post、put、patch、delete、options、trace
*/
private String method;
/**
* 接口url
*/
@Column(name = "api_url")
private String apiUrl;
/**
* form参数
*/
@Column(name = "form_data")
private String formData;
/**
* body参数
*/
@Column(name = "body_data")
private String bodyData;
/**
* header参数
*/
@Column(name = "header_data")
private String headerData;
/**
* cookie参数
*/
@Column(name = "cookie_data")
private String cookieData;
/**
* 状态:1.上架 2.下架
*/
private Byte status;
/**
* 是否删除:0、否, 1、是
*/
@Column(name = "is_del")
private Byte isDel;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 创建人
*/
@Column(name = "create_user")
private Long createUser;
/**
* 更新时间
*/
@Column(name = "last_update_time")
private Date lastUpdateTime;
/**
* 更新人
*/
@Column(name = "last_update_user")
private Long lastUpdateUser;
private static final long serialVersionUID = 1L;
}
package com.upyuns.platform.rs.website.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
*
* @TableName api_doc
*/
@Table(name="api_doc")
@Data
public class ApiDoc implements Serializable {
/**
*
*/
@Id
private Integer id;
/**
* 文档名称
*/
private String name;
/**
* 文档类型
*/
@Column(name = "doc_type")
private Byte docType;
/**
* 文档URL地址
*/
@Column(name = "doc_url")
private String docUrl;
/**
* 路由
*/
@Column(name = "path")
private String path;
/**
* 文档json内容
*/
@Column(name = "json_content")
private String jsonContent;
/**
* 重写的域名
*/
@Column(name = "rewrite_domain")
private String rewriteDomain;
/**
* 是否开放访问 0=否 1=是
*/
@Column(name = "open_visit")
private Byte openVisit;
/**
* 开放文档UUID
*/
@Column(name = "share_uuid")
private String shareUuid;
/**
* 开放文档使用说明
*/
@Column(name = "share_instruction")
private String shareInstruction;
/**
* 状态:1.上架 2.下架
*/
private Byte status;
/**
* 是否删除:0、否, 1、是
*/
@Column(name = "is_del")
private Byte isDel;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 创建人
*/
@Column(name = "create_user")
private Long createUser;
/**
* 更新时间
*/
@Column(name = "last_update_time")
private Date lastUpdateTime;
/**
* 更新人
*/
@Column(name = "last_update_user")
private Long lastUpdateUser;
private static final long serialVersionUID = 1L;
}
package com.upyuns.platform.rs.website.vo;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import java.util.Date;
@Data
public class ApiCustomNodeVo {
private String method;
/**
* 主键自增ID
*/
@Id
private Integer id;
/**
* api_doc主键ID
*/
@Column(name = "doc_id")
private Long docId;
/**
* 父文件夹ID
*/
@Column(name = "parent_id")
private Long parentId;
/**
* 节点类型 0=目录 1=接口
*/
@Column(name = "node_type")
private Byte nodeType;
/**
* 节点名称
*/
@Column(name = "node_name")
private String nodeName;
/**
* 节点说明
*/
@Column(name = "node_desc")
private String nodeDesc;
/**
* 路由
*/
@Column(name = "path")
private String path;
/**
* 节点顺序
*/
@Column(name = "seq_no")
private Integer seqNo;
/**
* 响应结果
*/
@Column(name = "respond_json")
private String respondJson;
/**
* 状态:1.上架 2.下架
*/
private Byte status;
/**
* 是否删除:0、否, 1、是
*/
@Column(name = "is_del")
private Byte isDel;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 创建人
*/
@Column(name = "create_user")
private Long createUser;
/**
* 更新时间
*/
@Column(name = "last_update_time")
private Date lastUpdateTime;
/**
* 更新人
*/
@Column(name = "last_update_user")
private Long lastUpdateUser;
}
package com.upyuns.platform.rs.website.vo;
import com.upyuns.platform.rs.website.entity.ApiCustomNode;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import java.util.List;
@Data
public class ApiDocTreeVo {
private Integer id;
/**
* 文档名称
*/
private String name;
/**
* 路由
*/
private String path;
/**
* 文档类型
*/
private Byte docType;
/**
* 开放文档使用说明
*/
private String shareInstruction;
/**
* 状态:1.上架 2.下架
*/
private Byte status;
/**
* API总数
*/
private Integer apiCount;
private List<ApiCustomNodeVo> nodeVoList;
}
package com.upyuns.platform.rs.website.biz;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.upyuns.platform.rs.website.entity.ApiCustomNode;
import com.upyuns.platform.rs.website.entity.ApiCustomParams;
import com.upyuns.platform.rs.website.entity.ApiDoc;
import com.upyuns.platform.rs.website.mapper.ApiCustomNodeMapper;
import com.upyuns.platform.rs.website.mapper.ApiCustomParamsMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.util.Objects;
/**
*
*/
@Service
public class ApiCustomNodeBiz extends BaseBiz<ApiCustomNodeMapper, ApiCustomNode> {
@Autowired
private ApiDocBiz apiDocBiz;
@Resource
private ApiCustomParamsMapper apiCustomParamsMapper;
public ObjectRestResponse getListByAPiDocId(Integer id) {
ApiDoc apiDoc = apiDocBiz.selectById(id);
if (apiDoc == null || Objects.equals(apiDoc.getIsDel(),1)) {
return ObjectRestResponse.succ("文档不存在");
}
Example example = new Example(ApiCustomNode.class);
example.createCriteria()
.andEqualTo("docId",apiDoc.getId())
.andEqualTo("isDel", 0);
example.setOrderByClause("seq_no desc");
example.excludeProperties("respondJson");
return ObjectRestResponse.succ(mapper.selectByExample(example));
}
public ObjectRestResponse getListById(Integer id) {
Example exampleNode = new Example(ApiCustomNode.class);
exampleNode.createCriteria()
.andEqualTo("id",id)
.andEqualTo("isDel",0);
ApiCustomNode node = mapper.selectOneByExample(exampleNode);
Example exampleParams = new Example(ApiCustomParams.class);
exampleParams.createCriteria()
.andEqualTo("docId",node.getDocId())
.andEqualTo("isDel",0)
.andEqualTo("nodeId",node.getId());
ApiCustomParams apiCustomParams = apiCustomParamsMapper.selectOneByExample(exampleParams);
JSONObject result = new JSONObject();
result.put("apiInfo",node);
result.put("apiUrlInfo",apiCustomParams);
return ObjectRestResponse.succ(result);
}
}
package com.upyuns.platform.rs.website.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.upyuns.platform.rs.website.entity.ApiCustomParams;
import com.upyuns.platform.rs.website.mapper.ApiCustomParamsMapper;
import org.springframework.stereotype.Service;
/**
*
*/
@Service
public class ApiCustomParamsBiz extends BaseBiz<ApiCustomParamsMapper, ApiCustomParams> {
}
package com.upyuns.platform.rs.website.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.upyuns.platform.rs.website.dto.ApiDocDTO;
import com.upyuns.platform.rs.website.entity.ApiCustomNode;
import com.upyuns.platform.rs.website.entity.ApiCustomParams;
import com.upyuns.platform.rs.website.entity.ApiDoc;
import com.upyuns.platform.rs.website.entity.OrderItem;
import com.upyuns.platform.rs.website.mapper.ApiCustomNodeMapper;
import com.upyuns.platform.rs.website.mapper.ApiCustomParamsMapper;
import com.upyuns.platform.rs.website.mapper.ApiDocMapper;
import com.upyuns.platform.rs.website.vo.ApiCustomNodeVo;
import com.upyuns.platform.rs.website.vo.ApiDocTreeVo;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
*
*/
@Service
public class ApiDocBiz extends BaseBiz<ApiDocMapper, ApiDoc> {
@Resource
private ApiCustomNodeMapper nodeMapper;
@Resource
private ApiCustomParamsMapper paramsMapper;
public ObjectRestResponse getList(ApiDocDTO apiDocDTO) {
Query query = new Query(apiDocDTO);
Example exampleNode = new Example(ApiCustomNode.class);
Example exampleParams = new Example(ApiCustomParams.class);
List<ApiDocTreeVo> docTreeVoList = mapper.selectList(query.getSuper());
for (ApiDocTreeVo apiDocTreeVo : docTreeVoList) {
exampleNode.clear();
if (StringUtils.isNotBlank(apiDocDTO.getKeyWord())) {
exampleNode.createCriteria()
.andEqualTo("isDel", 0)
.andLike("nodeName", '%' + apiDocDTO.getKeyWord() + '%')
.andEqualTo("docId", apiDocTreeVo.getId());
} else {
exampleNode.createCriteria()
.andEqualTo("isDel", 0)
.andEqualTo("docId", apiDocTreeVo.getId());
}
exampleNode.excludeProperties("respondJson");
List<ApiCustomNodeVo> nodeVos = nodeMapper.selectByExample(exampleNode).stream().map(apiCustomNode -> {
ApiCustomNodeVo nodeVoss = new ApiCustomNodeVo();
BeanUtils.copyProperties(apiCustomNode, nodeVoss);
exampleParams.clear();
exampleParams.createCriteria()
.andEqualTo("nodeId", apiCustomNode.getId())
.andEqualTo("isDel", 0)
.andEqualTo("docId", apiDocTreeVo.getId());
ApiCustomParams params = paramsMapper.selectOneByExample(exampleParams);
if (Objects.isNull(params)) {
return nodeVoss;
}
nodeVoss.setMethod(params.getMethod());
return nodeVoss;
}).collect(Collectors.toList());
apiDocTreeVo.setApiCount(nodeVos.size());
apiDocTreeVo.setNodeVoList(nodeVos);
}
return ObjectRestResponse.succ(docTreeVoList);
}
}
...@@ -40,7 +40,7 @@ public class ServiceCapabilityController extends BaseController<ServiceCapabilit ...@@ -40,7 +40,7 @@ public class ServiceCapabilityController extends BaseController<ServiceCapabilit
@GetMapping(value = "/app/unauth") @GetMapping(value = "/app/unauth")
@IgnoreUserToken @IgnoreUserToken
public ObjectRestResponse get() { public ObjectRestResponse get() {
return ObjectRestResponse.succ(baseBiz.get()); return baseBiz.get();
} }
......
package com.upyuns.platform.rs.website.controller;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.upyuns.platform.rs.website.biz.ApiCustomNodeBiz;
import com.upyuns.platform.rs.website.biz.ApiDocBiz;
import com.upyuns.platform.rs.website.entity.ApiCustomNode;
import com.upyuns.platform.rs.website.entity.ApiDoc;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("apiCustomNode")
public class apiCustomNodeController extends BaseController<ApiCustomNodeBiz, ApiCustomNode> {
/**
* 根据文档id返回接口列表
* @param id
* @return
*/
@GetMapping(value = "/app/unauth/{id}/list")
@IgnoreUserToken
public ObjectRestResponse getListByAPiDocId(@PathVariable Integer id) {
return baseBiz.getListByAPiDocId(id);
}
/**
* 接口详情
* @param id
* @return
*/
@GetMapping(value = "/app/unauth/{id}")
@IgnoreUserToken
public ObjectRestResponse getListById(@PathVariable Integer id) {
return baseBiz.getListById(id);
}
}
package com.upyuns.platform.rs.website.controller;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.upyuns.platform.rs.website.biz.ApiDocBiz;
import com.upyuns.platform.rs.website.biz.BannerBiz;
import com.upyuns.platform.rs.website.dto.ApiDocDTO;
import com.upyuns.platform.rs.website.entity.ApiDoc;
import com.upyuns.platform.rs.website.entity.Banner;
import com.upyuns.platform.rs.website.entity.TModel;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("apiDoc")
public class apiDocController extends BaseController<ApiDocBiz, ApiDoc> {
// /**
// * 查询文档列表
// * @return
// */
// @GetMapping(value = "/app/unauth/addUpdate/tree")
// @IgnoreUserToken
// public ObjectRestResponse getTree() {
// return baseBiz.getTree();
// }
@PostMapping(value = "/app/unauth/list")
@IgnoreUserToken
public ObjectRestResponse list(@RequestBody ApiDocDTO apiDocDTO) {
return baseBiz.getList(apiDocDTO);
}
}
package com.upyuns.platform.rs.website.mapper;
import com.upyuns.platform.rs.website.entity.ApiCustomNode;
import tk.mybatis.mapper.common.Mapper;
/**
* @Entity generator.domain.ApiCustomNode
*/
public interface ApiCustomNodeMapper extends Mapper<ApiCustomNode> {
}
package com.upyuns.platform.rs.website.mapper;
import com.upyuns.platform.rs.website.entity.ApiCustomParams;
import tk.mybatis.mapper.common.Mapper;
/**
* @Entity generator.domain.ApiCustomParams
*/
public interface ApiCustomParamsMapper extends Mapper<ApiCustomParams> {
}
package com.upyuns.platform.rs.website.mapper;
import com.github.wxiaoqi.security.common.util.Query;
import com.upyuns.platform.rs.website.entity.ApiDoc;
import com.upyuns.platform.rs.website.vo.ApiDocTreeVo;
import tk.mybatis.mapper.common.Mapper;
import java.util.LinkedHashMap;
import java.util.List;
/**
* @Entity generator.domain.ApiDoc
*/
public interface ApiDocMapper extends Mapper<ApiDoc> {
List<ApiDocTreeVo> selectList(LinkedHashMap<String, Object> aSuper);
}
<?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.upyuns.platform.rs.website.mapper.ApiCustomNodeMapper">
<resultMap id="BaseResultMap" type="com.upyuns.platform.rs.website.entity.ApiCustomNode">
<id property="id" column="id" jdbcType="INTEGER"/>
<result property="docId" column="doc_id" jdbcType="BIGINT"/>
<result property="parentId" column="parent_id" jdbcType="BIGINT"/>
<result property="nodeType" column="node_type" jdbcType="TINYINT"/>
<result property="nodeName" column="node_name" jdbcType="VARCHAR"/>
<result property="nodeDesc" column="node_desc" jdbcType="VARCHAR"/>
<result property="seqNo" column="seq_no" jdbcType="INTEGER"/>
<result property="respondJson" column="respond_json" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="TINYINT"/>
<result property="isDel" column="is_del" jdbcType="TINYINT"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="BIGINT"/>
<result property="lastUpdateTime" column="last_update_time" jdbcType="TIMESTAMP"/>
<result property="lastUpdateUser" column="last_update_user" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
id,doc_id,parent_id,
node_type,node_name,node_desc,
seq_no,respond_json,status,
is_del,create_time,create_user,
last_update_time,last_update_user
</sql>
</mapper>
<?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.upyuns.platform.rs.website.mapper.ApiCustomParamsMapper">
<resultMap id="BaseResultMap" type="com.upyuns.platform.rs.website.entity.ApiCustomParams">
<id property="id" column="id" jdbcType="INTEGER"/>
<result property="docId" column="doc_id" jdbcType="BIGINT"/>
<result property="nodeId" column="node_id" jdbcType="BIGINT"/>
<result property="method" column="method" jdbcType="VARCHAR"/>
<result property="apiUrl" column="api_url" jdbcType="VARCHAR"/>
<result property="formData" column="form_data" jdbcType="VARCHAR"/>
<result property="bodyData" column="body_data" jdbcType="VARCHAR"/>
<result property="headerData" column="header_data" jdbcType="VARCHAR"/>
<result property="cookieData" column="cookie_data" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="TINYINT"/>
<result property="isDel" column="is_del" jdbcType="TINYINT"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="BIGINT"/>
<result property="lastUpdateTime" column="last_update_time" jdbcType="TIMESTAMP"/>
<result property="lastUpdateUser" column="last_update_user" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
id,doc_id,node_id,
method,api_url,form_data,
body_data,header_data,cookie_data,
status,is_del,create_time,
create_user,last_update_time,last_update_user
</sql>
</mapper>
<?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.upyuns.platform.rs.website.mapper.ApiDocMapper">
<resultMap id="BaseResultMap" type="com.upyuns.platform.rs.website.entity.ApiDoc">
<id property="id" column="id" jdbcType="INTEGER"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="docType" column="doc_type" jdbcType="TINYINT"/>
<result property="docUrl" column="doc_url" jdbcType="VARCHAR"/>
<result property="jsonContent" column="json_content" jdbcType="VARCHAR"/>
<result property="rewriteDomain" column="rewrite_domain" jdbcType="VARCHAR"/>
<result property="openVisit" column="open_visit" jdbcType="TINYINT"/>
<result property="shareUuid" column="share_uuid" jdbcType="VARCHAR"/>
<result property="shareInstruction" column="share_instruction" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="TINYINT"/>
<result property="isDel" column="is_del" jdbcType="TINYINT"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="BIGINT"/>
<result property="lastUpdateTime" column="last_update_time" jdbcType="TIMESTAMP"/>
<result property="lastUpdateUser" column="last_update_user" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
id,name,doc_type,
doc_url,json_content,rewrite_domain,
open_visit,share_uuid,
share_instruction,status,is_del,
create_time,create_user,last_update_time,
last_update_user
</sql>
<select id="selectList" resultType="com.upyuns.platform.rs.website.vo.ApiDocTreeVo">
SELECT
d.*
FROM
api_doc d
LEFT JOIN api_custom_node n ON n.doc_id = d.id
WHERE
d.is_del = 0
<if test="keyWord != null and keyWord != ''">
AND d.`name` LIKE concat( '%', #{keyWord}, '%' )
OR n.node_name LIKE concat( '%', #{keyWord}, '%' )
</if>
GROUP BY
d.id
ORDER BY d.create_time,d.id desc
</select>
</mapper>
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
t.release_time, t.release_time,
t.is_online_experience, t.is_online_experience,
t.online_experience_api, t.online_experience_api,
t.details, -- t.details,
t.model_version, t.model_version,
t.software_framework, t.software_framework,
t.hardware_type, t.hardware_type,
......
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