diff --git a/zyplayer-doc-api/src/main/java/com/zyplayer/doc/api/controller/ApiCustomFolderController.java b/zyplayer-doc-api/src/main/java/com/zyplayer/doc/api/controller/ApiCustomFolderController.java new file mode 100644 index 00000000..052995ed --- /dev/null +++ b/zyplayer-doc-api/src/main/java/com/zyplayer/doc/api/controller/ApiCustomFolderController.java @@ -0,0 +1,41 @@ +package com.zyplayer.doc.api.controller; + + +import com.zyplayer.doc.core.json.DocResponseJson; +import com.zyplayer.doc.core.json.ResponseJson; +import com.zyplayer.doc.data.service.manage.ApiCustomFolderService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; + +/** + *

+ * 自建接口文档分组 前端控制器 + *

+ * + * @author 暮光:城中城 + * @since 2021-12-22 + */ +@Controller +@RequestMapping("/api-custom-folder") +public class ApiCustomFolderController { + + @Resource + ApiCustomFolderService apiCustomFolderService; + + /** + * 获取所有的文档地址 + * + * @return 文档内容 + * @author 暮光:城中城 + * @since 2021年10月16日 + */ + @ResponseBody + @PostMapping(value = "/add") + public ResponseJson add(Long docId, Long parentFolderId) { + return DocResponseJson.ok(); + } +} diff --git a/zyplayer-doc-api/src/main/java/com/zyplayer/doc/api/controller/ApiCustomRequestController.java b/zyplayer-doc-api/src/main/java/com/zyplayer/doc/api/controller/ApiCustomRequestController.java new file mode 100644 index 00000000..064ddaea --- /dev/null +++ b/zyplayer-doc-api/src/main/java/com/zyplayer/doc/api/controller/ApiCustomRequestController.java @@ -0,0 +1,19 @@ +package com.zyplayer.doc.api.controller; + + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + *

+ * 自建接口文档 前端控制器 + *

+ * + * @author 暮光:城中城 + * @since 2021-12-22 + */ +@Controller +@RequestMapping("/api-custom") +public class ApiCustomRequestController { + +} diff --git a/zyplayer-doc-api/src/main/java/com/zyplayer/doc/api/controller/ApiDocumentController.java b/zyplayer-doc-api/src/main/java/com/zyplayer/doc/api/controller/ApiDocumentController.java index dfd7336d..84feedc5 100644 --- a/zyplayer-doc-api/src/main/java/com/zyplayer/doc/api/controller/ApiDocumentController.java +++ b/zyplayer-doc-api/src/main/java/com/zyplayer/doc/api/controller/ApiDocumentController.java @@ -13,8 +13,10 @@ import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.repository.manage.entity.ApiDoc; +import com.zyplayer.doc.data.repository.manage.vo.ApiCustomVo; import com.zyplayer.doc.data.repository.manage.vo.ApiDocVo; import com.zyplayer.doc.data.repository.support.consts.ApiAuthType; +import com.zyplayer.doc.data.service.manage.ApiCustomRequestService; import com.zyplayer.doc.data.service.manage.ApiDocService; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -49,6 +51,8 @@ public class ApiDocumentController { private ApiDocService apiDocService; @Resource private SwaggerHttpRequestService swaggerHttpRequestService; + @Resource + ApiCustomRequestService apiCustomRequestService; /** * 获取所有的文档地址 @@ -78,7 +82,7 @@ public class ApiDocumentController { if (!apiDocAuthJudgeService.haveDevelopAuth(apiDoc)) { return DocResponseJson.warn("没有此文档的查看权限"); } - ApiDocVo apiDocVo = new ApiDocVo(); + ApiDocVo apiDocVo = new ApiDocVo(); BeanUtil.copyProperties(apiDoc, apiDocVo); Integer authType = apiDocAuthJudgeService.haveManageAuth(apiDoc) ? ApiAuthType.MANAGE.getType() : ApiAuthType.DEVELOPER.getType(); apiDocVo.setAuthType(authType); @@ -148,6 +152,8 @@ public class ApiDocumentController { } } else if (Objects.equals(apiDoc.getDocType(), 2) || Objects.equals(apiDoc.getDocType(), 4)) { apiDocService.saveOrUpdate(apiDoc); + } else if (Objects.equals(apiDoc.getDocType(), 5)) { + apiDocService.saveOrUpdate(apiDoc); } else { return DocResponseJson.warn("暂不支持的文档类型"); } @@ -214,6 +220,10 @@ public class ApiDocumentController { if (Objects.equals(apiDoc.getDocType(), 2) || Objects.equals(apiDoc.getDocType(), 4)) { return DocResponseJson.ok(apiDoc.getJsonContent()); } + if (Objects.equals(apiDoc.getDocType(), 5)) { + List customVoList = apiCustomRequestService.buildCustomApiList(apiDoc.getId()); + return DocResponseJson.ok(customVoList); + } return DocResponseJson.warn("暂不支持的文档类型"); } } diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/entity/ApiCustomFolder.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/entity/ApiCustomFolder.java new file mode 100644 index 00000000..a12a65c4 --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/entity/ApiCustomFolder.java @@ -0,0 +1,146 @@ +package com.zyplayer.doc.data.repository.manage.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 自建接口文档文件夹 + *

+ * + * @author 暮光:城中城 + * @since 2021-12-22 + */ +@TableName("api_custom_folder") +public class ApiCustomFolder implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键自增ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * api_doc主键ID + */ + private Long docId; + + /** + * 父文件夹ID + */ + private Long parentFolderId; + + /** + * 文件夹名称 + */ + private String folderName; + + /** + * 文件夹说明 + */ + private String folderDesc; + + /** + * 创建人ID + */ + private Long createUserId; + + /** + * 创建人名字 + */ + private String createUserName; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 是否有效 0=无效 1=有效 + */ + private Integer yn; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + public Long getDocId() { + return docId; + } + + public void setDocId(Long docId) { + this.docId = docId; + } + public Long getParentFolderId() { + return parentFolderId; + } + + public void setParentFolderId(Long parentFolderId) { + this.parentFolderId = parentFolderId; + } + public String getFolderName() { + return folderName; + } + + public void setFolderName(String folderName) { + this.folderName = folderName; + } + public String getFolderDesc() { + return folderDesc; + } + + public void setFolderDesc(String folderDesc) { + this.folderDesc = folderDesc; + } + public Long getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(Long createUserId) { + this.createUserId = createUserId; + } + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + public Integer getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } + + @Override + public String toString() { + return "ApiCustomFolder{" + + "id=" + id + + ", docId=" + docId + + ", parentFolderId=" + parentFolderId + + ", folderName=" + folderName + + ", folderDesc=" + folderDesc + + ", createUserId=" + createUserId + + ", createUserName=" + createUserName + + ", createTime=" + createTime + + ", yn=" + yn + + "}"; + } +} diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/entity/ApiCustomRequest.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/entity/ApiCustomRequest.java new file mode 100644 index 00000000..5f612d44 --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/entity/ApiCustomRequest.java @@ -0,0 +1,198 @@ +package com.zyplayer.doc.data.repository.manage.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 自建接口文档 + *

+ * + * @author 暮光:城中城 + * @since 2021-12-22 + */ +@TableName("api_custom_request") +public class ApiCustomRequest implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键自增ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * api_doc主键ID + */ + private Long docId; + + /** + * 文件夹ID + */ + private Long folderId; + + /** + * 接口名称 + */ + private String apiName; + + /** + * 接口url + */ + private String apiUrl; + + /** + * form参数 + */ + private String formData; + + /** + * body参数 + */ + private String bodyData; + + /** + * header参数 + */ + private String headerData; + + /** + * cookie参数 + */ + private String cookieData; + + /** + * 创建人ID + */ + private Long createUserId; + + /** + * 创建人名字 + */ + private String createUserName; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 是否有效 0=无效 1=有效 + */ + private Integer yn; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + public Long getDocId() { + return docId; + } + + public void setDocId(Long docId) { + this.docId = docId; + } + public Long getFolderId() { + return folderId; + } + + public void setFolderId(Long folderId) { + this.folderId = folderId; + } + public String getApiName() { + return apiName; + } + + public void setApiName(String apiName) { + this.apiName = apiName; + } + public String getApiUrl() { + return apiUrl; + } + + public void setApiUrl(String apiUrl) { + this.apiUrl = apiUrl; + } + public String getFormData() { + return formData; + } + + public void setFormData(String formData) { + this.formData = formData; + } + public String getBodyData() { + return bodyData; + } + + public void setBodyData(String bodyData) { + this.bodyData = bodyData; + } + public String getHeaderData() { + return headerData; + } + + public void setHeaderData(String headerData) { + this.headerData = headerData; + } + public String getCookieData() { + return cookieData; + } + + public void setCookieData(String cookieData) { + this.cookieData = cookieData; + } + public Long getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(Long createUserId) { + this.createUserId = createUserId; + } + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + public Integer getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } + + @Override + public String toString() { + return "ApiCustomRequest{" + + "id=" + id + + ", docId=" + docId + + ", folderId=" + folderId + + ", apiName=" + apiName + + ", apiUrl=" + apiUrl + + ", formData=" + formData + + ", bodyData=" + bodyData + + ", headerData=" + headerData + + ", cookieData=" + cookieData + + ", createUserId=" + createUserId + + ", createUserName=" + createUserName + + ", createTime=" + createTime + + ", yn=" + yn + + "}"; + } +} diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/mapper/ApiCustomFolderMapper.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/mapper/ApiCustomFolderMapper.java new file mode 100644 index 00000000..79115c8f --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/mapper/ApiCustomFolderMapper.java @@ -0,0 +1,16 @@ +package com.zyplayer.doc.data.repository.manage.mapper; + +import com.zyplayer.doc.data.repository.manage.entity.ApiCustomFolder; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 自建接口文档文件夹 Mapper 接口 + *

+ * + * @author 暮光:城中城 + * @since 2021-12-22 + */ +public interface ApiCustomFolderMapper extends BaseMapper { + +} diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/mapper/ApiCustomRequestMapper.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/mapper/ApiCustomRequestMapper.java new file mode 100644 index 00000000..a4e74d1d --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/mapper/ApiCustomRequestMapper.java @@ -0,0 +1,16 @@ +package com.zyplayer.doc.data.repository.manage.mapper; + +import com.zyplayer.doc.data.repository.manage.entity.ApiCustomRequest; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 自建接口文档 Mapper 接口 + *

+ * + * @author 暮光:城中城 + * @since 2021-12-22 + */ +public interface ApiCustomRequestMapper extends BaseMapper { + +} diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/vo/ApiCustomDocVo.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/vo/ApiCustomDocVo.java new file mode 100644 index 00000000..69f5cbfd --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/vo/ApiCustomDocVo.java @@ -0,0 +1,92 @@ +package com.zyplayer.doc.data.repository.manage.vo; + +import java.io.Serializable; + +/** + * api自建文档信息 + * + * @author 暮光:城中城 + * @since 2021-11-25 + */ +public class ApiCustomDocVo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 接口名称 + */ + private String apiName; + + /** + * 接口url + */ + private String apiUrl; + + /** + * form参数 + */ + private String formData; + + /** + * body参数 + */ + private String bodyData; + + /** + * header参数 + */ + private String headerData; + + /** + * cookie参数 + */ + private String cookieData; + + public String getApiName() { + return apiName; + } + + public void setApiName(String apiName) { + this.apiName = apiName; + } + + public String getApiUrl() { + return apiUrl; + } + + public void setApiUrl(String apiUrl) { + this.apiUrl = apiUrl; + } + + public String getFormData() { + return formData; + } + + public void setFormData(String formData) { + this.formData = formData; + } + + public String getBodyData() { + return bodyData; + } + + public void setBodyData(String bodyData) { + this.bodyData = bodyData; + } + + public String getHeaderData() { + return headerData; + } + + public void setHeaderData(String headerData) { + this.headerData = headerData; + } + + public String getCookieData() { + return cookieData; + } + + public void setCookieData(String cookieData) { + this.cookieData = cookieData; + } +} diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/vo/ApiCustomVo.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/vo/ApiCustomVo.java new file mode 100644 index 00000000..7b1f09f2 --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/vo/ApiCustomVo.java @@ -0,0 +1,67 @@ +package com.zyplayer.doc.data.repository.manage.vo; + +import java.io.Serializable; +import java.util.List; + +/** + * api自建文档信息 + * + * @author 暮光:城中城 + * @since 2021-11-25 + */ +public class ApiCustomVo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 文件夹名称 + */ + private String name; + + /** + * 文件夹说明 + */ + private String desc; + + /** + * 子目录列表 + */ + private List children; + + /** + * 接口列表 + */ + private List apis; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public List getApis() { + return apis; + } + + public void setApis(List apis) { + this.apis = apis; + } +} diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/generator/CodeGenerator.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/generator/CodeGenerator.java index 3e8c797f..bf6934d1 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/generator/CodeGenerator.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/generator/CodeGenerator.java @@ -16,7 +16,7 @@ import java.util.Collections; public class CodeGenerator { public static void main(String[] args) { - final String[] tableName = {"api_doc", "api_request_param", "api_global_param"}; + final String[] tableName = {"api_custom_request", "api_custom_folder"}; String url = "jdbc:mysql://127.0.0.1:3306/zyplayer_doc_manage?useUnicode=true&useSSL=false&characterEncoding=utf8"; String projectPath = System.getProperty("user.dir") + "/zyplayer-doc-data"; String outputDir = projectPath + "/src/main/java"; diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/ApiCustomFolderService.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/ApiCustomFolderService.java new file mode 100644 index 00000000..1bf7a4b0 --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/ApiCustomFolderService.java @@ -0,0 +1,16 @@ +package com.zyplayer.doc.data.service.manage; + +import com.zyplayer.doc.data.repository.manage.entity.ApiCustomFolder; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 自建接口文档文件夹 服务类 + *

+ * + * @author 暮光:城中城 + * @since 2021-12-22 + */ +public interface ApiCustomFolderService extends IService { + +} diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/ApiCustomRequestService.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/ApiCustomRequestService.java new file mode 100644 index 00000000..fd5a8513 --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/ApiCustomRequestService.java @@ -0,0 +1,26 @@ +package com.zyplayer.doc.data.service.manage; + +import com.zyplayer.doc.data.repository.manage.entity.ApiCustomRequest; +import com.baomidou.mybatisplus.extension.service.IService; +import com.zyplayer.doc.data.repository.manage.vo.ApiCustomVo; + +import java.util.List; + +/** + *

+ * 自建接口文档 服务类 + *

+ * + * @author 暮光:城中城 + * @since 2021-12-22 + */ +public interface ApiCustomRequestService extends IService { + + /** + * 构建目录树 + * + * @author 暮光:城中城 + * @since 2021-12-22 + */ + List buildCustomApiList(Long docId); +} diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/ApiCustomFolderServiceImpl.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/ApiCustomFolderServiceImpl.java new file mode 100644 index 00000000..993e4def --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/ApiCustomFolderServiceImpl.java @@ -0,0 +1,20 @@ +package com.zyplayer.doc.data.service.manage.impl; + +import com.zyplayer.doc.data.repository.manage.entity.ApiCustomFolder; +import com.zyplayer.doc.data.repository.manage.mapper.ApiCustomFolderMapper; +import com.zyplayer.doc.data.service.manage.ApiCustomFolderService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 自建接口文档文件夹 服务实现类 + *

+ * + * @author 暮光:城中城 + * @since 2021-12-22 + */ +@Service +public class ApiCustomFolderServiceImpl extends ServiceImpl implements ApiCustomFolderService { + +} diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/ApiCustomRequestServiceImpl.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/ApiCustomRequestServiceImpl.java new file mode 100644 index 00000000..355aa143 --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/ApiCustomRequestServiceImpl.java @@ -0,0 +1,96 @@ +package com.zyplayer.doc.data.service.manage.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zyplayer.doc.data.repository.manage.entity.ApiCustomFolder; +import com.zyplayer.doc.data.repository.manage.entity.ApiCustomRequest; +import com.zyplayer.doc.data.repository.manage.mapper.ApiCustomRequestMapper; +import com.zyplayer.doc.data.repository.manage.vo.ApiCustomDocVo; +import com.zyplayer.doc.data.repository.manage.vo.ApiCustomVo; +import com.zyplayer.doc.data.service.manage.ApiCustomFolderService; +import com.zyplayer.doc.data.service.manage.ApiCustomRequestService; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + *

+ * 自建接口文档 服务实现类 + *

+ * + * @author 暮光:城中城 + * @since 2021-12-22 + */ +@Service +public class ApiCustomRequestServiceImpl extends ServiceImpl implements ApiCustomRequestService { + + @Resource + ApiCustomRequestService apiCustomRequestService; + @Resource + ApiCustomFolderService apiCustomFolderService; + + @Override + public List buildCustomApiList(Long docId) { + // 查询api列表 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("doc_id", docId); + wrapper.eq("yn", 1); + List apiCustomList = apiCustomRequestService.list(wrapper); + Map> apiMap = apiCustomList.stream().collect(Collectors.groupingBy(ApiCustomRequest::getFolderId)); + // 查询分组列表 + QueryWrapper groupWrapper = new QueryWrapper<>(); + groupWrapper.eq("doc_id", docId); + groupWrapper.eq("yn", 1); + List apiCustomGroupList = apiCustomFolderService.list(groupWrapper); + Map> apiGroupMap = apiCustomGroupList.stream().collect(Collectors.groupingBy(ApiCustomFolder::getParentFolderId)); + List apiCustomGroups = apiGroupMap.get(null); + if (CollectionUtils.isEmpty(apiCustomGroups)) { + return Collections.emptyList(); + } + return this.getCustomGroupChildren(apiCustomGroups, apiGroupMap, apiMap); + } + + /** + * 递归获取目录树 + * + * @author 暮光:城中城 + * @since 2021-12-22 + */ + private List getCustomGroupChildren(List apiCustomGroups, Map> apiGroupMap, Map> apiMap) { + if (CollectionUtils.isEmpty(apiCustomGroups)) { + return Collections.emptyList(); + } + List apiCustomVoList = new LinkedList<>(); + for (ApiCustomFolder customGroup : apiCustomGroups) { + List apiCustomList = apiMap.get(customGroup.getId()); + List children = apiGroupMap.get(customGroup.getId()); + List customGroupChildren = this.getCustomGroupChildren(children, apiGroupMap, apiMap); + ApiCustomVo apiCustomVo = new ApiCustomVo(); + apiCustomVo.setName(customGroup.getFolderName()); + apiCustomVo.setDesc(customGroup.getFolderDesc()); + apiCustomVo.setChildren(customGroupChildren); + if (CollectionUtils.isNotEmpty(apiCustomList)) { + List apis = new LinkedList<>(); + for (ApiCustomRequest apiCustom : apiCustomList) { + ApiCustomDocVo apiCustomDocVo = new ApiCustomDocVo(); + apiCustomDocVo.setApiUrl(apiCustom.getApiUrl()); + apiCustomDocVo.setApiName(apiCustom.getApiName()); + apiCustomDocVo.setBodyData(apiCustom.getBodyData()); + apiCustomDocVo.setCookieData(apiCustom.getCookieData()); + apiCustomDocVo.setFormData(apiCustom.getFormData()); + apiCustomDocVo.setHeaderData(apiCustom.getHeaderData()); + apis.add(apiCustomDocVo); + } + apiCustomVo.setApis(apis); + } + apiCustomVoList.add(apiCustomVo); + } + return apiCustomVoList; + } +} diff --git a/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomFolderMapper.xml b/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomFolderMapper.xml new file mode 100644 index 00000000..ef008bec --- /dev/null +++ b/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomFolderMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomGroupMapper.xml b/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomGroupMapper.xml new file mode 100644 index 00000000..828d4c7d --- /dev/null +++ b/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomGroupMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomMapper.xml b/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomMapper.xml new file mode 100644 index 00000000..a35f4a71 --- /dev/null +++ b/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomRequestMapper.xml b/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomRequestMapper.xml new file mode 100644 index 00000000..f45cc8df --- /dev/null +++ b/zyplayer-doc-data/src/main/resources/mapper/manage/ApiCustomRequestMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zyplayer-doc-manage/pom.xml b/zyplayer-doc-manage/pom.xml index 598d1bdd..f18d2c49 100644 --- a/zyplayer-doc-manage/pom.xml +++ b/zyplayer-doc-manage/pom.xml @@ -3,7 +3,7 @@ 4.0.0 zyplayer-doc-manage - jar + war zyplayer-doc-manage 定位为所有文档的管理项目,API接口文档、dubbo文档、数据库文档、、、、等 diff --git a/zyplayer-doc-manage/src/main/resources/sql/history/zyplayer_doc_manage.1.1.0.sql b/zyplayer-doc-manage/src/main/resources/sql/history/zyplayer_doc_manage.1.1.0.sql new file mode 100644 index 00000000..3b36bc3a --- /dev/null +++ b/zyplayer-doc-manage/src/main/resources/sql/history/zyplayer_doc_manage.1.1.0.sql @@ -0,0 +1,74 @@ +-- ------------------------------------------------ +-- 这是一个处于开发中的版本,变化快,中途变更不兼容 +-- ------------------------------------------------ + +-- 每次发版时注意事项 --- +-- 1. datetime(0) 低版本不支持此语法,改为datetime +-- 2. utf8mb4 低版本不支持此字符集,改为utf8 +-- 3. 加字段后记得排查是否有insert语句,需要同步修改 +-- +-- ------------------------从1.0.9版本升级------------------------ + +DROP TABLE IF EXISTS `api_doc`; +CREATE TABLE `api_doc` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', + `name` varchar(100) DEFAULT NULL COMMENT '文档名称', + `doc_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '文档类型 1=swagger url 2=swagger json 3=openapi url 4=openapi json 5=自建API分组', + `doc_url` varchar(250) DEFAULT NULL COMMENT '文档URL地址', + `json_content` mediumtext DEFAULT NULL COMMENT '文档json内容', + `rewrite_domain` varchar(100) DEFAULT NULL COMMENT '重写的域名', + `open_visit` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否开放访问 0=否 1=是', + `doc_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用', + `share_uuid` varchar(50) DEFAULT NULL COMMENT '开放文档UUID', + `share_instruction` mediumtext DEFAULT NULL COMMENT '开放文档使用说明', + `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', + `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档地址'; + +DROP TABLE IF EXISTS `api_request_param`; +CREATE TABLE `api_request_param` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', + `doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID', + `doc_url` varchar(250) DEFAULT NULL COMMENT '文档url', + `form_data` text DEFAULT NULL COMMENT 'form参数', + `body_data` text DEFAULT NULL COMMENT 'body参数', + `header_data` varchar(1024) DEFAULT NULL COMMENT 'header参数', + `cookie_data` varchar(1024) DEFAULT NULL COMMENT 'cookie参数', + `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', + `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='文档请求参数记录'; + +DROP TABLE IF EXISTS `api_global_param`; +CREATE TABLE `api_global_param` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', + `doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID', + `param_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '参数类型 1=form 2=header 3=cookie', + `param_key` varchar(100) DEFAULT NULL COMMENT '参数名', + `param_value` varchar(1024) DEFAULT NULL COMMENT '参数值', + `param_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用', + `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', + `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档全局参数记录'; + +-- 权限表优化 +ALTER TABLE `user_auth` ADD COLUMN `sys_type` int NULL COMMENT '系统类型,DocSysType', +ADD COLUMN `sys_module_type` int NULL COMMENT '系统模块类型,DocSysModuleType', +ADD COLUMN `sys_module_id` bigint(20) NULL COMMENT '系统模块ID'; +-- 历史数据处理 +update user_auth set sys_type=3, sys_module_type=1, sys_module_id=replace(auth_custom_suffix, 'DB_', '') where auth_custom_suffix like 'DB_%'; +update user_auth set sys_type=2, sys_module_type=1, sys_module_id=replace(auth_custom_suffix, 'WIKI_', '') where auth_custom_suffix like 'WIKI_%'; + + +INSERT INTO `auth_info`(auth_name, auth_desc, can_edit, create_uid, creation_time, auth_type) VALUES + ('API_DOC_MANAGE', 'api文档管理权', 0, 1, '2021-12-12 23:25:17', 0), + ('API_DOC_DEVELOPER', 'api文档编辑权', 0, 1, '2021-12-12 23:25:17', 0); + diff --git a/zyplayer-doc-manage/src/main/resources/sql/history/zyplayer_doc_manage.sql b/zyplayer-doc-manage/src/main/resources/sql/history/zyplayer_doc_manage.sql index bc1fe97d..61ad89e8 100644 --- a/zyplayer-doc-manage/src/main/resources/sql/history/zyplayer_doc_manage.sql +++ b/zyplayer-doc-manage/src/main/resources/sql/history/zyplayer_doc_manage.sql @@ -1,3 +1,10 @@ +-- ------------------------------------------------ +-- 这是软件版本为:1.1.0的全量建表语句,初次部署可直接执行 +-- 从低版本升级为1.1.0,请执行具体的增量升级SQL +-- 初次部署文档:http://doc.zyplayer.com/zyplayer-doc-manage/doc-wiki#/page/share/view?pageId=279&space=23f3f59a60824d21af9f7c3bbc9bc3cb +-- 升级指导文档:http://doc.zyplayer.com/zyplayer-doc-manage/doc-wiki#/page/share/view?pageId=284&space=23f3f59a60824d21af9f7c3bbc9bc3cb +-- ------------------------------------------------ + /* Navicat Premium Data Transfer @@ -50,6 +57,8 @@ INSERT INTO `auth_info` VALUES (15, 'DB_SELECT_', '数据源查询权', 0, 1, '2 INSERT INTO `auth_info` VALUES (16, 'DB_UPDATE_', '数据源增删改查权', 0, 1, '2019-08-18 23:25:17', 0); INSERT INTO `auth_info` VALUES (17, 'DB_DESC_EDIT_', '表字段注释修改权', 0, 1, '2019-08-18 23:25:17', 0); INSERT INTO `auth_info` VALUES (18, 'DB_PROC_EDIT_', '存储过程修改权', 0, 1, '2021-04-24 23:25:17', 0); +INSERT INTO `auth_info` VALUES (19, 'API_DOC_MANAGE', 'api文档管理权', 0, 1, '2021-12-12 23:25:17', 0); +INSERT INTO `auth_info` VALUES (20, 'API_DOC_DEVELOPER', 'api文档编辑权', 0, 1, '2021-12-12 23:25:17', 0); -- ---------------------------- -- Table structure for db_datasource @@ -148,25 +157,27 @@ CREATE TABLE `user_auth` ( `del_flag` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除 0=未删除 1=已删除', `creation_time` datetime NULL DEFAULT NULL COMMENT '创建时间', `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `auth_custom_suffix` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '自定义权限结尾', + `sys_type` int NULL COMMENT '系统类型,DocSysType', + `sys_module_type` int NULL COMMENT '系统模块类型,DocSysModuleType', + `sys_module_id` bigint(20) NULL COMMENT '系统模块ID', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 73 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户权限表' ROW_FORMAT = Compact; -- ---------------------------- -- Records of user_auth -- ---------------------------- -INSERT INTO `user_auth` VALUES (9, 2, 1, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL); -INSERT INTO `user_auth` VALUES (10, 2, 2, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL); -INSERT INTO `user_auth` VALUES (11, 2, 3, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL); -INSERT INTO `user_auth` VALUES (12, 2, 4, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL); -INSERT INTO `user_auth` VALUES (31, 3, 1, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL); -INSERT INTO `user_auth` VALUES (32, 3, 2, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL); -INSERT INTO `user_auth` VALUES (33, 3, 3, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL); -INSERT INTO `user_auth` VALUES (34, 3, 4, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL); -INSERT INTO `user_auth` VALUES (44, 1, 3, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL); -INSERT INTO `user_auth` VALUES (45, 1, 4, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL); -INSERT INTO `user_auth` VALUES (46, 1, 12, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL); -INSERT INTO `user_auth` VALUES (47, 1, 13, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL); +INSERT INTO `user_auth` VALUES (9, 2, 1, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL, NULL, NULL); +INSERT INTO `user_auth` VALUES (10, 2, 2, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL, NULL, NULL); +INSERT INTO `user_auth` VALUES (11, 2, 3, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL, NULL, NULL); +INSERT INTO `user_auth` VALUES (12, 2, 4, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL, NULL, NULL); +INSERT INTO `user_auth` VALUES (31, 3, 1, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL, NULL, NULL); +INSERT INTO `user_auth` VALUES (32, 3, 2, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL, NULL, NULL); +INSERT INTO `user_auth` VALUES (33, 3, 3, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL, NULL, NULL); +INSERT INTO `user_auth` VALUES (34, 3, 4, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL, NULL, NULL); +INSERT INTO `user_auth` VALUES (44, 1, 3, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL, NULL, NULL); +INSERT INTO `user_auth` VALUES (45, 1, 4, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL, NULL, NULL); +INSERT INTO `user_auth` VALUES (46, 1, 12, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL, NULL, NULL); +INSERT INTO `user_auth` VALUES (47, 1, 13, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL, NULL, NULL); -- ---------------------------- -- Table structure for user_info @@ -506,5 +517,54 @@ CREATE TABLE `db_table_relation` ( PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='表关系'; +DROP TABLE IF EXISTS `api_doc`; +CREATE TABLE `api_doc` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', + `name` varchar(100) DEFAULT NULL COMMENT '文档名称', + `doc_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '文档类型 1=swagger url 2=swagger json 3=openapi url 4=openapi json 5=自建API分组', + `doc_url` varchar(250) DEFAULT NULL COMMENT '文档URL地址', + `json_content` mediumtext DEFAULT NULL COMMENT '文档json内容', + `rewrite_domain` varchar(100) DEFAULT NULL COMMENT '重写的域名', + `open_visit` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否开放访问 0=否 1=是', + `doc_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用', + `share_uuid` varchar(50) DEFAULT NULL COMMENT '开放文档UUID', + `share_instruction` mediumtext DEFAULT NULL COMMENT '开放文档使用说明', + `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', + `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档地址'; + +DROP TABLE IF EXISTS `api_request_param`; +CREATE TABLE `api_request_param` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', + `doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID', + `doc_url` varchar(250) DEFAULT NULL COMMENT '文档url', + `form_data` text DEFAULT NULL COMMENT 'form参数', + `body_data` text DEFAULT NULL COMMENT 'body参数', + `header_data` varchar(1024) DEFAULT NULL COMMENT 'header参数', + `cookie_data` varchar(1024) DEFAULT NULL COMMENT 'cookie参数', + `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', + `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='文档请求参数记录'; + +DROP TABLE IF EXISTS `api_global_param`; +CREATE TABLE `api_global_param` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', + `doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID', + `param_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '参数类型 1=form 2=header 3=cookie', + `param_key` varchar(100) DEFAULT NULL COMMENT '参数名', + `param_value` varchar(1024) DEFAULT NULL COMMENT '参数值', + `param_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用', + `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', + `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档全局参数记录'; SET FOREIGN_KEY_CHECKS = 1; diff --git a/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.1.1.0.sql b/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.1.1.1.sql similarity index 95% rename from zyplayer-doc-manage/src/main/resources/sql/全量建表语句.1.1.0.sql rename to zyplayer-doc-manage/src/main/resources/sql/全量建表语句.1.1.1.sql index 41aad1bc..5fa82eec 100644 --- a/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.1.1.0.sql +++ b/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.1.1.1.sql @@ -564,5 +564,39 @@ CREATE TABLE `api_global_param` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档全局参数记录'; +DROP TABLE IF EXISTS `api_custom_request`; +CREATE TABLE `api_custom_request` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', + `doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID', + `folder_id` bigint(20) DEFAULT NULL COMMENT '文件夹ID', + `api_name` varchar(250) DEFAULT NULL COMMENT '接口名称', + `api_url` text DEFAULT NULL COMMENT '接口url', + `form_data` text DEFAULT NULL COMMENT 'form参数', + `body_data` text DEFAULT NULL COMMENT 'body参数', + `header_data` text DEFAULT NULL COMMENT 'header参数', + `cookie_data` text DEFAULT NULL COMMENT 'cookie参数', + `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', + `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', + PRIMARY KEY (`id`), + KEY `idx_doc_id` (`doc_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自建接口文档'; + +DROP TABLE IF EXISTS `api_custom_folder`; +CREATE TABLE `api_custom_folder` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', + `doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID', + `parent_folder_id` bigint(20) DEFAULT NULL COMMENT '父文件夹ID', + `folder_name` varchar(250) DEFAULT NULL COMMENT '文件夹名称', + `folder_desc` text DEFAULT NULL COMMENT '文件夹说明', + `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', + `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', + PRIMARY KEY (`id`), + KEY `idx_doc_id` (`doc_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自建接口文档文件夹'; + SET FOREIGN_KEY_CHECKS = 1; diff --git a/zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.0.sql b/zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.0.sql deleted file mode 100644 index 9e7f2e99..00000000 --- a/zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.0.sql +++ /dev/null @@ -1,74 +0,0 @@ --- ------------------------------------------------ --- 这是一个处于开发中的版本,变化快,中途变更不兼容 --- ------------------------------------------------ - --- 每次发版时注意事项 --- --- 1. datetime(0) 低版本不支持此语法,改为datetime --- 2. utf8mb4 低版本不支持此字符集,改为utf8 --- 3. 加字段后记得排查是否有insert语句,需要同步修改 --- --- ------------------------从1.0.9版本升级------------------------ - -DROP TABLE IF EXISTS `api_doc`; -CREATE TABLE `api_doc` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', - `name` varchar(100) DEFAULT NULL COMMENT '文档名称', - `doc_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '文档类型 1=swagger url 2=swagger json 3=openapi url 4=openapi json 5=自建API分组', - `doc_url` varchar(250) DEFAULT NULL COMMENT '文档URL地址', - `json_content` mediumtext DEFAULT NULL COMMENT '文档json内容', - `rewrite_domain` varchar(100) DEFAULT NULL COMMENT '重写的域名', - `open_visit` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否开放访问 0=否 1=是', - `doc_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用', - `share_uuid` varchar(50) DEFAULT NULL COMMENT '开放文档UUID', - `share_instruction` mediumtext DEFAULT NULL COMMENT '开放文档使用说明', - `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', - `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档地址'; - -DROP TABLE IF EXISTS `api_request_param`; -CREATE TABLE `api_request_param` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', - `doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID', - `doc_url` varchar(250) DEFAULT NULL COMMENT '文档url', - `form_data` text DEFAULT NULL COMMENT 'form参数', - `body_data` text DEFAULT NULL COMMENT 'body参数', - `header_data` varchar(1024) DEFAULT NULL COMMENT 'header参数', - `cookie_data` varchar(1024) DEFAULT NULL COMMENT 'cookie参数', - `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', - `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='文档请求参数记录'; - -DROP TABLE IF EXISTS `api_global_param`; -CREATE TABLE `api_global_param` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', - `doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID', - `param_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '参数类型 1=form 2=header 3=cookie', - `param_key` varchar(100) DEFAULT NULL COMMENT '参数名', - `param_value` varchar(1024) DEFAULT NULL COMMENT '参数值', - `param_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用', - `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', - `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档全局参数记录'; - --- 权限表优化 -ALTER TABLE `user_auth` ADD COLUMN `sys_type` int NULL COMMENT '系统类型,DocSysType', -ADD COLUMN `sys_module_type` int NULL COMMENT '系统模块类型,DocSysModuleType', -ADD COLUMN `sys_module_id` bigint(20) NULL COMMENT '系统模块ID'; --- 历史数据处理 -update user_auth set sys_type=3, sys_module_type=1, sys_module_id=replace(auth_custom_suffix, 'DB_', '') where auth_custom_suffix like 'DB_%'; -update user_auth set sys_type=2, sys_module_type=1, sys_module_id=replace(auth_custom_suffix, 'WIKI_', '') where auth_custom_suffix like 'WIKI_%'; - - -INSERT INTO `auth_info`(auth_name, auth_desc, can_edit, create_uid, creation_time, auth_type) VALUES -('API_DOC_MANAGE', 'api文档管理权', 0, 1, '2021-12-12 23:25:17', 0), -('API_DOC_DEVELOPER', 'api文档编辑权', 0, 1, '2021-12-12 23:25:17', 0); - diff --git a/zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.1.sql b/zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.1.sql new file mode 100644 index 00000000..2cac5915 --- /dev/null +++ b/zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.1.sql @@ -0,0 +1,46 @@ +-- ------------------------------------------------ +-- 这是一个处于开发中的版本,变化快,中途变更不兼容 +-- ------------------------------------------------ + +-- 每次发版时注意事项 --- +-- 1. datetime(0) 低版本不支持此语法,改为datetime +-- 2. utf8mb4 低版本不支持此字符集,改为utf8 +-- 3. 加字段后记得排查是否有insert语句,需要同步修改 +-- +-- ------------------------从1.1.0版本升级------------------------ + +DROP TABLE IF EXISTS `api_custom_request`; +CREATE TABLE `api_custom_request` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', + `doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID', + `folder_id` bigint(20) DEFAULT NULL COMMENT '文件夹ID', + `api_name` varchar(250) DEFAULT NULL COMMENT '接口名称', + `api_url` text DEFAULT NULL COMMENT '接口url', + `form_data` text DEFAULT NULL COMMENT 'form参数', + `body_data` text DEFAULT NULL COMMENT 'body参数', + `header_data` text DEFAULT NULL COMMENT 'header参数', + `cookie_data` text DEFAULT NULL COMMENT 'cookie参数', + `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', + `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', + PRIMARY KEY (`id`), + KEY `idx_doc_id` (`doc_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自建接口文档'; + +DROP TABLE IF EXISTS `api_custom_folder`; +CREATE TABLE `api_custom_folder` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', + `doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID', + `parent_folder_id` bigint(20) DEFAULT NULL COMMENT '父文件夹ID', + `folder_name` varchar(250) DEFAULT NULL COMMENT '文件夹名称', + `folder_desc` text DEFAULT NULL COMMENT '文件夹说明', + `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', + `create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效', + PRIMARY KEY (`id`), + KEY `idx_doc_id` (`doc_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自建接口文档文件夹'; + +