Compare commits
163 Commits
v1.1.2
...
full-lates
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4784a8d991 | ||
|
|
2c1297430b | ||
|
|
9de02903aa | ||
|
|
0fad018101 | ||
|
|
55ca2a2e43 | ||
|
|
d5300d4d76 | ||
|
|
802972abd2 | ||
|
|
57d560b9ec | ||
|
|
26c0f83bad | ||
|
|
e8394fac8e | ||
|
|
6769fdaa59 | ||
|
|
f5d32c6114 | ||
|
|
bdeab06d6c | ||
|
|
6f24c765ff | ||
|
|
b31104112c | ||
|
|
888a2106de | ||
|
|
feebc250d7 | ||
|
|
efa2538736 | ||
|
|
8b1fb129ce | ||
|
|
c28b7a7585 | ||
|
|
abcec4c846 | ||
|
|
2c66ad1b1a | ||
|
|
7597bdc52e | ||
|
|
84742639db | ||
|
|
5a25be99cb | ||
|
|
346c63d55f | ||
|
|
de11195aa9 | ||
|
|
252d8d23e1 | ||
|
|
75577350ba | ||
|
|
66904f0bb4 | ||
|
|
eda883a9bf | ||
|
|
35b4e2806b | ||
|
|
221e38f28a | ||
|
|
4a93ad5f48 | ||
|
|
84d94917e5 | ||
|
|
7e85a55f67 | ||
|
|
371c5a4ad4 | ||
|
|
fdb01114e3 | ||
|
|
ffbbe33a9f | ||
|
|
76e820d660 | ||
|
|
e393a71a93 | ||
|
|
90b8b117c4 | ||
|
|
8b3d86b18e | ||
|
|
718939e59b | ||
|
|
0fa8c58c7e | ||
|
|
effff9a723 | ||
|
|
a9cabd9ffe | ||
|
|
a679130a93 | ||
|
|
355b80c438 | ||
|
|
1cb19841a8 | ||
|
|
ea49f9d181 | ||
|
|
901a165fb1 | ||
|
|
98e8bccf3d | ||
|
|
65a52de3f2 | ||
|
|
55b042c6d8 | ||
|
|
931a71c54f | ||
|
|
d27c2b57d1 | ||
|
|
9fa5c8e6a5 | ||
|
|
1dd7dd0975 | ||
|
|
86af800f13 | ||
|
|
edf024fe1c | ||
|
|
f939fc5164 | ||
|
|
c85e9b1865 | ||
|
|
62e235f206 | ||
|
|
4da877e911 | ||
|
|
d574f5c8de | ||
|
|
f7773e2ec6 | ||
|
|
49d697347a | ||
|
|
80c9299532 | ||
|
|
705c2499db | ||
|
|
d03a1fa746 | ||
|
|
3211aa98f1 | ||
|
|
4f4b976b5b | ||
|
|
03848fd2d0 | ||
|
|
8facbf5fa0 | ||
|
|
9f11339b7c | ||
|
|
b7595dc766 | ||
|
|
814fde5ab5 | ||
|
|
270886a3ab | ||
|
|
87e41e91c1 | ||
|
|
a9e1766b05 | ||
|
|
9e68547cfb | ||
|
|
cd9a87b7df | ||
|
|
9e063e280c | ||
|
|
a95c1a2be1 | ||
|
|
5699d614df | ||
|
|
9dfabe54ce | ||
|
|
6e4b226a46 | ||
|
|
76c8b83284 | ||
|
|
289a42b7d4 | ||
|
|
5093b0eea6 | ||
|
|
00e3a4492d | ||
|
|
8839afb0e8 | ||
|
|
e456d4e95e | ||
|
|
960eccd165 | ||
|
|
a02aa870ae | ||
|
|
6642ba24cc | ||
|
|
f74e53c7ea | ||
|
|
98aa22f6a6 | ||
|
|
aaaa8b4e4d | ||
|
|
093b1b5b82 | ||
|
|
114d224cbf | ||
|
|
41b1426132 | ||
|
|
f70a863b62 | ||
|
|
2c80f3a894 | ||
|
|
6a458e8136 | ||
|
|
eb00388b6c | ||
|
|
91bd860440 | ||
|
|
4354e1e388 | ||
|
|
43be458728 | ||
|
|
ff2591adaa | ||
|
|
8fc9770e6d | ||
|
|
6d3df324ed | ||
|
|
be8dae345c | ||
|
|
d2ff37c7f6 | ||
|
|
f95ca14ec8 | ||
|
|
5b01d3274a | ||
|
|
d6d3d61bdd | ||
|
|
12599ff4db | ||
|
|
2f0b06a541 | ||
|
|
e257cec3b6 | ||
|
|
300c0b75fe | ||
|
|
e495588dae | ||
|
|
269b55d870 | ||
|
|
27c06ce748 | ||
|
|
79c73438da | ||
|
|
353bc4ae97 | ||
|
|
4b0ec31e6f | ||
|
|
8f48484725 | ||
|
|
6d744d6304 | ||
|
|
2ac461d3e1 | ||
|
|
fcc8b9e47b | ||
|
|
be668d9441 | ||
|
|
674de356e7 | ||
|
|
a819a8df59 | ||
|
|
76307b05b3 | ||
|
|
07d86c8ae0 | ||
|
|
accfbf81f1 | ||
|
|
ddaf23158d | ||
|
|
32259be29f | ||
|
|
fdd9683a7f | ||
|
|
d8ea5c34ec | ||
|
|
17c0531c6b | ||
|
|
f8118067e5 | ||
|
|
e5b7e68cb0 | ||
|
|
1da583ad3d | ||
|
|
65277168bb | ||
|
|
bcf675943c | ||
|
|
b2d5a86da6 | ||
|
|
852727b3ad | ||
|
|
6aec6ce8d6 | ||
|
|
41a3760b2a | ||
|
|
f8efca5ee0 | ||
|
|
1ae0e92c10 | ||
|
|
9d54140617 | ||
|
|
c04e322f7c | ||
|
|
679eca9196 | ||
|
|
06cac2b034 | ||
|
|
704d6c73b4 | ||
|
|
9b7804511e | ||
|
|
e4313007fb | ||
|
|
67341e3e92 | ||
|
|
a7eaa4dd4b |
7
.gitignore
vendored
7
.gitignore
vendored
@@ -61,3 +61,10 @@ rebel.xml
|
||||
# 忽略office文件打开临时文件 #
|
||||
[~$]*.*
|
||||
tmlog.lck
|
||||
/.metadata/
|
||||
zyplayer-doc-data/bin
|
||||
zyplayer-doc-api/bin
|
||||
zyplayer-doc-core/bin
|
||||
zyplayer-doc-data/src/main/java/com/zyplayer/.metadata/
|
||||
zyplayer-doc-db/bin/
|
||||
zyplayer-doc-wiki/bin/
|
||||
98
README.md
98
README.md
@@ -1,42 +1,84 @@
|
||||
# 项目介绍
|
||||
zyplayer-doc是一款适合团队和个人使用的WIKI文档管理工具,同时还包含数据库文档、Api接口文档。
|
||||
<p align="center">
|
||||
<img src="https://gitee.com/dromara/zyplayer-doc/raw/master/zyplayer-doc-other/resource/logo.png">
|
||||
</p>
|
||||
|
||||
体验地址:[http://doc.zyplayer.com](http://doc.zyplayer.com/) 账号:zyplayer 密码:123456
|
||||
<h1 align="center">zyplayer-doc</h1>
|
||||
|
||||
各模块的详细使用文档地址,可参考:
|
||||
[详细部署文档](http://doc.zyplayer.com/doc-wiki#/docs/w4eSzPWvQRSBvaCHZS8t6d)
|
||||
<p align="center">专注于私有化部署的在线知识库管理平台</p>
|
||||
|
||||
欢迎有想法的一起来完善,如果觉得不错就给个Star鼓励下呗!作为给作者快速更新的动力!
|
||||
# 项目简介
|
||||
zyplayer-doc是一款适合团队和个人私有化部署使用的WIKI文档管理工具,同时还包含数据库管理、Api接口管理等模块。
|
||||
|
||||
欢迎加群讨论,QQ群号:466363173
|
||||
适合作为公司内部或个人的知识库、笔记、文档管理工具,将文档发布成对外可访问的形式,可作为公司的产品文档、帮助文档等。
|
||||
|
||||
体验地址:[http://zyplayer.com](http://zyplayer.com)
|
||||
|
||||
在线文档:[http://doc.zyplayer.com](http://doc.zyplayer.com)
|
||||
|
||||
欢迎有想法的同学一起来完善,如果觉得不错就给个Star鼓励下呗!作为给项目快速更新的动力!
|
||||
|
||||
欢迎加入微信群与我们一起交流
|
||||
> 微信群员超过限制只能加好友拉进群,添加微信好友,回复:`加群` 即可
|
||||
|
||||

|
||||
|
||||
# 快速启动
|
||||
## 数据库依赖
|
||||
你得有一个MySQL数据库,建议版本号为:5.7.25,建库:zyplayer_doc_manage
|
||||
## 相关依赖
|
||||
启动本系统仅依赖JAVA和MySQL
|
||||
- JAVA 1.8+
|
||||
- MySQL 5.7.x、8.x
|
||||
|
||||
## main方法启动
|
||||
1. 修改 zyplayer-doc/zyplayer-doc-manage/src/main/resources/application.yml 配置文件里面的数据库账号密码
|
||||
2. 执行 com.zyplayer.doc.manage.Application.main 方法启动项目,启动后访问:http://127.0.0.1:8083/zyplayer-doc/
|
||||
数据库安装成功后,需要您**手动创建**一个库:`zyplayer_doc`
|
||||
|
||||
## jar方式启动
|
||||
1. 直接下载:直接下载编译好的jar打包文件,加入QQ群即可下载编译好的最新版,QQ群号:466363173
|
||||
2. 自行编译:也可以自己动手编译,双击执行:zyplayer-doc\build.bat,将使用maven编译整个项目为可执行的jar文件,编译结果文件放在:zyplayer-doc\dist\version 文件夹下,如果电脑没有安装maven则需要先安装
|
||||
3. 修改第一步或第二步结果文件夹下的 application.yml 文件里面数据库帐号密码
|
||||
4. 双击第一步或第二步结果文件夹下的 startup.bat 启动项目,启动后访问:http://127.0.0.1:8083/zyplayer-doc/
|
||||
```sql
|
||||
-- 建库语句
|
||||
create database zyplayer_doc;
|
||||
```
|
||||
|
||||
> 建表SQL脚本无需手动执行,每次启动或更新之后都会检查当前版本,然后自动执行升级SQL脚本,所以每次有版本更新需求只需要下载最新版本启动即可,无需其他特殊操作
|
||||
|
||||
## 宝塔面板一键部署
|
||||
- 安装宝塔面板,前往[宝塔面板](https://www.bt.cn/u/2OCdV3)官网,选择对应的脚本下载安装,宝塔版本:`9.2.0+`
|
||||
- 登录宝塔面板,在菜单栏中点击 Docker,根据提示安装 Docker 和 Docker Compose 服务,若已有则跳过
|
||||
- 在Docker-应用商店查询到 zyplayer-doc,点击安装
|
||||
- 设置域名等基本信息,点击确定
|
||||
- 提交后面板会自动进行应用初始化,大概需要1-5分钟,初始化完成后即可访问。
|
||||

|
||||
|
||||
## Main方法启动
|
||||
1. 修改`zyplayer-doc-manage/src/main/resources/application.yml`配置文件里面的数据库账号密码
|
||||
2. 执行`com.zyplayer.doc.manage.Application.main`方法启动项目
|
||||
|
||||
## JAR方式启动
|
||||
1. 直接下载:直接下载编译好的jar打包文件,编译后的最新版可到 [发行版下载处](https://gitee.com/dromara/zyplayer-doc/releases) 去下载
|
||||
2. 自行编译:也可以自己动手编译,双击执行:`zyplayer-doc\build.bat`,将使用maven编译整个项目为可执行的jar文件,编译结果文件放在:`zyplayer-doc\dist\version`文件夹下
|
||||
3. 修改第一步或第二步结果文件夹下的`application.yml`文件里面数据库帐号密码
|
||||
4. 双击第一步或第二步结果文件夹下的`startup.bat`启动项目
|
||||
|
||||
## Tomcat容器启动
|
||||
1. 直接下载编译好的war打包文件,加入QQ群即可下载编译好的最新版,QQ群号:466363173
|
||||
2. 修改配置文件:zyplayer-doc.zip\apache-tomcat\webapps\zyplayer-doc\WEB-INF\classes\application.yml 配置文件里面的数据库账号密码
|
||||
3. 双击tomcat\bin\startup.bat启动即可
|
||||
1. 直接下载编译好的war打包文件,编译后的最新版可到 [发行版下载处](https://gitee.com/dromara/zyplayer-doc/releases) 去下载
|
||||
2. 修改配置文件:`zyplayer-doc.zip\apache-tomcat\webapps\zyplayer-doc\WEB-INF\classes\application.yml`配置文件里面的数据库账号密码
|
||||
3. 双击`tomcat\bin\startup.bat`启动即可
|
||||
|
||||
默认登录账号:zyplayer 密码:123456
|
||||
## 其他
|
||||
更多启动方式请参考文档:[项目下载与部署](http://doc.zyplayer.com/#/integrate/zyplayer-doc/opensource/279)
|
||||
|
||||
启动后访问:[http://127.0.0.1:8083](http://127.0.0.1:8083) ,默认登录账号: **zyplayer** 密码: **123456**
|
||||
|
||||
# 各模块介绍
|
||||
## zyplayer-doc-manage 文档管理后台
|
||||
1. 具有项目模块导航,人员及权限管理功能,分组管理等功能。
|
||||
2. 集成了本项目内的各个子模块功能,是各模块的协调管理模块。
|
||||
|
||||
## zyplayer-doc-db 数据库文档
|
||||
## zyplayer-doc-wiki wiki文档工具
|
||||
1. 在线管理公司、项目及任意形式的文档
|
||||
2. 文档支持按空间划分,按人员分组授权,支持空间收藏和空间内的文档开放访问。
|
||||
3. 文档支持编辑、查看、评论、上传附件、历史版本查看、页面权限控制、文档搜索等功能。
|
||||
4. 文档编辑支持html富文本方式编辑和markdown的方式编辑。
|
||||
5. 本工具使用的开源工具有:vue、element-ui、mavon-editor、wangeditor等。
|
||||
6. 参考学习了Atlassian Confluence文档工具进行开发,争取作为该软件的开源免费替代产品,同时作为内部文档管理工具最好的存在。
|
||||
|
||||
## zyplayer-doc-db 数据库工具
|
||||
一款在线管理数据库的工具,你可以将所有的数据源统一管理到这里面,团队间的各成员就不必每人在自己电脑上装一个数据库管理软件,
|
||||
然后再添加数据源,可以统一修改数据库账号密码而不用群广播通知,新员工进入后对他使用到的数据源进行授权即可使用。
|
||||
|
||||
@@ -47,14 +89,6 @@ zyplayer-doc是一款适合团队和个人使用的WIKI文档管理工具,同
|
||||
5. 支持库函数和存储过程的增删改查,修改记录查询等。
|
||||
6. 目标是取代Navicat,做一个小而精的开源免费的在线数据库管理工具。
|
||||
|
||||
## zyplayer-doc-wiki wiki文档工具
|
||||
1. 在线管理公司、项目及任意形式的文档
|
||||
2. 文档支持按空间划分,按人员分组授权,支持空间收藏和空间内的文档开放访问。
|
||||
3. 文档支持编辑、查看、评论、上传附件、历史版本查看、页面权限控制、文档搜索等功能。
|
||||
4. 文档编辑支持html富文本方式编辑和markdown的方式编辑。
|
||||
5. 本工具使用的开源工具有:vue、element-ui、mavon-editor、wangeditor等。
|
||||
6. 参考学习了Atlassian Confluence文档工具进行开发,争取作为该软件的开源免费替代产品,同时作为内部文档管理工具最好的存在。
|
||||
|
||||
## zyplayer-doc-api API接口文档管理工具
|
||||
一款支持统一管理Swagger文档、OpenApi文档、自建接口文档的管理工具,具有文档查看、接口请求、全局参数管理等功能,设计走心,前端代码使用最新技术构建,每一行代码都是全新手动敲出来的,超级简单明了,代码简洁美观可读性好、易维护。
|
||||
|
||||
@@ -69,10 +103,10 @@ zyplayer-doc是一款适合团队和个人使用的WIKI文档管理工具,同
|
||||
5. zyplayer-doc-other 一些测试
|
||||
|
||||
# 用爱发电
|
||||
如果您正在使用这个项目并感觉良好,或者是想支持我继续开发,您可以通过如下`任意`方式支持我:
|
||||
如果您正在使用这个项目并感觉良好,或者是想支持项目继续开发,您可以通过如下`任意`方式支持我们:
|
||||
1. Star并分享 [zyplayer-doc](https://gitee.com/zyplayer/zyplayer-doc)
|
||||
2. 保留`关于页面`的项目链接
|
||||
3. 通过[一次性捐赠](http://doc.zyplayer.com/doc-wiki#/docs/w4eSzPWvQRSBvaCHZS8t6d/359) 支持,我会去买一杯咖啡或攒着去植发
|
||||
3. 你也可以选择使用 [商业版](https://doc.zyplayer.com/#/integrate/zyplayer-doc/commercial) 来支持我们
|
||||
|
||||
# 界面展示
|
||||
控制台页面
|
||||
|
||||
@@ -4,7 +4,7 @@ set dist_dir=dist
|
||||
|
||||
set app_name=zyplayer-doc
|
||||
|
||||
set version="1.1.2"
|
||||
set version="1.1.5"
|
||||
|
||||
set build_folder=%app_name%-%version%
|
||||
|
||||
@@ -20,6 +20,7 @@ md %target_dir%
|
||||
|
||||
copy zyplayer-doc-manage\target\zyplayer-doc.jar %target_dir%
|
||||
copy zyplayer-doc-manage\src\main\resources\application.yml %target_dir%
|
||||
copy zyplayer-doc-manage\src\main\resources\application_pg.yml %target_dir%
|
||||
|
||||
xcopy /e /y /q zyplayer-doc-other\script %target_dir%
|
||||
|
||||
|
||||
2
build.sh
2
build.sh
@@ -4,7 +4,7 @@ dist_dir="dist"
|
||||
|
||||
app_name="zyplayer-doc"
|
||||
|
||||
version="1.1.2"
|
||||
version="1.1.5"
|
||||
|
||||
build_folder="${app_name}-${version}"
|
||||
|
||||
|
||||
56
pom.xml
56
pom.xml
@@ -4,7 +4,7 @@
|
||||
|
||||
<groupId>com.zyplayer</groupId>
|
||||
<artifactId>zyplayer-doc</artifactId>
|
||||
<version>1.1.2</version>
|
||||
<version>1.0.0</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<name>zyplayer-doc</name>
|
||||
@@ -18,7 +18,7 @@
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<fastjson.version>1.2.53</fastjson.version>
|
||||
<zyplayer.doc.version>1.1.2</zyplayer.doc.version>
|
||||
<zyplayer.doc.version>1.0.0</zyplayer.doc.version>
|
||||
<spring.boot.version>2.1.6.RELEASE</spring.boot.version>
|
||||
</properties>
|
||||
|
||||
@@ -59,15 +59,10 @@
|
||||
<artifactId>spring-boot-starter-jdbc</artifactId>
|
||||
<version>${spring.boot.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-ldap</artifactId>
|
||||
<version>${spring.boot.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>5.1.47</version>
|
||||
<version>8.0.32</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.sourceforge.jtds</groupId>
|
||||
@@ -78,13 +73,13 @@
|
||||
<dependency>
|
||||
<groupId>com.dameng</groupId>
|
||||
<artifactId>DmJdbcDriver18</artifactId>
|
||||
<version>8.1.1.193</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.oracle</groupId>
|
||||
<artifactId>ojdbc6</artifactId>
|
||||
<version>12.1.0.1-atlassian-hosted</version>
|
||||
<version>8.1.2.192</version>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.oracle</groupId>-->
|
||||
<!-- <artifactId>ojdbc6</artifactId>-->
|
||||
<!-- <version>12.1.0.1-atlassian-hosted</version>-->
|
||||
<!-- </dependency>-->
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
@@ -115,11 +110,6 @@
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.12.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mybatis</groupId>
|
||||
<artifactId>mybatis</artifactId>
|
||||
<version>3.5.7</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>easyexcel</artifactId>
|
||||
@@ -128,7 +118,12 @@
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>3.4.3.2</version>
|
||||
<version>3.5.3.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-core</artifactId>
|
||||
<version>3.5.3.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
@@ -138,13 +133,19 @@
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid</artifactId>
|
||||
<version>1.2.14</version>
|
||||
<version>1.2.16</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.freemarker</groupId>
|
||||
<artifactId>freemarker</artifactId>
|
||||
<version>2.3.28</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.24</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
@@ -158,7 +159,7 @@
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<version>1.2.78</version>
|
||||
<version>1.2.83</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
@@ -166,14 +167,9 @@
|
||||
<version>5.6.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-core</artifactId>
|
||||
<version>3.4.3.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.zyplayer</groupId>
|
||||
<artifactId>zyplayer-doc-annotation</artifactId>
|
||||
<version>${zyplayer.doc.version}</version>
|
||||
<groupId>org.jsoup</groupId>
|
||||
<artifactId>jsoup</artifactId>
|
||||
<version>1.17.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.zyplayer</groupId>
|
||||
|
||||
@@ -1,22 +1,14 @@
|
||||
# 本文件用于已部署好的系统检测自己是否需要升级使用,怕有人担心安全一类的问题,所以不提供服务器接口来做
|
||||
lastVersion=1.1.2
|
||||
lastVersion=1.1.6
|
||||
|
||||
upgradeContent=1. #I636K1 全局搜索优化;\
|
||||
2. 同步闭源版本部分代码,修复页面顺序问题;\
|
||||
3. 添加注释和使用lombok @Mdai;\
|
||||
4. 修复初始化显示文档菜单显示高亮问题,修复重复点击报错问题 @〝走走停停;\
|
||||
5. 使用 @RequiredArgsConstructor 进行注入 @handy;\
|
||||
6. md预览过滤格式,tree图标,打包版本指定 @护身法;\
|
||||
7. mysql->oracle建表语句转换 @diantu;\
|
||||
8. sqlserver->mysql建表语句转换 @diantu;\
|
||||
9. 自动执行升级SQL、历史记录改为数据库存储、去掉git操作,优化代码结构,去掉不需要的文件;\
|
||||
10. 将wiki升级为vue3版本;\
|
||||
11. #I69PMN 修复模态框点击关闭问题;\
|
||||
12. WIKI空间支持分页,页面展示优化;\
|
||||
13. #I69ZVX 修改不能保存表情问题,优化脚本;\
|
||||
14. 修复mysql数据库使用前置sql语句时,因数据库名包含特殊字符导致的报错问题 @diantu;\
|
||||
15. 修复oracle使用use语句导致的报错问题 @diantu;\
|
||||
16. 新增达梦数据库支持 @diantu;\
|
||||
upgradeContent=1. 优化WIKI文档展示;\
|
||||
2. #I6S5YA 解决路由错误问题;\
|
||||
3. #I6Z8UX 解决表格样式问题;\
|
||||
4. #I6Z8UX 解决列表样式问题,修复保存后文档加载问题;\
|
||||
5. 升级fastjson版本;\
|
||||
6. 修复图片查看问题;\
|
||||
7. 移除错误的和不需要的依赖;\
|
||||
8. 修复保存后文档加载问题;
|
||||
|
||||
upgradeUrl=https://gitee.com/zyplayer/zyplayer-doc/releases
|
||||
nextStep=
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<parent>
|
||||
<groupId>com.zyplayer</groupId>
|
||||
<artifactId>zyplayer-doc</artifactId>
|
||||
<version>1.1.2</version>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
@@ -59,8 +59,6 @@
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>RELEASE</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ import java.util.stream.Collectors;
|
||||
@RestController
|
||||
@RequestMapping("/doc-api/doc/auth")
|
||||
public class ApiDocAuthController {
|
||||
private static Logger logger = LoggerFactory.getLogger(ApiDocAuthController.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(ApiDocAuthController.class);
|
||||
|
||||
@Resource
|
||||
UserAuthService userAuthService;
|
||||
@@ -93,7 +93,7 @@ public class ApiDocAuthController {
|
||||
if (CollectionUtils.isNotEmpty(userModuleAuthList)) {
|
||||
UserAuth userAuth = userModuleAuthList.remove(0);
|
||||
// 错误数据兼容移除
|
||||
if (userModuleAuthList.size() > 0) {
|
||||
if (!userModuleAuthList.isEmpty()) {
|
||||
List<Long> authIdList = userModuleAuthList.stream().map(UserAuth::getId).collect(Collectors.toList());
|
||||
userAuthService.removeByIds(authIdList);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ import java.util.Objects;
|
||||
@RestController
|
||||
@RequestMapping("/doc-api/doc")
|
||||
public class ApiDocumentController {
|
||||
private static Logger logger = LoggerFactory.getLogger(ApiDocumentController.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(ApiDocumentController.class);
|
||||
|
||||
@Resource
|
||||
ApiDocAuthJudgeService apiDocAuthJudgeService;
|
||||
|
||||
@@ -34,7 +34,7 @@ import java.util.Optional;
|
||||
@RestController
|
||||
@RequestMapping("/doc-api/global-param")
|
||||
public class ApiGlobalParamController {
|
||||
private static Logger logger = LoggerFactory.getLogger(ApiGlobalParamController.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(ApiGlobalParamController.class);
|
||||
|
||||
@Resource
|
||||
private ApiGlobalParamService apiGlobalParamService;
|
||||
|
||||
@@ -30,7 +30,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||
@RestController
|
||||
@RequestMapping("/doc-api/proxy")
|
||||
public class ApiPoxyRequestController {
|
||||
private static Logger logger = LoggerFactory.getLogger(ApiPoxyRequestController.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(ApiPoxyRequestController.class);
|
||||
|
||||
@Resource
|
||||
ApiCustomNodeService apiCustomNodeService;
|
||||
|
||||
@@ -30,7 +30,7 @@ import java.util.List;
|
||||
@RestController
|
||||
@RequestMapping("/doc-api/request-param")
|
||||
public class ApiRequestParamController {
|
||||
private static Logger logger = LoggerFactory.getLogger(ApiRequestParamController.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(ApiRequestParamController.class);
|
||||
|
||||
@Resource
|
||||
private ApiRequestParamService apiRequestParamService;
|
||||
|
||||
@@ -27,7 +27,7 @@ import java.util.Objects;
|
||||
@RestController
|
||||
@RequestMapping("/doc-api/share")
|
||||
public class ApiShareDocumentController {
|
||||
private static Logger logger = LoggerFactory.getLogger(ApiShareDocumentController.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(ApiShareDocumentController.class);
|
||||
|
||||
@Resource
|
||||
private ApiDocService swaggerDocService;
|
||||
|
||||
@@ -42,15 +42,15 @@ import java.util.stream.Stream;
|
||||
*/
|
||||
@Service
|
||||
public class SwaggerHttpRequestService {
|
||||
private static Logger logger = LoggerFactory.getLogger(SwaggerHttpRequestService.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(SwaggerHttpRequestService.class);
|
||||
|
||||
@Resource
|
||||
private ApiGlobalParamService apiGlobalParamService;
|
||||
|
||||
private static final Map<String, Method> requestMethodMap = Stream.of(Method.values()).collect(Collectors.toMap(val -> val.name().toLowerCase(), val -> val));
|
||||
|
||||
List<String> domainHeaderKeys = Arrays.asList("referer", "origin");
|
||||
List<String> needRequestHeaderKeys = Arrays.asList("user-agent");
|
||||
final List<String> domainHeaderKeys = Arrays.asList("referer", "origin");
|
||||
final List<String> needRequestHeaderKeys = Collections.singletonList("user-agent");
|
||||
|
||||
/**
|
||||
* 请求真实的swagger文档内容
|
||||
@@ -72,13 +72,12 @@ public class SwaggerHttpRequestService {
|
||||
requestHeaders.put("host", SwaggerDocUtil.getDomainHost(docDomain));
|
||||
}
|
||||
// 执行请求
|
||||
String resultStr = HttpRequest.get(docUrl)
|
||||
return HttpRequest.get(docUrl)
|
||||
.form(globalFormParamMap)
|
||||
.addHeaders(requestHeaders)
|
||||
.header("Accept", "application/json, text/javascript, */*; q=0.01")
|
||||
.cookie(this.getHttpCookie(request, globalCookieParamMap, null))
|
||||
.timeout(10000).execute().body();
|
||||
return resultStr;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -176,7 +175,7 @@ public class SwaggerHttpRequestService {
|
||||
multiResource.add(new BytesResource(file.getBytes(), file.getOriginalFilename()));
|
||||
}
|
||||
httpRequest.form(originKey, multiResource);
|
||||
} else if (fileList.size() > 0) {
|
||||
} else if (!fileList.isEmpty()) {
|
||||
MultipartFile multipartFile = fileList.get(0);
|
||||
httpRequest.form(originKey, multipartFile.getBytes(), multipartFile.getOriginalFilename());
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
zyplayer-doc-api/src/main/resources/dist/assets/DocInfo.3c0ecd1f.js
vendored
Normal file
1
zyplayer-doc-api/src/main/resources/dist/assets/DocInfo.3c0ecd1f.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{u as S,a9 as w,r as c,o as a,c as l,w as t,a as o,k as g,t as n,b as i,F as f,s,e as m,d as M}from"./vendor.6399378c.js";import{m as B}from"./index.086d0536.js";import{_ as C}from"./main.5fd30069.js";const N={setup(){const _=S(),D=w(()=>_.state.swaggerDoc),u=w(()=>_.state.swaggerDoc.info),e=w(()=>_.state.swaggerMethodStatistic);return{swaggerDoc:D,swaggerDocInfo:u,swaggerMethodStatistic:e,getDescription:I=>B.exports.markdownIt.render(I||"")}}},V=["href"],j=["href"],L=["href"],O=["innerHTML"],T={key:1,style:{"text-align":"center"}};function E(_,D,u,e,p,I){const r=c("a-form-item"),h=c("a-divider"),v=c("a-statistic"),k=c("a-card"),b=c("a-col"),y=c("a-row"),x=c("a-form");return a(),l(k,null,{default:t(()=>[e.swaggerDocInfo?(a(),l(x,{key:0,"label-col":{span:4},"wrapper-col":{span:20}},{default:t(()=>[o(r,{label:"\u6807\u9898"},{default:t(()=>[g(n(e.swaggerDocInfo.title),1)]),_:1}),o(r,{label:"\u7248\u672C"},{default:t(()=>[g(n(e.swaggerDocInfo.version),1)]),_:1}),e.swaggerDocInfo.contact?(a(),l(r,{key:0,label:"\u4F5C\u8005"},{default:t(()=>[e.swaggerDocInfo.contact.name?(a(),i(f,{key:0},[g(n(e.swaggerDocInfo.contact.name),1)],64)):s("",!0),e.swaggerDocInfo.contact.email?(a(),i(f,{key:1},[o(h,{type:"vertical"}),g(n(e.swaggerDocInfo.contact.email),1)],64)):s("",!0),e.swaggerDocInfo.contact.url?(a(),i(f,{key:2},[o(h,{type:"vertical"}),m("a",{href:e.swaggerDocInfo.contact.url,target:"_blank"},n(e.swaggerDocInfo.contact.url),9,V)],64)):s("",!0)]),_:1})):s("",!0),o(r,{label:"host"},{default:t(()=>[g(n(e.swaggerDoc.host),1)]),_:1}),e.swaggerDocInfo.license?(a(),l(r,{key:1,label:"\u8BB8\u53EF\u8BC1"},{default:t(()=>[m("a",{href:e.swaggerDocInfo.license.url,target:"_blank"},n(e.swaggerDocInfo.license.name),9,j)]),_:1})):s("",!0),e.swaggerDocInfo.termsOfService?(a(),l(r,{key:2,label:"\u670D\u52A1\u6761\u6B3E"},{default:t(()=>[m("a",{href:e.swaggerDocInfo.termsOfService,target:"_blank"},n(e.swaggerDocInfo.termsOfService),9,L)]),_:1})):s("",!0),o(r,{label:"\u6587\u6863\u8BF4\u660E"},{default:t(()=>[m("div",{class:"markdown-body",innerHTML:e.getDescription(e.swaggerDocInfo.description)},null,8,O)]),_:1}),o(r,{label:"\u63A5\u53E3\u7EDF\u8BA1"},{default:t(()=>[o(y,{gutter:[16,16]},{default:t(()=>[(a(),i(f,null,M(["get","post","put","delete","head","patch","options","trace","total"],d=>(a(),i(f,null,[e.swaggerMethodStatistic[d]?(a(),l(b,{key:0,span:6},{default:t(()=>[o(k,{size:"small"},{default:t(()=>[o(v,{title:d==="total"?"\u603B\u8BA1":d.toUpperCase()+"\u65B9\u6CD5",value:e.swaggerMethodStatistic[d],suffix:"\u4E2A"},null,8,["title","value"])]),_:2},1024)]),_:2},1024)):s("",!0)],64))),64))]),_:1})]),_:1})]),_:1})):(a(),i("div",T,"\u6682\u65E0\u6587\u6863\u4FE1\u606F\uFF0C\u8BF7\u5148\u9009\u62E9\u6587\u6863"))]),_:1})}var U=C(N,[["render",E]]);export{U as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{u as S,a9 as w,r as c,o as a,c as l,w as t,a as o,m as g,t as n,b as i,F as f,k as s,e as m,d as M}from"./vendor.627eef95.js";import{m as B}from"./index.a17fca00.js";import{_ as C}from"./main.2b6ab185.js";const N={setup(){const _=S(),D=w(()=>_.state.swaggerDoc),u=w(()=>_.state.swaggerDoc.info),e=w(()=>_.state.swaggerMethodStatistic);return{swaggerDoc:D,swaggerDocInfo:u,swaggerMethodStatistic:e,getDescription:I=>B.exports.markdownIt.render(I||"")}}},V=["href"],j=["href"],L=["href"],O=["innerHTML"],T={key:1,style:{"text-align":"center"}};function E(_,D,u,e,p,I){const r=c("a-form-item"),h=c("a-divider"),b=c("a-statistic"),k=c("a-card"),v=c("a-col"),y=c("a-row"),x=c("a-form");return a(),l(k,null,{default:t(()=>[e.swaggerDocInfo?(a(),l(x,{key:0,"label-col":{span:4},"wrapper-col":{span:20}},{default:t(()=>[o(r,{label:"\u6807\u9898"},{default:t(()=>[g(n(e.swaggerDocInfo.title),1)]),_:1}),o(r,{label:"\u7248\u672C"},{default:t(()=>[g(n(e.swaggerDocInfo.version),1)]),_:1}),e.swaggerDocInfo.contact?(a(),l(r,{key:0,label:"\u4F5C\u8005"},{default:t(()=>[e.swaggerDocInfo.contact.name?(a(),i(f,{key:0},[g(n(e.swaggerDocInfo.contact.name),1)],64)):s("",!0),e.swaggerDocInfo.contact.email?(a(),i(f,{key:1},[o(h,{type:"vertical"}),g(n(e.swaggerDocInfo.contact.email),1)],64)):s("",!0),e.swaggerDocInfo.contact.url?(a(),i(f,{key:2},[o(h,{type:"vertical"}),m("a",{href:e.swaggerDocInfo.contact.url,target:"_blank"},n(e.swaggerDocInfo.contact.url),9,V)],64)):s("",!0)]),_:1})):s("",!0),o(r,{label:"host"},{default:t(()=>[g(n(e.swaggerDoc.host),1)]),_:1}),e.swaggerDocInfo.license?(a(),l(r,{key:1,label:"\u8BB8\u53EF\u8BC1"},{default:t(()=>[m("a",{href:e.swaggerDocInfo.license.url,target:"_blank"},n(e.swaggerDocInfo.license.name),9,j)]),_:1})):s("",!0),e.swaggerDocInfo.termsOfService?(a(),l(r,{key:2,label:"\u670D\u52A1\u6761\u6B3E"},{default:t(()=>[m("a",{href:e.swaggerDocInfo.termsOfService,target:"_blank"},n(e.swaggerDocInfo.termsOfService),9,L)]),_:1})):s("",!0),o(r,{label:"\u6587\u6863\u8BF4\u660E"},{default:t(()=>[m("div",{class:"markdown-body",innerHTML:e.getDescription(e.swaggerDocInfo.description)},null,8,O)]),_:1}),o(r,{label:"\u63A5\u53E3\u7EDF\u8BA1"},{default:t(()=>[o(y,{gutter:[16,16]},{default:t(()=>[(a(),i(f,null,M(["get","post","put","delete","head","patch","options","trace","total"],d=>(a(),i(f,null,[e.swaggerMethodStatistic[d]?(a(),l(v,{key:0,span:6},{default:t(()=>[o(k,{size:"small"},{default:t(()=>[o(b,{title:d==="total"?"\u603B\u8BA1":d.toUpperCase()+"\u65B9\u6CD5",value:e.swaggerMethodStatistic[d],suffix:"\u4E2A"},null,8,["title","value"])]),_:2},1024)]),_:2},1024)):s("",!0)],64))),64))]),_:1})]),_:1})]),_:1})):(a(),i("div",T,"\u6682\u65E0\u6587\u6863\u4FE1\u606F\uFF0C\u8BF7\u5148\u9009\u62E9\u6587\u6863"))]),_:1})}var U=C(N,[["render",E]]);export{U as default};
|
||||
@@ -1 +1 @@
|
||||
import{u as S,a9 as D,r as i,o as t,c as l,w as o,a as n,m as s,t as c,b as p,F as f,k as r,e as m,d as w}from"./vendor.627eef95.js";import{m as M}from"./index.a17fca00.js";import{_ as B}from"./main.2b6ab185.js";const C={setup(){const _=S(),A=D(()=>_.state.openApiDoc),u=D(()=>_.state.openApiDoc.info),e=D(()=>_.state.openApiMethodStatistic);return{openApiDoc:A,openApiDocInfo:u,openApiMethodStatistic:e,getDescription:I=>M.exports.markdownIt.render(I||"")}}},N=["href"],V=["href"],j=["href"],L=["innerHTML"],O={key:1,style:{"text-align":"center"}};function T(_,A,u,e,b,I){const a=i("a-form-item"),h=i("a-divider"),v=i("a-statistic"),k=i("a-card"),y=i("a-col"),g=i("a-row"),x=i("a-form");return t(),l(k,null,{default:o(()=>[e.openApiDocInfo?(t(),l(x,{key:0,"label-col":{span:4},"wrapper-col":{span:20}},{default:o(()=>[n(a,{label:"\u6807\u9898"},{default:o(()=>[s(c(e.openApiDocInfo.title),1)]),_:1}),n(a,{label:"\u7248\u672C"},{default:o(()=>[s(c(e.openApiDocInfo.version),1)]),_:1}),e.openApiDocInfo.contact?(t(),l(a,{key:0,label:"\u4F5C\u8005"},{default:o(()=>[e.openApiDocInfo.contact.name?(t(),p(f,{key:0},[s(c(e.openApiDocInfo.contact.name),1)],64)):r("",!0),e.openApiDocInfo.contact.email?(t(),p(f,{key:1},[n(h,{type:"vertical"}),s(c(e.openApiDocInfo.contact.email),1)],64)):r("",!0),e.openApiDocInfo.contact.url?(t(),p(f,{key:2},[n(h,{type:"vertical"}),m("a",{href:e.openApiDocInfo.contact.url,target:"_blank"},c(e.openApiDocInfo.contact.url),9,N)],64)):r("",!0)]),_:1})):r("",!0),n(a,{label:"host"},{default:o(()=>[s(c(e.openApiDoc.host),1)]),_:1}),e.openApiDocInfo.license?(t(),l(a,{key:1,label:"\u8BB8\u53EF\u8BC1"},{default:o(()=>[m("a",{href:e.openApiDocInfo.license.url,target:"_blank"},c(e.openApiDocInfo.license.name),9,V)]),_:1})):r("",!0),e.openApiDocInfo.termsOfService?(t(),l(a,{key:2,label:"\u670D\u52A1\u6761\u6B3E"},{default:o(()=>[m("a",{href:e.openApiDocInfo.termsOfService,target:"_blank"},c(e.openApiDocInfo.termsOfService),9,j)]),_:1})):r("",!0),n(a,{label:"\u6587\u6863\u8BF4\u660E"},{default:o(()=>[m("div",{class:"markdown-body",innerHTML:e.getDescription(e.openApiDocInfo.description)},null,8,L)]),_:1}),n(a,{label:"\u63A5\u53E3\u7EDF\u8BA1"},{default:o(()=>[n(g,{gutter:[16,16]},{default:o(()=>[(t(),p(f,null,w(["get","post","put","delete","head","patch","options","trace","total"],d=>(t(),p(f,null,[e.openApiMethodStatistic[d]?(t(),l(y,{key:0,span:6},{default:o(()=>[n(k,{size:"small"},{default:o(()=>[n(v,{title:d==="total"?"\u603B\u8BA1":d.toUpperCase()+"\u65B9\u6CD5",value:e.openApiMethodStatistic[d],suffix:"\u4E2A"},null,8,["title","value"])]),_:2},1024)]),_:2},1024)):r("",!0)],64))),64))]),_:1})]),_:1})]),_:1})):(t(),p("div",O,"\u6682\u65E0\u6587\u6863\u4FE1\u606F\uFF0C\u8BF7\u5148\u9009\u62E9\u6587\u6863"))]),_:1})}var z=B(C,[["render",T]]);export{z as default};
|
||||
import{u as S,a9 as D,r as i,o as t,c as l,w as o,a as n,k as p,t as c,b as s,F as f,s as r,e as m,d as w}from"./vendor.6399378c.js";import{m as M}from"./index.086d0536.js";import{_ as B}from"./main.5fd30069.js";const C={setup(){const _=S(),A=D(()=>_.state.openApiDoc),u=D(()=>_.state.openApiDoc.info),e=D(()=>_.state.openApiMethodStatistic);return{openApiDoc:A,openApiDocInfo:u,openApiMethodStatistic:e,getDescription:I=>M.exports.markdownIt.render(I||"")}}},N=["href"],V=["href"],j=["href"],L=["innerHTML"],O={key:1,style:{"text-align":"center"}};function T(_,A,u,e,v,I){const a=i("a-form-item"),h=i("a-divider"),b=i("a-statistic"),k=i("a-card"),y=i("a-col"),g=i("a-row"),x=i("a-form");return t(),l(k,null,{default:o(()=>[e.openApiDocInfo?(t(),l(x,{key:0,"label-col":{span:4},"wrapper-col":{span:20}},{default:o(()=>[n(a,{label:"\u6807\u9898"},{default:o(()=>[p(c(e.openApiDocInfo.title),1)]),_:1}),n(a,{label:"\u7248\u672C"},{default:o(()=>[p(c(e.openApiDocInfo.version),1)]),_:1}),e.openApiDocInfo.contact?(t(),l(a,{key:0,label:"\u4F5C\u8005"},{default:o(()=>[e.openApiDocInfo.contact.name?(t(),s(f,{key:0},[p(c(e.openApiDocInfo.contact.name),1)],64)):r("",!0),e.openApiDocInfo.contact.email?(t(),s(f,{key:1},[n(h,{type:"vertical"}),p(c(e.openApiDocInfo.contact.email),1)],64)):r("",!0),e.openApiDocInfo.contact.url?(t(),s(f,{key:2},[n(h,{type:"vertical"}),m("a",{href:e.openApiDocInfo.contact.url,target:"_blank"},c(e.openApiDocInfo.contact.url),9,N)],64)):r("",!0)]),_:1})):r("",!0),n(a,{label:"host"},{default:o(()=>[p(c(e.openApiDoc.host),1)]),_:1}),e.openApiDocInfo.license?(t(),l(a,{key:1,label:"\u8BB8\u53EF\u8BC1"},{default:o(()=>[m("a",{href:e.openApiDocInfo.license.url,target:"_blank"},c(e.openApiDocInfo.license.name),9,V)]),_:1})):r("",!0),e.openApiDocInfo.termsOfService?(t(),l(a,{key:2,label:"\u670D\u52A1\u6761\u6B3E"},{default:o(()=>[m("a",{href:e.openApiDocInfo.termsOfService,target:"_blank"},c(e.openApiDocInfo.termsOfService),9,j)]),_:1})):r("",!0),n(a,{label:"\u6587\u6863\u8BF4\u660E"},{default:o(()=>[m("div",{class:"markdown-body",innerHTML:e.getDescription(e.openApiDocInfo.description)},null,8,L)]),_:1}),n(a,{label:"\u63A5\u53E3\u7EDF\u8BA1"},{default:o(()=>[n(g,{gutter:[16,16]},{default:o(()=>[(t(),s(f,null,w(["get","post","put","delete","head","patch","options","trace","total"],d=>(t(),s(f,null,[e.openApiMethodStatistic[d]?(t(),l(y,{key:0,span:6},{default:o(()=>[n(k,{size:"small"},{default:o(()=>[n(b,{title:d==="total"?"\u603B\u8BA1":d.toUpperCase()+"\u65B9\u6CD5",value:e.openApiMethodStatistic[d],suffix:"\u4E2A"},null,8,["title","value"])]),_:2},1024)]),_:2},1024)):r("",!0)],64))),64))]),_:1})]),_:1})]),_:1})):(t(),s("div",O,"\u6682\u65E0\u6587\u6863\u4FE1\u606F\uFF0C\u8BF7\u5148\u9009\u62E9\u6587\u6863"))]),_:1})}var z=B(C,[["render",T]]);export{z as default};
|
||||
File diff suppressed because one or more lines are too long
15
zyplayer-doc-api/src/main/resources/dist/assets/DocManage.a533db9b.js
vendored
Normal file
15
zyplayer-doc-api/src/main/resources/dist/assets/DocManage.a533db9b.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{v as y,u as j,y as n,W as k,r as h,o as g,c as v,w,B as x,e as D}from"./vendor.627eef95.js";import{D as I,o as _}from"./DocContent.ebee379f.js";import{m as M}from"./index.a17fca00.js";import{_ as q}from"./main.2b6ab185.js";import"./logUtil.8ec1c7d7.js";const C={components:{DocContent:I},setup(){const a=y(),t=j();let p=n("doc"),o=n([]),r=n([]),c=n({url:"",description:"",method:"",consumes:"",produces:""}),s=n(!1),i=0,l;const m=()=>{let P=a.query.path+"."+a.query.method;if(Object.keys(t.state.openApiUrlMethodMap).length<=0){console.log("\u6587\u6863\u5C1A\u672A\u52A0\u8F7D\uFF0C\u7B49\u5F85\u52A0\u8F7D\u5B8C\u6210"),l||(l=setInterval(()=>{if(s.value||i++>50){clearInterval(l);return}Object.keys(t.state.openApiUrlMethodMap).length>0&&(console.log("\u6587\u6863\u5185\u5BB9\u6539\u53D8\uFF0C\u91CD\u65B0\u52A0\u8F7D\u6587\u6863"),m())},1e3));return}let e=t.state.openApiUrlMethodMap[P];if(!e){x.error("\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u7684\u6587\u6863");return}s.value=!0,t.commit("addTableName",{key:a.fullPath,val:e.summary});let u="",d="";e.consumes&&e.consumes.length>0&&(u=e.consumes.join(" ")),e.produces&&e.produces.length>0&&(d=e.produces.join(" "));let L=M.exports.markdownIt.render(e.description||e.summary||"");c.value={url:e.url,description:L,method:e.method||"",consumes:u,produces:d};let f=t.state.openApiComponents;o.value=_.getRequestParamList(e.parameters,f),r.value=_.getResponseParamList(e.responses,f)};return k(()=>{m()}),{docInfoShow:c,activePage:p,changePage:()=>{},isLoadSuccess:s,requestParamList:o,responseParamList:r}}},S=D("div",{style:{padding:"20px 0",height:"100px"}},null,-1);function b(a,t,p,o,r,c){const s=h("DocContent"),i=h("a-spin");return o.isLoadSuccess?(g(),v(s,{key:0,docInfoShow:o.docInfoShow,requestParamList:o.requestParamList,responseParamList:o.responseParamList},null,8,["docInfoShow","requestParamList","responseParamList"])):(g(),v(i,{key:1,tip:"\u6587\u6863\u6570\u636E\u52A0\u8F7D\u4E2D..."},{default:w(()=>[S]),_:1}))}var T=q(C,[["render",b]]);export{T as default};
|
||||
import{v as y,u as j,y as n,W as k,r as h,o as g,c as v,w,B as x,e as D}from"./vendor.6399378c.js";import{D as I,o as _}from"./DocContent.6940f3d1.js";import{m as M}from"./index.086d0536.js";import{_ as q}from"./main.5fd30069.js";import"./logUtil.6309fa68.js";const C={components:{DocContent:I},setup(){const a=y(),t=j();let p=n("doc"),o=n([]),r=n([]),i=n({url:"",description:"",method:"",consumes:"",produces:""}),s=n(!1),c=0,l;const m=()=>{let P=a.query.path+"."+a.query.method;if(Object.keys(t.state.openApiUrlMethodMap).length<=0){console.log("\u6587\u6863\u5C1A\u672A\u52A0\u8F7D\uFF0C\u7B49\u5F85\u52A0\u8F7D\u5B8C\u6210"),l||(l=setInterval(()=>{if(s.value||c++>50){clearInterval(l);return}Object.keys(t.state.openApiUrlMethodMap).length>0&&(console.log("\u6587\u6863\u5185\u5BB9\u6539\u53D8\uFF0C\u91CD\u65B0\u52A0\u8F7D\u6587\u6863"),m())},1e3));return}let e=t.state.openApiUrlMethodMap[P];if(!e){x.error("\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u7684\u6587\u6863");return}s.value=!0,t.commit("addTableName",{key:a.fullPath,val:e.summary});let d="",u="";e.consumes&&e.consumes.length>0&&(d=e.consumes.join(" ")),e.produces&&e.produces.length>0&&(u=e.produces.join(" "));let L=M.exports.markdownIt.render(e.description||e.summary||"");i.value={url:e.url,description:L,method:e.method||"",consumes:d,produces:u};let f=t.state.openApiComponents;o.value=_.getRequestParamList(e.parameters,f),r.value=_.getResponseParamList(e.responses,f)};return k(()=>{m()}),{docInfoShow:i,activePage:p,changePage:()=>{},isLoadSuccess:s,requestParamList:o,responseParamList:r}}},S=D("div",{style:{padding:"20px 0",height:"100px"}},null,-1);function A(a,t,p,o,r,i){const s=h("DocContent"),c=h("a-spin");return o.isLoadSuccess?(g(),v(s,{key:0,docInfoShow:o.docInfoShow,requestParamList:o.requestParamList,responseParamList:o.responseParamList},null,8,["docInfoShow","requestParamList","responseParamList"])):(g(),v(c,{key:1,tip:"\u6587\u6863\u6570\u636E\u52A0\u8F7D\u4E2D..."},{default:w(()=>[S]),_:1}))}var T=q(C,[["render",A]]);export{T as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{v as L,u as y,y as a,W as j,r as g,o as h,c as v,w as D,B as k,e as x}from"./vendor.627eef95.js";import{D as I,s as _}from"./DocContent.544f7edd.js";import{m as M}from"./index.a17fca00.js";import{_ as q}from"./main.2b6ab185.js";import"./logUtil.8ec1c7d7.js";const S={components:{DocContent:I},setup(){const r=L(),s=y();let d=a("doc"),t=a([]),n=a([]),c=a({url:"",description:"",method:"",consumes:"",produces:""}),o=a(!1),i=0,l;const m=()=>{let P=r.query.path+"."+r.query.method;if(Object.keys(s.state.swaggerUrlMethodMap).length<=0){console.log("\u6587\u6863\u5C1A\u672A\u52A0\u8F7D\uFF0C\u7B49\u5F85\u52A0\u8F7D\u5B8C\u6210"),l||(l=setInterval(()=>{if(o.value||i++>50){clearInterval(l);return}Object.keys(s.state.swaggerUrlMethodMap).length>0&&(console.log("\u6587\u6863\u5185\u5BB9\u6539\u53D8\uFF0C\u91CD\u65B0\u52A0\u8F7D\u6587\u6863"),m())},1e3));return}let e=s.state.swaggerUrlMethodMap[P];if(!e){k.error("\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u7684\u6587\u6863");return}o.value=!0,s.commit("addTableName",{key:r.fullPath,val:e.summary});let u="",p="";e.consumes&&e.consumes.length>0&&(u=e.consumes.join(" ")),e.produces&&e.produces.length>0&&(p=e.produces.join(" "));let w=M.exports.markdownIt.render(e.description||e.summary||"");c.value={url:e.url,description:w,method:e.method||"",consumes:u,produces:p};let f=s.state.swaggerDefinitions;t.value=_.getRequestParamList(e.parameters,f),n.value=_.getResponseParamList(e.responses,f)};return j(()=>{m()}),{docInfoShow:c,activePage:d,changePage:()=>{},isLoadSuccess:o,requestParamList:t,responseParamList:n}}},C=x("div",{style:{padding:"20px 0",height:"100px"}},null,-1);function b(r,s,d,t,n,c){const o=g("DocContent"),i=g("a-spin");return t.isLoadSuccess?(h(),v(o,{key:0,docInfoShow:t.docInfoShow,requestParamList:t.requestParamList,responseParamList:t.responseParamList},null,8,["docInfoShow","requestParamList","responseParamList"])):(h(),v(i,{key:1,tip:"\u6587\u6863\u6570\u636E\u52A0\u8F7D\u4E2D..."},{default:D(()=>[C]),_:1}))}var V=q(S,[["render",b]]);export{V as default};
|
||||
import{v as L,u as y,y as a,W as j,r as g,o as h,c as v,w as D,B as k,e as x}from"./vendor.6399378c.js";import{D as I,s as _}from"./DocContent.a9f68c91.js";import{m as M}from"./index.086d0536.js";import{_ as q}from"./main.5fd30069.js";import"./logUtil.6309fa68.js";const S={components:{DocContent:I},setup(){const r=L(),s=y();let m=a("doc"),t=a([]),n=a([]),c=a({url:"",description:"",method:"",consumes:"",produces:""}),o=a(!1),i=0,l;const u=()=>{let P=r.query.path+"."+r.query.method;if(Object.keys(s.state.swaggerUrlMethodMap).length<=0){console.log("\u6587\u6863\u5C1A\u672A\u52A0\u8F7D\uFF0C\u7B49\u5F85\u52A0\u8F7D\u5B8C\u6210"),l||(l=setInterval(()=>{if(o.value||i++>50){clearInterval(l);return}Object.keys(s.state.swaggerUrlMethodMap).length>0&&(console.log("\u6587\u6863\u5185\u5BB9\u6539\u53D8\uFF0C\u91CD\u65B0\u52A0\u8F7D\u6587\u6863"),u())},1e3));return}let e=s.state.swaggerUrlMethodMap[P];if(!e){k.error("\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u7684\u6587\u6863");return}o.value=!0,s.commit("addTableName",{key:r.fullPath,val:e.summary});let d="",p="";e.consumes&&e.consumes.length>0&&(d=e.consumes.join(" ")),e.produces&&e.produces.length>0&&(p=e.produces.join(" "));let w=M.exports.markdownIt.render(e.description||e.summary||"");c.value={url:e.url,description:w,method:e.method||"",consumes:d,produces:p};let f=s.state.swaggerDefinitions;t.value=_.getRequestParamList(e.parameters,f),n.value=_.getResponseParamList(e.responses,f)};return j(()=>{u()}),{docInfoShow:c,activePage:m,changePage:()=>{},isLoadSuccess:o,requestParamList:t,responseParamList:n}}},C=x("div",{style:{padding:"20px 0",height:"100px"}},null,-1);function B(r,s,m,t,n,c){const o=g("DocContent"),i=g("a-spin");return t.isLoadSuccess?(h(),v(o,{key:0,docInfoShow:t.docInfoShow,requestParamList:t.requestParamList,responseParamList:t.responseParamList},null,8,["docInfoShow","requestParamList","responseParamList"])):(h(),v(i,{key:1,tip:"\u6587\u6863\u6570\u636E\u52A0\u8F7D\u4E2D..."},{default:D(()=>[C]),_:1}))}var V=q(S,[["render",B]]);export{V as default};
|
||||
@@ -1 +1 @@
|
||||
var K=Object.defineProperty;var I=Object.getOwnPropertySymbols;var N=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var B=(s,e,a)=>e in s?K(s,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):s[e]=a,x=(s,e)=>{for(var a in e||(e={}))N.call(e,a)&&B(s,a,e[a]);if(I)for(var a of I(e))O.call(e,a)&&B(s,a,e[a]);return s};import{z as V}from"./custom.e03d703e.js";import{P as S,a4 as U,R as j,u as A,y as L,W as F,r as m,o as l,b as u,e as z,a as d,w as n,F as f,c as k,t as G,k as b,B as R,m as c}from"./vendor.627eef95.js";import{_ as H}from"./main.2b6ab185.js";const q={components:{PlusOutlined:S,SearchOutlined:U,ReloadOutlined:j},props:{dynamicParam:{type:Object,required:!0}},setup(s){const e=A();let a=L([]),t=L(!1);const h=async()=>{i.value={},t.value=!0,V.docApiGlobalParamList(s.dynamicParam).then(o=>{setTimeout(()=>t.value=!1,500),a.value=o.data||[],e.commit("setGlobalParamOnChange",a.value,s.dynamicParam.id)})};let i=L({}),D=L();const p=()=>{i.value.isEdit&&v(i.value);let o={isEdit:!0,paramType:1};a.value.unshift(o),i.value=o,setTimeout(()=>{let r=document.getElementsByClassName("ant-table-body")[0];r.scrollTop=0},0)},P=o=>{i.value.isEdit&&v(i.value),o.isEdit=!0,i.value=x({},o)},v=o=>{o.isEdit=!1,o.id?a.value.forEach(r=>r.isEdit=!1):a.value=a.value.filter(r=>r!==o),i.value={}},E=o=>{if(!i.value.paramKey||!i.value.paramValue){R.error("\u53C2\u6570\u540D\u6216\u53C2\u6570\u503C\u4E0D\u80FD\u4E3A\u7A7A");return}let r=x(x({},s.dynamicParam),i.value);V.docApiGlobalParamUpdate(r).then(w=>{o.isEdit=!1,h()})},T=async o=>{V.docApiGlobalParamUpdate({id:o.id,yn:0}).then(r=>{h()})};return F(()=>{h()}),{docList:a,docListLoading:t,docEdit:i,tableRef:D,searchDocList:h,deleteDoc:T,editDoc:P,saveEditDoc:E,cancelEditDoc:v,addDocLine:p,docListColumns:[{title:"\u53C2\u6570\u540D\u79F0",dataIndex:"paramKey",width:250},{title:"\u53C2\u6570\u503C",dataIndex:"paramValue"},{title:"\u53C2\u6570\u4F4D\u7F6E",dataIndex:"paramType",width:120},{title:"\u64CD\u4F5C",dataIndex:"operation",fixed:"right",width:170}]}}},M={style:{"margin-bottom":"10px","text-align":"right"}},W=c(" \u5237\u65B0"),J=c(" \u65B0\u5EFA"),Q={key:1},X={key:1},Y=c("Form"),Z=c("Header"),$=c("Cookie"),ee=c("Form"),ae=c("Header"),te=c("Cookie"),oe=c("\u53D6\u6D88"),ne=c("\u4FDD\u5B58"),le=c("\u7F16\u8F91"),ie=c("\u5220\u9664");function de(s,e,a,t,h,i){const D=m("reload-outlined"),p=m("a-button"),P=m("plus-outlined"),v=m("a-input"),E=m("a-select-option"),T=m("a-select"),o=m("a-tag"),r=m("a-popconfirm"),w=m("a-table");return l(),u(f,null,[z("div",M,[d(p,{onClick:t.searchDocList,type:"primary"},{icon:n(()=>[d(D)]),default:n(()=>[W]),_:1},8,["onClick"]),d(p,{onClick:t.addDocLine},{icon:n(()=>[d(P)]),default:n(()=>[J]),_:1},8,["onClick"])]),d(w,{dataSource:t.docList,columns:t.docListColumns,size:"middle",id:"paramTable",loading:t.docListLoading,pagination:!1,scroll:{x:1e3,y:"calc(100vh - 240px)"}},{bodyCell:n(({column:g,text:C,record:y})=>[g.dataIndex==="paramKey"?(l(),u(f,{key:0},[y.isEdit?(l(),k(v,{key:0,placeholder:"\u8BF7\u8F93\u5165\u53C2\u6570\u540D\u79F0",value:t.docEdit.paramKey,"onUpdate:value":e[0]||(e[0]=_=>t.docEdit.paramKey=_)},null,8,["value"])):(l(),u("span",Q,G(C),1))],64)):b("",!0),g.dataIndex==="paramValue"?(l(),u(f,{key:1},[y.isEdit?(l(),k(v,{key:0,rows:1,placeholder:"\u8BF7\u8F93\u5165\u53C2\u6570\u503C",value:t.docEdit.paramValue,"onUpdate:value":e[1]||(e[1]=_=>t.docEdit.paramValue=_)},null,8,["value"])):(l(),u("span",X,G(C),1))],64)):b("",!0),g.dataIndex==="paramType"?(l(),u(f,{key:2},[y.isEdit?(l(),k(T,{key:0,placeholder:"\u53C2\u6570\u4F4D\u7F6E",value:t.docEdit.paramType,"onUpdate:value":e[2]||(e[2]=_=>t.docEdit.paramType=_),style:{width:"110px"}},{default:n(()=>[d(E,{value:1},{default:n(()=>[Y]),_:1}),d(E,{value:2},{default:n(()=>[Z]),_:1}),d(E,{value:3},{default:n(()=>[$]),_:1})]),_:1},8,["value"])):(l(),u(f,{key:1},[C===1?(l(),k(o,{key:0,color:"green"},{default:n(()=>[ee]),_:1})):C===2?(l(),k(o,{key:1,color:"pink"},{default:n(()=>[ae]),_:1})):C===3?(l(),k(o,{key:2,color:"pink"},{default:n(()=>[te]),_:1})):b("",!0)],64))],64)):b("",!0),g.dataIndex==="operation"?(l(),u(f,{key:3},[y.isEdit?(l(),u(f,{key:0},[d(p,{type:"link",onClick:_=>t.cancelEditDoc(y)},{default:n(()=>[oe]),_:2},1032,["onClick"]),d(p,{type:"link",onClick:_=>t.saveEditDoc(y)},{default:n(()=>[ne]),_:2},1032,["onClick"])],64)):(l(),u(f,{key:1},[d(p,{type:"link",onClick:_=>t.editDoc(y)},{default:n(()=>[le]),_:2},1032,["onClick"]),d(r,{title:"\u786E\u5B9A\u8981\u5220\u9664\u5417\uFF1F",onConfirm:_=>t.deleteDoc(y)},{default:n(()=>[d(p,{type:"link",danger:""},{default:n(()=>[ie]),_:1})]),_:2},1032,["onConfirm"])],64))],64)):b("",!0)]),_:1},8,["dataSource","columns","loading","scroll"])],64)}var _e=H(q,[["render",de]]);export{_e as E};
|
||||
var K=Object.defineProperty;var I=Object.getOwnPropertySymbols;var N=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var B=(s,e,a)=>e in s?K(s,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):s[e]=a,x=(s,e)=>{for(var a in e||(e={}))N.call(e,a)&&B(s,a,e[a]);if(I)for(var a of I(e))O.call(e,a)&&B(s,a,e[a]);return s};import{z as V}from"./custom.471d0de0.js";import{P as S,a4 as U,R as j,u as A,y as L,W as F,r as m,o as l,b as u,e as z,a as d,w as n,F as f,c as k,t as G,s as g,B as R,k as c}from"./vendor.6399378c.js";import{_ as H}from"./main.5fd30069.js";const q={components:{PlusOutlined:S,SearchOutlined:U,ReloadOutlined:j},props:{dynamicParam:{type:Object,required:!0}},setup(s){const e=A();let a=L([]),t=L(!1);const h=async()=>{i.value={},t.value=!0,V.docApiGlobalParamList(s.dynamicParam).then(o=>{setTimeout(()=>t.value=!1,500),a.value=o.data||[],e.commit("setGlobalParamOnChange",a.value,s.dynamicParam.id)})};let i=L({}),D=L();const p=()=>{i.value.isEdit&&v(i.value);let o={isEdit:!0,paramType:1};a.value.unshift(o),i.value=o,setTimeout(()=>{let r=document.getElementsByClassName("ant-table-body")[0];r.scrollTop=0},0)},P=o=>{i.value.isEdit&&v(i.value),o.isEdit=!0,i.value=x({},o)},v=o=>{o.isEdit=!1,o.id?a.value.forEach(r=>r.isEdit=!1):a.value=a.value.filter(r=>r!==o),i.value={}},E=o=>{if(!i.value.paramKey||!i.value.paramValue){R.error("\u53C2\u6570\u540D\u6216\u53C2\u6570\u503C\u4E0D\u80FD\u4E3A\u7A7A");return}let r=x(x({},s.dynamicParam),i.value);V.docApiGlobalParamUpdate(r).then(w=>{o.isEdit=!1,h()})},T=async o=>{V.docApiGlobalParamUpdate({id:o.id,yn:0}).then(r=>{h()})};return F(()=>{h()}),{docList:a,docListLoading:t,docEdit:i,tableRef:D,searchDocList:h,deleteDoc:T,editDoc:P,saveEditDoc:E,cancelEditDoc:v,addDocLine:p,docListColumns:[{title:"\u53C2\u6570\u540D\u79F0",dataIndex:"paramKey",width:250},{title:"\u53C2\u6570\u503C",dataIndex:"paramValue"},{title:"\u53C2\u6570\u4F4D\u7F6E",dataIndex:"paramType",width:120},{title:"\u64CD\u4F5C",dataIndex:"operation",fixed:"right",width:170}]}}},M={style:{"margin-bottom":"10px","text-align":"right"}},W=c(" \u5237\u65B0"),J=c(" \u65B0\u5EFA"),Q={key:1},X={key:1},Y=c("Form"),Z=c("Header"),$=c("Cookie"),ee=c("Form"),ae=c("Header"),te=c("Cookie"),oe=c("\u53D6\u6D88"),ne=c("\u4FDD\u5B58"),le=c("\u7F16\u8F91"),ie=c("\u5220\u9664");function de(s,e,a,t,h,i){const D=m("reload-outlined"),p=m("a-button"),P=m("plus-outlined"),v=m("a-input"),E=m("a-select-option"),T=m("a-select"),o=m("a-tag"),r=m("a-popconfirm"),w=m("a-table");return l(),u(f,null,[z("div",M,[d(p,{onClick:t.searchDocList,type:"primary"},{icon:n(()=>[d(D)]),default:n(()=>[W]),_:1},8,["onClick"]),d(p,{onClick:t.addDocLine},{icon:n(()=>[d(P)]),default:n(()=>[J]),_:1},8,["onClick"])]),d(w,{dataSource:t.docList,columns:t.docListColumns,size:"middle",id:"paramTable",loading:t.docListLoading,pagination:!1,scroll:{x:1e3,y:"calc(100vh - 240px)"}},{bodyCell:n(({column:b,text:C,record:y})=>[b.dataIndex==="paramKey"?(l(),u(f,{key:0},[y.isEdit?(l(),k(v,{key:0,placeholder:"\u8BF7\u8F93\u5165\u53C2\u6570\u540D\u79F0",value:t.docEdit.paramKey,"onUpdate:value":e[0]||(e[0]=_=>t.docEdit.paramKey=_)},null,8,["value"])):(l(),u("span",Q,G(C),1))],64)):g("",!0),b.dataIndex==="paramValue"?(l(),u(f,{key:1},[y.isEdit?(l(),k(v,{key:0,rows:1,placeholder:"\u8BF7\u8F93\u5165\u53C2\u6570\u503C",value:t.docEdit.paramValue,"onUpdate:value":e[1]||(e[1]=_=>t.docEdit.paramValue=_)},null,8,["value"])):(l(),u("span",X,G(C),1))],64)):g("",!0),b.dataIndex==="paramType"?(l(),u(f,{key:2},[y.isEdit?(l(),k(T,{key:0,placeholder:"\u53C2\u6570\u4F4D\u7F6E",value:t.docEdit.paramType,"onUpdate:value":e[2]||(e[2]=_=>t.docEdit.paramType=_),style:{width:"110px"}},{default:n(()=>[d(E,{value:1},{default:n(()=>[Y]),_:1}),d(E,{value:2},{default:n(()=>[Z]),_:1}),d(E,{value:3},{default:n(()=>[$]),_:1})]),_:1},8,["value"])):(l(),u(f,{key:1},[C===1?(l(),k(o,{key:0,color:"green"},{default:n(()=>[ee]),_:1})):C===2?(l(),k(o,{key:1,color:"pink"},{default:n(()=>[ae]),_:1})):C===3?(l(),k(o,{key:2,color:"pink"},{default:n(()=>[te]),_:1})):g("",!0)],64))],64)):g("",!0),b.dataIndex==="operation"?(l(),u(f,{key:3},[y.isEdit?(l(),u(f,{key:0},[d(p,{type:"link",onClick:_=>t.cancelEditDoc(y)},{default:n(()=>[oe]),_:2},1032,["onClick"]),d(p,{type:"link",onClick:_=>t.saveEditDoc(y)},{default:n(()=>[ne]),_:2},1032,["onClick"])],64)):(l(),u(f,{key:1},[d(p,{type:"link",onClick:_=>t.editDoc(y)},{default:n(()=>[le]),_:2},1032,["onClick"]),d(r,{title:"\u786E\u5B9A\u8981\u5220\u9664\u5417\uFF1F",onConfirm:_=>t.deleteDoc(y)},{default:n(()=>[d(p,{type:"link",danger:""},{default:n(()=>[ie]),_:1})]),_:2},1032,["onConfirm"])],64))],64)):g("",!0)]),_:1},8,["dataSource","columns","loading","scroll"])],64)}var _e=H(q,[["render",de]]);export{_e as E};
|
||||
6
zyplayer-doc-api/src/main/resources/dist/assets/GlobalLayout.2de3b47d.js
vendored
Normal file
6
zyplayer-doc-api/src/main/resources/dist/assets/GlobalLayout.2de3b47d.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
zyplayer-doc-api/src/main/resources/dist/assets/GlobalParam.1c8aaa70.js
vendored
Normal file
1
zyplayer-doc-api/src/main/resources/dist/assets/GlobalParam.1c8aaa70.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import"./custom.471d0de0.js";import{E as a}from"./EditGlobalParam.ede9d5a9.js";import{_ as r}from"./main.5fd30069.js";import{r as t,o as e,c as s}from"./vendor.6399378c.js";const m={components:{EditGlobalParam:a},setup(){return{}}};function n(c,d,p,l,i,_){const o=t("EditGlobalParam");return e(),s(o,{"dynamic-param":{docId:0}})}var G=r(m,[["render",n]]);export{G as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./custom.e03d703e.js";import{E as o}from"./EditGlobalParam.8ab9942d.js";import{_ as r}from"./main.2b6ab185.js";import{r as t,o as e,c as s}from"./vendor.627eef95.js";const m={components:{EditGlobalParam:o},setup(){return{}}};function n(c,p,d,l,i,_){const a=t("EditGlobalParam");return e(),s(a,{"dynamic-param":{docId:0}})}var G=r(m,[["render",n]]);export{G as default};
|
||||
1
zyplayer-doc-api/src/main/resources/dist/assets/SettingView.20a81c98.js
vendored
Normal file
1
zyplayer-doc-api/src/main/resources/dist/assets/SettingView.20a81c98.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{_ as e}from"./main.5fd30069.js";import{o as t,b as o}from"./vendor.6399378c.js";const n={name:"SettingView",components:{},data(){return{}},computed:{},mounted(){},methods:{}};function r(a,s,c,m,d,i){return t(),o("div",null," \u5C55\u793A\u914D\u7F6E\u9875\u9762 ")}var f=e(n,[["render",r]]);export{f as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{_ as e}from"./main.2b6ab185.js";import{o as t,b as o}from"./vendor.627eef95.js";const n={name:"SettingView",components:{},data(){return{}},computed:{},mounted(){},methods:{}};function r(a,s,c,m,i,p){return t(),o("div",null," \u5C55\u793A\u914D\u7F6E\u9875\u9762 ")}var f=e(n,[["render",r]]);export{f as default};
|
||||
@@ -1 +1 @@
|
||||
import{u as p,y as g,W as f,N as x,o as i,b as l,e as _,F as w,d as L,af as N,ag as C,t as I,a9 as S,r as m,a as v,w as u,c as H,k as b}from"./vendor.627eef95.js";import{m as A}from"./index.a17fca00.js";import{_ as y}from"./main.2b6ab185.js";const T={props:{heading:{type:Array,default:[]}},setup(r){const s=p();let a=g("100px");f(()=>{window.onresize=()=>{n()},setTimeout(()=>{n()},100)}),x(s.getters.getLeftAsideWidth,()=>{n()});let e=g();const n=()=>{a.value=window.getComputedStyle(e.value,null).width};return{navigationRef:e,navigationWidth:a,headingItemClick:t=>{t.node.scrollIntoView({behavior:"smooth",block:"start",inline:"nearest"})}}}},D={class:"navigation"},W={ref:"navigationRef",style:{display:"inline-block",width:"100%",height:"1px"}},B=["onClick"];function M(r,s,a,e,n,c){return i(),l("div",D,[_("div",W,null,512),_("div",{class:"navigation-heading",style:N({width:e.navigationWidth})},[(i(!0),l(w,null,L(a.heading,t=>(i(),l("div",{class:C("heading-item heading-"+t.level),onClick:o=>e.headingItemClick(t)},I(t.text),11,B))),256))],4)])}var R=y(T,[["render",M]]);const V={components:{Navigation:R},setup(){const r=p(),s=S(()=>r.state.apiDoc);let a=g();x(r.getters.getApiDoc,()=>{setTimeout(()=>{c(".share-instruction")},100)});const e=t=>A.exports.markdownIt.render(t||"");let n=g([]);const c=t=>{if(!document.querySelector(t))return[];let o=document.querySelector(t).querySelectorAll("h1,h2,h3,h4,h5,h6");if(o.length<=0)return[];let d=[];o.forEach(h=>{let k=h.innerHTML.replace(/^\s+/g,"").replace(/\s+$/g,"").replace(/<\/?[^>]+(>|$)/g,"");d.push({node:h,level:parseInt(h.tagName.replace(/[h]/i,""),10),text:k})}),n.value=d};return f(()=>{}),{apiDoc:s,navigationRef:a,navigationList:n,markdownToHtml:e}}},$={key:0},j=["innerHTML"],q={key:1,style:{"text-align":"center"}};function z(r,s,a,e,n,c){const t=m("Navigation"),o=m("a-col"),d=m("a-row");return e.apiDoc.shareInstruction?(i(),l("div",$,[v(d,null,{default:u(()=>[e.navigationList.length>0?(i(),H(o,{key:0,xs:0,sm:4,md:4,lg:6,xl:6},{default:u(()=>[v(t,{ref:"navigationRef",heading:e.navigationList},null,8,["heading"])]),_:1})):b("",!0),v(o,{xs:24,sm:e.navigationList.length>0?20:24,md:e.navigationList.length>0?20:24,lg:e.navigationList.length>0?18:24,xl:e.navigationList.length>0?18:24},{default:u(()=>[_("div",{class:"markdown-body share-instruction",innerHTML:e.markdownToHtml(e.apiDoc.shareInstruction),style:{margin:"0 auto","max-width":"1000px"}},null,8,j)]),_:1},8,["sm","md","lg","xl"])]),_:1})])):(i(),l("div",q,"\u6B22\u8FCE\u8BBF\u95EE\u5F00\u653EAPI\u6587\u6863"))}var G=y(V,[["render",z]]);export{G as default};
|
||||
import{u as p,y as g,W as f,N as x,o as i,b as l,e as _,F as k,d as L,af as N,ag as C,t as I,a9 as S,r as m,a as v,w as u,c as H,s as A}from"./vendor.6399378c.js";import{m as T}from"./index.086d0536.js";import{_ as y}from"./main.5fd30069.js";const D={props:{heading:{type:Array,default:[]}},setup(r){const s=p();let a=g("100px");f(()=>{window.onresize=()=>{n()},setTimeout(()=>{n()},100)}),x(s.getters.getLeftAsideWidth,()=>{n()});let e=g();const n=()=>{a.value=window.getComputedStyle(e.value,null).width};return{navigationRef:e,navigationWidth:a,headingItemClick:t=>{t.node.scrollIntoView({behavior:"smooth",block:"start",inline:"nearest"})}}}},b={class:"navigation"},W={ref:"navigationRef",style:{display:"inline-block",width:"100%",height:"1px"}},B=["onClick"];function M(r,s,a,e,n,c){return i(),l("div",b,[_("div",W,null,512),_("div",{class:"navigation-heading",style:N({width:e.navigationWidth})},[(i(!0),l(k,null,L(a.heading,t=>(i(),l("div",{class:C("heading-item heading-"+t.level),onClick:o=>e.headingItemClick(t)},I(t.text),11,B))),256))],4)])}var R=y(D,[["render",M]]);const V={components:{Navigation:R},setup(){const r=p(),s=S(()=>r.state.apiDoc);let a=g();x(r.getters.getApiDoc,()=>{setTimeout(()=>{c(".share-instruction")},100)});const e=t=>T.exports.markdownIt.render(t||"");let n=g([]);const c=t=>{if(!document.querySelector(t))return[];let o=document.querySelector(t).querySelectorAll("h1,h2,h3,h4,h5,h6");if(o.length<=0)return[];let d=[];o.forEach(h=>{let w=h.innerHTML.replace(/^\s+/g,"").replace(/\s+$/g,"").replace(/<\/?[^>]+(>|$)/g,"");d.push({node:h,level:parseInt(h.tagName.replace(/[h]/i,""),10),text:w})}),n.value=d};return f(()=>{}),{apiDoc:s,navigationRef:a,navigationList:n,markdownToHtml:e}}},$={key:0},j=["innerHTML"],q={key:1,style:{"text-align":"center"}};function z(r,s,a,e,n,c){const t=m("Navigation"),o=m("a-col"),d=m("a-row");return e.apiDoc.shareInstruction?(i(),l("div",$,[v(d,null,{default:u(()=>[e.navigationList.length>0?(i(),H(o,{key:0,xs:0,sm:4,md:4,lg:6,xl:6},{default:u(()=>[v(t,{ref:"navigationRef",heading:e.navigationList},null,8,["heading"])]),_:1})):A("",!0),v(o,{xs:24,sm:e.navigationList.length>0?20:24,md:e.navigationList.length>0?20:24,lg:e.navigationList.length>0?18:24,xl:e.navigationList.length>0?18:24},{default:u(()=>[_("div",{class:"markdown-body share-instruction",innerHTML:e.markdownToHtml(e.apiDoc.shareInstruction),style:{margin:"0 auto","max-width":"1000px"}},null,8,j)]),_:1},8,["sm","md","lg","xl"])]),_:1})])):(i(),l("div",q,"\u6B22\u8FCE\u8BBF\u95EE\u5F00\u653EAPI\u6587\u6863"))}var G=y(V,[["render",z]]);export{G as default};
|
||||
@@ -1 +1 @@
|
||||
var C=Object.defineProperty,E=Object.defineProperties;var I=Object.getOwnPropertyDescriptors;var L=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable;var x=(r,e,t)=>e in r?C(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,m=(r,e)=>{for(var t in e||(e={}))O.call(e,t)&&x(r,t,e[t]);if(L)for(var t of L(e))D.call(e,t)&&x(r,t,e[t]);return r},_=(r,e)=>E(r,I(e));import{_ as k}from"./main.2b6ab185.js";import{W as M,y as v,o as j,b as z,e as R}from"./vendor.627eef95.js";const A=["get","head","post","put","patch","delete","options","trace"];function q(r){let e={},t={},n={},h=r.paths;return h?(Object.keys(h).forEach(o=>{let l=h[o];for(let a of A){if(!l[a]||!l[a].tags)continue;let i=a.toLowerCase();n[i]=(n[i]||0)+1,n.total=(n.total||0)+1,l[a].tags.forEach(f=>{let d=e[f];d||(d=e[f]={});let s=d[o];s||(s=d[o]={});let c=o+"."+a;s[a]=l[a],s[a].path=c,s[a].url=o,s[a].method=a,t[c]=l[a]})}}),{urlMethodMap:t,tagPathMap:e,methodStatistic:n}):{urlMethodMap:t,tagPathMap:e,methodStatistic:n}}function G(r,e,t,n){let h=[],o=1,l=r.tags||[];return l.length<=0&&Object.keys(e).forEach(a=>l.push({name:a})),l.forEach(a=>{let i=1,f=[],d=e[a.name];!d||(Object.keys(d).forEach(s=>{let c=1,p=d[s];Object.keys(p).forEach(y=>{let g=o+"_"+i+"_"+c,u=p[y];if(!$(s,u,t))return;u.treeId=g;let T=u.summary||u.path;f.push({title:T,key:g,isLeaf:!0,method:u.method,query:_(m({},n),{path:u.url,method:u.method})}),c++}),i++}),f.length>0&&h.push({title:a.name,key:o,children:f}),o++)}),[{key:"main",title:r.info.title||"Swagger\u63A5\u53E3\u6587\u6863",children:h}]}function $(r,e,t){if(!t||!r||(r=r.toLowerCase(),t=t.toLowerCase(),r.indexOf(t)>=0))return!0;let n=e.path+e.method+e.summary+e.description+e.tags;return n&&n.toLowerCase().indexOf(t)>=0}const P=["get","head","post","put","patch","delete","options","trace"];function H(r){let e={},t={},n={},h=r.paths;return h?(Object.keys(h).forEach(o=>{let l=h[o];for(let a of P){if(!l[a]||!l[a].tags)continue;let i=a.toLowerCase();n[i]=(n[i]||0)+1,n.total=(n.total||0)+1,l[a].tags.forEach(f=>{let d=e[f];d||(d=e[f]={});let s=d[o];s||(s=d[o]={});let c=o+"."+a;s[a]=l[a],s[a].path=c,s[a].url=o,s[a].method=a,t[c]=l[a]})}}),{urlMethodMap:t,tagPathMap:e,methodStatistic:n}):{urlMethodMap:t,tagPathMap:e,methodStatistic:n}}function J(r,e,t,n){let h=[],o=1,l=r.tags||[];return l.length<=0&&Object.keys(e).forEach(a=>l.push({name:a})),l.forEach(a=>{let i=1,f=[],d=e[a.name];!d||(Object.keys(d).forEach(s=>{let c=1,p=d[s];Object.keys(p).forEach(y=>{let g=o+"_"+i+"_"+c,u=p[y];if(!B(s,u,t))return;u.treeId=g;let T=u.summary||u.path;f.push({title:T,key:g,isLeaf:!0,method:u.method,query:_(m({},n),{path:u.url,method:u.method})}),c++}),i++}),f.length>0&&h.push({title:a.name,key:o,children:f}),o++)}),[{key:"main",title:r.info.title||"OpenApi\u63A5\u53E3\u6587\u6863",children:h}]}function B(r,e,t){if(!t||!r||(r=r.toLowerCase(),t=t.toLowerCase(),r.indexOf(t)>=0))return!0;let n=e.path+e.method+e.summary+e.description+e.tags;return n&&n.toLowerCase().indexOf(t)>=0}function K(r,e,t,n){let h=r[0],o=b(h,e,t,n,1);return[{key:"main",isLeaf:!1,title:h.name||"\u81EA\u5EFAAPI\u63A5\u53E3\u6587\u6863",children:o}]}function b(r,e,t,n,h){let o=[];if(!r)return o;let l=1,a=1;return r.children&&r.children.length>0&&r.children.forEach(i=>{n.originNodeMap[i.nodeId]=i;let f=h+"_"+l+"_"+a;if(i.nodeType===1)o.push({title:i.nodeName,key:f,isLeaf:!0,method:i.method,nodeId:i.nodeId,query:_(m({},t),{nodeId:i.nodeId})}),a++;else{let d=b(i,e,t,n,f),s=U(i,e);(d.length>0||s)&&(o.push({title:i.nodeName,key:f,nodeId:i.nodeId,isLeaf:!1,editing:!1,titleEditing:i.nodeName,children:d}),a++)}}),l++,o}function U(r,e){if(!e||!r)return!0;e=e.toLowerCase();let t=r.name;return t&&t.toLowerCase().indexOf(e)>=0}const w={emits:["update:value","change"],setup(r,{emit:e}){M(()=>{o()});let t=v(300),n=v(),h=v();const o=()=>{let l=n.value,a=h.value;l.onmousedown=i=>{let f=i.clientX;return l.style.background="#ccc",a.style.background="#aaa",l.left=l.offsetLeft,document.onmousemove=d=>{let s=d.clientX,c=f-s;(c<0&&t.value<600||c>0&&t.value>300)&&(f=s,t.value-=c,t.value<300&&(t.value=300),e("update:value",t.value),e("change",t.value))},document.onmouseup=()=>{l.style.background="#fafafa",a.style.background="#ccc",document.onmousemove=null,document.onmouseup=null},!1}};return{leftAsideWidth:t,leftResizeRef:n,leftResizeBarRef:h}}},F={ref:"leftResizeRef",class:"left-resize"},S={ref:"leftResizeBarRef"};function X(r,e,t,n,h,o){return j(),z("div",F,[R("i",S,"...",512)],512)}var Q=k(w,[["render",X],["__scopeId","data-v-33303c20"]]),Y="assets/api-logo.952f0c92.png";export{Q as L,Y as _,q as a,H as b,J as c,K as d,G as g};
|
||||
var E=Object.defineProperty,I=Object.defineProperties;var O=Object.getOwnPropertyDescriptors;var L=Object.getOwnPropertySymbols;var b=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable;var x=(r,e,t)=>e in r?E(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,m=(r,e)=>{for(var t in e||(e={}))b.call(e,t)&&x(r,t,e[t]);if(L)for(var t of L(e))D.call(e,t)&&x(r,t,e[t]);return r},_=(r,e)=>I(r,O(e));import{_ as k}from"./main.5fd30069.js";import{W as M,y as v,o as j,b as z,e as R}from"./vendor.6399378c.js";const A=["get","head","post","put","patch","delete","options","trace"];function q(r){let e={},t={},n={},h=r.paths;return h?(Object.keys(h).forEach(o=>{let l=h[o];for(let a of A){if(!l[a]||!l[a].tags)continue;let i=a.toLowerCase();n[i]=(n[i]||0)+1,n.total=(n.total||0)+1,l[a].tags.forEach(f=>{let d=e[f];d||(d=e[f]={});let s=d[o];s||(s=d[o]={});let c=o+"."+a;s[a]=l[a],s[a].path=c,s[a].url=o,s[a].method=a,t[c]=l[a]})}}),{urlMethodMap:t,tagPathMap:e,methodStatistic:n}):{urlMethodMap:t,tagPathMap:e,methodStatistic:n}}function G(r,e,t,n){let h=[],o=1,l=r.tags||[];return l.length<=0&&Object.keys(e).forEach(a=>l.push({name:a})),l.forEach(a=>{let i=1,f=[],d=e[a.name];!d||(Object.keys(d).forEach(s=>{let c=1,p=d[s];Object.keys(p).forEach(y=>{let g=o+"_"+i+"_"+c,u=p[y];if(!$(s,u,t))return;u.treeId=g;let T=u.summary||u.path;f.push({title:T,key:g,isLeaf:!0,method:u.method,query:_(m({},n),{path:u.url,method:u.method})}),c++}),i++}),f.length>0&&h.push({title:a.name,key:o,children:f}),o++)}),[{key:"main",title:r.info.title||"Swagger\u63A5\u53E3\u6587\u6863",children:h}]}function $(r,e,t){if(!t||!r||(r=r.toLowerCase(),t=t.toLowerCase(),r.indexOf(t)>=0))return!0;let n=e.path+e.method+e.summary+e.description+e.tags;return n&&n.toLowerCase().indexOf(t)>=0}const P=["get","head","post","put","patch","delete","options","trace"];function H(r){let e={},t={},n={},h=r.paths;return h?(Object.keys(h).forEach(o=>{let l=h[o];for(let a of P){if(!l[a]||!l[a].tags)continue;let i=a.toLowerCase();n[i]=(n[i]||0)+1,n.total=(n.total||0)+1,l[a].tags.forEach(f=>{let d=e[f];d||(d=e[f]={});let s=d[o];s||(s=d[o]={});let c=o+"."+a;s[a]=l[a],s[a].path=c,s[a].url=o,s[a].method=a,t[c]=l[a]})}}),{urlMethodMap:t,tagPathMap:e,methodStatistic:n}):{urlMethodMap:t,tagPathMap:e,methodStatistic:n}}function J(r,e,t,n){let h=[],o=1,l=r.tags||[];return l.length<=0&&Object.keys(e).forEach(a=>l.push({name:a})),l.forEach(a=>{let i=1,f=[],d=e[a.name];!d||(Object.keys(d).forEach(s=>{let c=1,p=d[s];Object.keys(p).forEach(y=>{let g=o+"_"+i+"_"+c,u=p[y];if(!B(s,u,t))return;u.treeId=g;let T=u.summary||u.path;f.push({title:T,key:g,isLeaf:!0,method:u.method,query:_(m({},n),{path:u.url,method:u.method})}),c++}),i++}),f.length>0&&h.push({title:a.name,key:o,children:f}),o++)}),[{key:"main",title:r.info.title||"OpenApi\u63A5\u53E3\u6587\u6863",children:h}]}function B(r,e,t){if(!t||!r||(r=r.toLowerCase(),t=t.toLowerCase(),r.indexOf(t)>=0))return!0;let n=e.path+e.method+e.summary+e.description+e.tags;return n&&n.toLowerCase().indexOf(t)>=0}function K(r,e,t,n){let h=r[0],o=C(h,e,t,n,1);return[{key:"main",isLeaf:!1,title:h.name||"\u81EA\u5EFAAPI\u63A5\u53E3\u6587\u6863",children:o}]}function C(r,e,t,n,h){let o=[];if(!r)return o;let l=1,a=1;return r.children&&r.children.length>0&&r.children.forEach(i=>{n.originNodeMap[i.nodeId]=i;let f=h+"_"+l+"_"+a;if(i.nodeType===1)o.push({title:i.nodeName,key:f,isLeaf:!0,method:i.method,nodeId:i.nodeId,query:_(m({},t),{nodeId:i.nodeId})}),a++;else{let d=C(i,e,t,n,f),s=U(i,e);(d.length>0||s)&&(o.push({title:i.nodeName,key:f,nodeId:i.nodeId,isLeaf:!1,editing:!1,titleEditing:i.nodeName,children:d}),a++)}}),l++,o}function U(r,e){if(!e||!r)return!0;e=e.toLowerCase();let t=r.name;return t&&t.toLowerCase().indexOf(e)>=0}const w={emits:["update:value","change"],setup(r,{emit:e}){M(()=>{o()});let t=v(300),n=v(),h=v();const o=()=>{let l=n.value,a=h.value;l.onmousedown=i=>{let f=i.clientX;return l.style.background="#ccc",a.style.background="#aaa",l.left=l.offsetLeft,document.onmousemove=d=>{let s=d.clientX,c=f-s;(c<0&&t.value<600||c>0&&t.value>300)&&(f=s,t.value-=c,t.value<300&&(t.value=300),e("update:value",t.value),e("change",t.value))},document.onmouseup=()=>{l.style.background="#fafafa",a.style.background="#ccc",document.onmousemove=null,document.onmouseup=null},!1}};return{leftAsideWidth:t,leftResizeRef:n,leftResizeBarRef:h}}},F={ref:"leftResizeRef",class:"left-resize"},S={ref:"leftResizeBarRef"};function X(r,e,t,n,h,o){return j(),z("div",F,[R("i",S,"...",512)],512)}var Q=k(w,[["render",X],["__scopeId","data-v-33303c20"]]),Y="assets/api-logo.952f0c92.png";export{Q as L,Y as _,q as a,H as b,J as c,K as d,G as g};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
zyplayer-doc-api/src/main/resources/dist/assets/logUtil.6309fa68.js
vendored
Normal file
1
zyplayer-doc-api/src/main/resources/dist/assets/logUtil.6309fa68.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{B as r}from"./vendor.6399378c.js";var g={log(o,l,s){console.log(o+"-\u9047\u5230\u672A\u5904\u7406\u7684\u7C7B\u578B\uFF0C\u8BF7\u8054\u7CFB\u5F00\u53D1\u4EBA\u5458\u4FEE\u6539\uFF1A"+l,s)},logMessage(o,l,s){console.log(o+"-\u9047\u5230\u672A\u5904\u7406\u7684\u7C7B\u578B\uFF0C\u8BF7\u8054\u7CFB\u5F00\u53D1\u4EBA\u5458\u4FEE\u6539\uFF1A"+l,s),r.error(o+"-\u9047\u5230\u672A\u5904\u7406\u7684\u7C7B\u578B\uFF0C\u8BF7\u8054\u7CFB\u5F00\u53D1\u4EBA\u5458\u4FEE\u6539\uFF1A"+l)}};export{g as l};
|
||||
@@ -1 +0,0 @@
|
||||
import{B as s}from"./vendor.627eef95.js";var g={log(o,e,l){console.log(o+"-\u9047\u5230\u672A\u5904\u7406\u7684\u7C7B\u578B\uFF0C\u8BF7\u8054\u7CFB\u5F00\u53D1\u4EBA\u5458\u4FEE\u6539\uFF1A"+e,l)},logMessage(o,e,l){console.log(o+"-\u9047\u5230\u672A\u5904\u7406\u7684\u7C7B\u578B\uFF0C\u8BF7\u8054\u7CFB\u5F00\u53D1\u4EBA\u5458\u4FEE\u6539\uFF1A"+e,l),s.error(o+"-\u9047\u5230\u672A\u5904\u7406\u7684\u7C7B\u578B\uFF0C\u8BF7\u8054\u7CFB\u5F00\u53D1\u4EBA\u5458\u4FEE\u6539\uFF1A"+e)}};export{g as l};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -5,8 +5,8 @@
|
||||
<link rel="icon" href="api-logo.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>API文档管理</title>
|
||||
<script type="module" crossorigin src="assets/main.2b6ab185.js"></script>
|
||||
<link rel="modulepreload" href="assets/vendor.627eef95.js">
|
||||
<script type="module" crossorigin src="assets/main.5fd30069.js"></script>
|
||||
<link rel="modulepreload" href="assets/vendor.6399378c.js">
|
||||
<link rel="stylesheet" href="assets/style.9e577f5e.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -5,4 +5,4 @@
|
||||
|
||||
模块的详细使用文档地址,部署必看:
|
||||
|
||||
http://doc.zyplayer.com/doc-wiki#/docs/w4eSzPWvQRSBvaCHZS8t6d
|
||||
http://doc.zyplayer.com
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<parent>
|
||||
<groupId>com.zyplayer</groupId>
|
||||
<artifactId>zyplayer-doc</artifactId>
|
||||
<version>1.1.2</version>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
@@ -37,5 +37,9 @@
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.zyplayer.doc.core.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 文件存储路径
|
||||
*
|
||||
* @author 暮光:城中城
|
||||
* @since 2023-10-06
|
||||
*/
|
||||
public enum PageFileSource {
|
||||
UPLOAD_FILES(1, "手动上传的附件"),
|
||||
PASTE_FILES(2, "页面粘贴的图片或文件"),
|
||||
;
|
||||
@Getter
|
||||
private final Integer source;
|
||||
@Getter
|
||||
private final String desc;
|
||||
|
||||
PageFileSource(Integer source, String desc) {
|
||||
this.source = source;
|
||||
this.desc = desc;
|
||||
}
|
||||
}
|
||||
@@ -15,8 +15,8 @@ public enum SystemConfigEnum {
|
||||
DOC_SYSTEM_VERSION("doc_system_version", "系统当前的版本号"),
|
||||
;
|
||||
|
||||
private String key;
|
||||
private String desc;
|
||||
private final String key;
|
||||
private final String desc;
|
||||
|
||||
SystemConfigEnum(String key, String desc) {
|
||||
this.key = key;
|
||||
|
||||
@@ -18,7 +18,7 @@ import java.util.Objects;
|
||||
* @since 2018年8月21日
|
||||
*/
|
||||
public class DocResponseJson<T> implements ResponseJson<T> {
|
||||
private static SerializeConfig mapping = new SerializeConfig();
|
||||
private static final SerializeConfig mapping = new SerializeConfig();
|
||||
|
||||
static {
|
||||
mapping.put(Date.class, new SimpleDateFormatSerializer("yyyy-MM-dd HH:mm:ss"));
|
||||
@@ -134,7 +134,7 @@ public class DocResponseJson<T> implements ResponseJson<T> {
|
||||
* @since 2018年8月7日
|
||||
*/
|
||||
public static <T> DocResponseJson<T> warn(String errMsg) {
|
||||
return new DocResponseJson<T>(300, errMsg);
|
||||
return new DocResponseJson<>(300, errMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,7 +145,7 @@ public class DocResponseJson<T> implements ResponseJson<T> {
|
||||
* @since 2018年8月7日
|
||||
*/
|
||||
public static <T> DocResponseJson<T> error(String errMsg) {
|
||||
return new DocResponseJson<T>(500, errMsg);
|
||||
return new DocResponseJson<>(500, errMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -156,7 +156,7 @@ public class DocResponseJson<T> implements ResponseJson<T> {
|
||||
* @since 2018年8月7日
|
||||
*/
|
||||
public static <T> DocResponseJson<T> failure(int errCode, String errMsg) {
|
||||
return new DocResponseJson<T>(errCode, errMsg);
|
||||
return new DocResponseJson<>(errCode, errMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.zyplayer.doc.core.util;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UpgradeInfo {
|
||||
private String version;
|
||||
private boolean haveUpgradeSql;
|
||||
|
||||
public UpgradeInfo() {
|
||||
}
|
||||
|
||||
public UpgradeInfo(String version, boolean haveUpgradeSql) {
|
||||
this.version = version;
|
||||
this.haveUpgradeSql = haveUpgradeSql;
|
||||
}
|
||||
}
|
||||
@@ -10,12 +10,16 @@ import java.util.List;
|
||||
* @since 2021-06-06
|
||||
*/
|
||||
public class ZyplayerDocVersion {
|
||||
public static final String version = "1.1.2";
|
||||
public static final String version = "1.1.6";
|
||||
|
||||
/**
|
||||
* 每次升级必须添加一条记录,用于执行它的升级SQL
|
||||
*/
|
||||
public static final List<String> versionUpgrade = new LinkedList<String>() {{
|
||||
add("1.1.2");
|
||||
public static final List<UpgradeInfo> versionUpgrade = new LinkedList<UpgradeInfo>() {{
|
||||
add(new UpgradeInfo("1.1.6", true));
|
||||
add(new UpgradeInfo("1.1.5", false));
|
||||
add(new UpgradeInfo("1.1.4", true));
|
||||
add(new UpgradeInfo("1.1.3", false));
|
||||
add(new UpgradeInfo("1.1.2", true));
|
||||
}};
|
||||
}
|
||||
|
||||
@@ -5,4 +5,4 @@
|
||||
|
||||
模块的详细使用文档地址,部署必看:
|
||||
|
||||
http://doc.zyplayer.com/doc-wiki#/docs/w4eSzPWvQRSBvaCHZS8t6d
|
||||
http://doc.zyplayer.com
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<parent>
|
||||
<groupId>com.zyplayer</groupId>
|
||||
<artifactId>zyplayer-doc</artifactId>
|
||||
<version>1.1.2</version>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
@@ -51,10 +51,10 @@
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.oracle</groupId>
|
||||
<artifactId>ojdbc6</artifactId>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.oracle</groupId>-->
|
||||
<!-- <artifactId>ojdbc6</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
<!--达梦数据库驱动-->
|
||||
<dependency>
|
||||
<groupId>com.dameng</groupId>
|
||||
@@ -111,8 +111,6 @@
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>RELEASE</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -11,7 +11,10 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
import org.apache.ibatis.mapping.DatabaseIdProvider;
|
||||
import org.apache.ibatis.mapping.VendorDatabaseIdProvider;
|
||||
|
||||
import java.util.Properties;
|
||||
import javax.annotation.Resource;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
@@ -51,9 +54,21 @@ public class MybatisPlusConfig {
|
||||
@Bean(name = "manageSqlSessionFactory")
|
||||
public MybatisSqlSessionFactoryBean manageSqlSessionFactory() throws Exception {
|
||||
MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
|
||||
DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty("SQL Server", "sqlserver");
|
||||
properties.setProperty("DB2", "db2");
|
||||
properties.setProperty("Oracle", "oracle");
|
||||
properties.setProperty("MySQL", "mysql");
|
||||
properties.setProperty("PostgreSQL", "postgresql");
|
||||
properties.setProperty("Derby", "derby");
|
||||
properties.setProperty("HSQL", "hsqldb");
|
||||
properties.setProperty("H2", "h2");
|
||||
databaseIdProvider.setProperties(properties);
|
||||
sqlSessionFactoryBean.setDatabaseIdProvider(databaseIdProvider);
|
||||
sqlSessionFactoryBean.setDataSource(manageDatasource());
|
||||
sqlSessionFactoryBean.setPlugins(new SqlLogInterceptor(), paginationInterceptor);
|
||||
|
||||
|
||||
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
|
||||
sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mapper/manage/*Mapper.xml"));
|
||||
return sqlSessionFactoryBean;
|
||||
|
||||
@@ -15,8 +15,9 @@ public class DocUserDetails {
|
||||
private Long userId;
|
||||
private String username;
|
||||
private String password;
|
||||
private String accessToken;
|
||||
private boolean enabled;
|
||||
private List<UserAuthVo> userAuthList;
|
||||
private List<UserAuthInfo> userAuthList;
|
||||
|
||||
public DocUserDetails(Long userId, String username) {
|
||||
this.userId = userId;
|
||||
@@ -31,7 +32,7 @@ public class DocUserDetails {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
public DocUserDetails(Long userId, String username, String password, boolean enabled, List<UserAuthVo> userAuthList) {
|
||||
public DocUserDetails(Long userId, String username, String password, boolean enabled, List<UserAuthInfo> userAuthList) {
|
||||
super();
|
||||
this.userId = userId;
|
||||
this.username = username;
|
||||
|
||||
@@ -40,7 +40,7 @@ public class DocUserUtil {
|
||||
if (currentUser == null) {
|
||||
return false;
|
||||
}
|
||||
Set<String> authCodeSet = currentUser.getUserAuthList().stream().map(UserAuthVo::getAuthCode).collect(Collectors.toSet());
|
||||
Set<String> authCodeSet = currentUser.getUserAuthList().stream().map(UserAuthInfo::getAuthCode).collect(Collectors.toSet());
|
||||
for (String authName : authNames) {
|
||||
if (!authCodeSet.contains(authName)) {
|
||||
return false;
|
||||
@@ -69,6 +69,7 @@ public class DocUserUtil {
|
||||
* 设置当前用户
|
||||
*/
|
||||
public static void setCurrentUser(String accessToken, DocUserDetails docUser) {
|
||||
docUser.setAccessToken(accessToken);
|
||||
DOC_USER_DETAILS.set(docUser);
|
||||
CacheUtil.put(accessToken, docUser);
|
||||
CacheUtil.put(CachePrefix.LOGIN_USER_ID_TOKEN + docUser.getUserId(), accessToken);
|
||||
@@ -77,7 +78,7 @@ public class DocUserUtil {
|
||||
/**
|
||||
* 设置当前用户权限
|
||||
*/
|
||||
public static void setUserAuth(Long userId, List<UserAuthVo> userAuthList) {
|
||||
public static void setUserAuth(Long userId, List<UserAuthInfo> userAuthList) {
|
||||
String userToken = CacheUtil.get(CachePrefix.LOGIN_USER_ID_TOKEN + userId);
|
||||
if (userToken != null) {
|
||||
DocUserDetails docUser = CacheUtil.get(userToken);
|
||||
|
||||
@@ -18,11 +18,11 @@ import java.io.Serializable;
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class UserAuthVo implements Serializable {
|
||||
public class UserAuthInfo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public UserAuthVo(UserAuth userAuth) {
|
||||
public UserAuthInfo(UserAuth userAuth) {
|
||||
this.authId = userAuth.getAuthId();
|
||||
this.sysType = userAuth.getSysType();
|
||||
this.sysModuleType = userAuth.getSysModuleType();
|
||||
@@ -0,0 +1,93 @@
|
||||
package com.zyplayer.doc.data.repository.manage.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 备份记录信息
|
||||
*
|
||||
* @author diantu
|
||||
* @since 2023年3月3日
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("backup_log")
|
||||
public class BackupLog implements Serializable {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
/**
|
||||
* 数据源id
|
||||
*/
|
||||
private Long dbId;
|
||||
/**
|
||||
* 来源(手动备份|自动备份)
|
||||
*/
|
||||
private String category;
|
||||
/**
|
||||
* 库名
|
||||
*/
|
||||
private String databaseName;
|
||||
/**
|
||||
* 表名
|
||||
*/
|
||||
private String tablesName;
|
||||
/**
|
||||
* 备份方式
|
||||
*/
|
||||
private Integer dataType;
|
||||
/**
|
||||
* 是否压缩
|
||||
*/
|
||||
private Boolean isCompress;
|
||||
/**
|
||||
* 是否上传
|
||||
*/
|
||||
private Boolean isUpload;
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
private Boolean isDelete;
|
||||
/**
|
||||
* 文件路径
|
||||
*/
|
||||
private String filePath;
|
||||
/**
|
||||
* 文件大小
|
||||
*/
|
||||
private Long fileSize;
|
||||
/**
|
||||
* 备份状态(-1-失败0-备份中1-上传中200-成功)
|
||||
*/
|
||||
private Integer status;
|
||||
/**
|
||||
* 备份信息
|
||||
*/
|
||||
private String msg;
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private Date startTime;
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private Date endTime;
|
||||
/**
|
||||
* 耗时(ms)
|
||||
*/
|
||||
private Long spendTime;
|
||||
/**
|
||||
* 删除状态(0--未删除1--已删除)
|
||||
*/
|
||||
private Integer delFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.zyplayer.doc.data.repository.manage.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 备份任务信息
|
||||
*
|
||||
* @author diantu
|
||||
* @since 2023年3月3日
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName(value = "backup_task", autoResultMap = true)
|
||||
public class BackupTask implements Serializable {
|
||||
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
/**
|
||||
* 数据源id
|
||||
*/
|
||||
private Long dbId;
|
||||
/**
|
||||
* cron表达式
|
||||
*/
|
||||
private String cron;
|
||||
/**
|
||||
* 参数
|
||||
*/
|
||||
private String param;
|
||||
/**
|
||||
* 状态(0-停止1-启动)
|
||||
*/
|
||||
private Boolean status;
|
||||
/**
|
||||
* 库名
|
||||
*/
|
||||
private String databaseName;
|
||||
/**
|
||||
* 表名
|
||||
*/
|
||||
private String tablesName;
|
||||
/**
|
||||
* 备份方式
|
||||
*/
|
||||
private Integer dataType;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
/**
|
||||
* 删除状态(0--未删除1--已删除)
|
||||
*/
|
||||
private Integer delFlag;
|
||||
|
||||
}
|
||||
@@ -90,4 +90,9 @@ public class WikiPageFile implements Serializable {
|
||||
* 文件大小
|
||||
*/
|
||||
private Long fileSize;
|
||||
|
||||
/**
|
||||
* 文件来源 1=上传的文件 2=文档内粘贴的图片或文件
|
||||
*/
|
||||
private Integer fileSource;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
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 lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 模板信息
|
||||
* </p>
|
||||
*
|
||||
* @author Sh1yu
|
||||
* @since 2023-08-24
|
||||
*/
|
||||
@Data
|
||||
@TableName("wiki_page_template")
|
||||
public class WikiPageTemplate implements Serializable {
|
||||
@TableId(value = "id" , type = IdType.AUTO)
|
||||
private Long id;
|
||||
private Long spaceId;
|
||||
private Long pageId;
|
||||
private String tagName;
|
||||
private Boolean shareStatus;
|
||||
private Date created;
|
||||
private Long createUserId;
|
||||
private String createUser;
|
||||
private Integer yn;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.zyplayer.doc.data.repository.manage.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.BackupTask;
|
||||
|
||||
/**
|
||||
* 备份任务Mapper 接口
|
||||
*
|
||||
* @author diantu
|
||||
* @since 2023-03-03
|
||||
*/
|
||||
public interface BackupTaskMapper extends BaseMapper<BackupTask> {
|
||||
|
||||
}
|
||||
@@ -3,7 +3,6 @@ package com.zyplayer.doc.data.repository.manage.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.UserInfo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.ResultType;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
@@ -19,15 +18,18 @@ import java.util.Map;
|
||||
*/
|
||||
public interface UserInfoMapper extends BaseMapper<UserInfo> {
|
||||
|
||||
@Select("show tables")
|
||||
@Select(value = "show tables")
|
||||
@Select(value = "SELECT table_name FROM information_schema.tables where table_schema = 'zyplayer_doc'", databaseId="postgresql")
|
||||
List<String> getTableList();
|
||||
|
||||
@Select("${sql}")
|
||||
List<String> executeSql(@Param("sql") String sql);
|
||||
|
||||
@Select("SHOW COLUMNS FROM ${tableName}")
|
||||
@Select(value = "SELECT * FROM information_schema.columns WHERE table_name = #{tableName} and table_schema = 'zyplayer_doc'", databaseId="postgresql")
|
||||
List<Map<String, Object>> getTableColumnList(@Param("tableName") String tableName);
|
||||
|
||||
@Select("SHOW INDEX FROM ${tableName}")
|
||||
@Select(value = "SELECT * FROM pg_catalog.pg_indexes WHERE tablename = #{tableName} and schemaname = 'zyplayer_doc'", databaseId="postgresql")
|
||||
List<Map<String, Object>> getTableIndexList(@Param("tableName") String tableName);
|
||||
}
|
||||
|
||||
@@ -2,10 +2,13 @@ package com.zyplayer.doc.data.repository.manage.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.WikiPageTemplateInfoVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
@@ -24,6 +27,9 @@ public interface WikiPageMapper extends BaseMapper<WikiPage> {
|
||||
|
||||
@Select("select max(seq_no) from wiki_page where space_id = #{spaceId} and parent_id=#{parentId} and del_flag=0")
|
||||
Integer getLastSeq(@Param("spaceId") Long spaceId, @Param("parentId") Long parentId);
|
||||
|
||||
|
||||
@Select("SELECT a.*,b.tag_name AS tags,b.share_status as shareStatus from wiki_page a left join wiki_page_template b on a.space_id =b.space_id and a.id = b.page_id where a.del_flag = 0 and a.space_id =#{spaceId}")
|
||||
List<WikiPageTemplateInfoVo> getWikiPageTemplateInfos(@Param("spaceId") Long spaceId);
|
||||
|
||||
void updateChildrenSeq(@Param("spaceId") Long spaceId, @Param("parentId") Long parentId);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.zyplayer.doc.data.repository.manage.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPageTemplate;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.WikiPageTemplateInfoVo;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.WikiTemplateTagVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 模板的mapper接口
|
||||
* </p>
|
||||
*
|
||||
* @author sh1yu
|
||||
* @since 2023-08-24
|
||||
*/
|
||||
public interface WikiPageTemplateMapper extends BaseMapper<WikiPageTemplate> {
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 查询所有的模板
|
||||
* </p>
|
||||
*/
|
||||
List<WikiPageTemplateInfoVo> getAllTemplate(@Param("user") Long user, @Param("name") String name, @Param("share") boolean share, @Param("tags") List tags, @Param("pageNum") Long pageNum);
|
||||
|
||||
/*
|
||||
* 查询所有标签
|
||||
*/
|
||||
List<WikiTemplateTagVo> getAllTags(@Param("user") Long user,@Param("open") boolean open);
|
||||
|
||||
|
||||
/*
|
||||
* 查询模板总数4分页
|
||||
*/
|
||||
Long getAllTemplateCount(@Param("user") Long user, @Param("name") String name, @Param("share") boolean share, @Param("tags") List tags);
|
||||
|
||||
}
|
||||
@@ -2,8 +2,6 @@ package com.zyplayer.doc.data.repository.manage.mapper;
|
||||
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPageZan;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
||||
@@ -18,4 +18,5 @@ public class SearchByEsParam {
|
||||
private Integer pageSize;
|
||||
private Integer newsType;
|
||||
private List<Long> spaceIds;
|
||||
private Long dirId;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
package com.zyplayer.doc.data.repository.manage.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 模板与文档信息的Vo
|
||||
* </p>
|
||||
*
|
||||
* @author Sh1yu
|
||||
* @since 2023-08-24
|
||||
*/
|
||||
@Data
|
||||
public class WikiPageTemplateInfoVo{
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 空间ID
|
||||
*/
|
||||
private Long spaceId;
|
||||
|
||||
/**
|
||||
* 名字
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 父ID
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 节点类型 0=有子节点 1=终节点
|
||||
*/
|
||||
private Integer nodeType;
|
||||
|
||||
/**
|
||||
* 赞的数量
|
||||
*/
|
||||
private Integer zanNum;
|
||||
|
||||
/**
|
||||
* 编辑类型 0=可编辑 1=不允许编辑
|
||||
*/
|
||||
private Integer editType;
|
||||
|
||||
/**
|
||||
* 是否收藏 0=否 1=是
|
||||
*/
|
||||
private Integer favorite;
|
||||
|
||||
/**
|
||||
* 创建人ID
|
||||
*/
|
||||
private Long createUserId;
|
||||
|
||||
/**
|
||||
* 创建人名字
|
||||
*/
|
||||
private String createUserName;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 修改人ID
|
||||
*/
|
||||
private Long updateUserId;
|
||||
|
||||
/**
|
||||
* 修改人名字
|
||||
*/
|
||||
private String updateUserName;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 0=有效 1=删除
|
||||
*/
|
||||
private Integer delFlag;
|
||||
|
||||
/**
|
||||
* 阅读数
|
||||
*/
|
||||
private Integer viewNum;
|
||||
|
||||
/**
|
||||
* 顺序
|
||||
*/
|
||||
private Integer seqNo;
|
||||
|
||||
/**
|
||||
* 编辑框类型 1=HTML 2=Markdown
|
||||
*/
|
||||
private Integer editorType;
|
||||
|
||||
/**
|
||||
* 模板分享状态 0=个人模板 1=共享模板
|
||||
*/
|
||||
private Integer shareStatus;
|
||||
|
||||
/**
|
||||
* 模板ID
|
||||
*/
|
||||
private Integer templateId;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private String tags;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 模板的内容
|
||||
*/
|
||||
private String content;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.zyplayer.doc.data.repository.manage.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 标签信息的Vo
|
||||
* </p>
|
||||
*
|
||||
* @author Sh1yu
|
||||
* @since 2023-08-24
|
||||
*/
|
||||
@Data
|
||||
public class WikiTemplateTagVo {
|
||||
|
||||
/**
|
||||
* 是否展示
|
||||
*/
|
||||
private boolean show = true;
|
||||
|
||||
/**
|
||||
* 标签名
|
||||
*/
|
||||
private String tagName;
|
||||
}
|
||||
@@ -7,7 +7,7 @@ package com.zyplayer.doc.data.repository.support.consts;
|
||||
* @since 2020-06-26
|
||||
*/
|
||||
public class DocSysModuleType {
|
||||
public static enum Manage {
|
||||
public enum Manage {
|
||||
USER_MANAGE(1, "用户管理权限"),
|
||||
;
|
||||
|
||||
@@ -28,7 +28,7 @@ public class DocSysModuleType {
|
||||
}
|
||||
}
|
||||
|
||||
public static enum Wiki {
|
||||
public enum Wiki {
|
||||
PAGE(1, "空间"),
|
||||
;
|
||||
|
||||
@@ -49,7 +49,7 @@ public class DocSysModuleType {
|
||||
}
|
||||
}
|
||||
|
||||
public static enum Db {
|
||||
public enum Db {
|
||||
DATASOURCE(1, "数据源管理"),
|
||||
;
|
||||
|
||||
@@ -70,7 +70,7 @@ public class DocSysModuleType {
|
||||
}
|
||||
}
|
||||
|
||||
public static enum Api {
|
||||
public enum Api {
|
||||
DOC(1, "api文档管理"),
|
||||
;
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ public enum UserMsgType {
|
||||
// 6=wiki文档评论 7=wiki文档删除评论 8=wiki文档上传附件 9=wiki文档修改了父级 10=wiki文档点赞 11=wiki文档附件删除
|
||||
SIMPLE(1), WIKI_PAGE_CREATE(2), WIKI_PAGE_DELETE(3), WIKI_PAGE_UPDATE(4), WIKI_PAGE_AUTH(5),
|
||||
WIKI_PAGE_COMMENT(6), WIKI_PAGE_COMMENT_DEL(7), WIKI_PAGE_UPLOAD(8), WIKI_PAGE_PARENT(9), WIKI_PAGE_ZAN(10), WIKI_PAGE_FILE_DEL(11),
|
||||
WIKI_PAGE_ZAN_CANCEL(12),
|
||||
WIKI_PAGE_ZAN_CANCEL(12),WIKI_PAGE_MOVE(13),WIKI_PAGE_COPY(14)
|
||||
// !!增加类型的时候需要在zyplayer-doc-ui/wiki-ui/src/components/layouts/GlobalLayout.vue showUserMessage()方法添加类型支持
|
||||
;
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ public class CodeGenerator {
|
||||
|
||||
public static void main(String[] args) {
|
||||
final String[] tableName = {"api_custom_node", "api_custom_params"};
|
||||
String url = "jdbc:mysql://127.0.0.1:3306/zyplayer_doc_manage?useUnicode=true&useSSL=false&characterEncoding=utf8";
|
||||
String url = "jdbc:mysql://127.0.0.1:3306/zyplayer_doc?useUnicode=true&useSSL=false&characterEncoding=utf8";
|
||||
String projectPath = System.getProperty("user.dir") + "/zyplayer-doc-data";
|
||||
String outputDir = projectPath + "/src/main/java";
|
||||
String mapperDir = projectPath + "/src/main/resources/mapper/manage/";
|
||||
@@ -29,23 +29,19 @@ public class CodeGenerator {
|
||||
.dateType(DateType.ONLY_DATE)
|
||||
.fileOverride(); // 覆盖已生成文件
|
||||
})
|
||||
.packageConfig(builder -> {
|
||||
builder.parent("com.zyplayer.doc.data") // 设置父包名
|
||||
.moduleName("") // 设置父包模块名
|
||||
.controller("web.generator")
|
||||
.entity("repository.manage.entity")
|
||||
.mapper("repository.manage.mapper")
|
||||
.service("service.manage")
|
||||
.serviceImpl("service.manage.impl")
|
||||
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, mapperDir));
|
||||
})
|
||||
.strategyConfig(builder -> {
|
||||
builder.addInclude(tableName) // 设置需要生成的表名
|
||||
.enableCapitalMode()
|
||||
.serviceBuilder()
|
||||
.formatServiceFileName("%sService")
|
||||
.formatServiceImplFileName("%sServiceImpl");
|
||||
})
|
||||
.packageConfig(builder -> builder.parent("com.zyplayer.doc.data") // 设置父包名
|
||||
.moduleName("") // 设置父包模块名
|
||||
.controller("web.generator")
|
||||
.entity("repository.manage.entity")
|
||||
.mapper("repository.manage.mapper")
|
||||
.service("service.manage")
|
||||
.serviceImpl("service.manage.impl")
|
||||
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, mapperDir)))
|
||||
.strategyConfig(builder -> builder.addInclude(tableName) // 设置需要生成的表名
|
||||
.enableCapitalMode()
|
||||
.serviceBuilder()
|
||||
.formatServiceFileName("%sService")
|
||||
.formatServiceImplFileName("%sServiceImpl"))
|
||||
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
|
||||
.execute();
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ public class SqlLogInterceptor implements Interceptor {
|
||||
private String getParameterValue(Object obj) {
|
||||
String value = null;
|
||||
if (obj instanceof String) {
|
||||
value = "'" + obj.toString() + "'";
|
||||
value = "'" + obj + "'";
|
||||
} else if (obj instanceof Date) {
|
||||
DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.CHINA);
|
||||
value = "'" + formatter.format(obj) + "'";
|
||||
@@ -87,7 +87,7 @@ public class SqlLogInterceptor implements Interceptor {
|
||||
List<ParameterMapping> parameterMappings = boundSql.getParameterMappings();
|
||||
StringBuilder sqlSb = new StringBuilder(boundSql.getSql().replaceAll("[\\s]+", " "));
|
||||
int fromIndex = 0;
|
||||
if (parameterMappings.size() > 0 && parameterObject != null) {
|
||||
if (!parameterMappings.isEmpty() && parameterObject != null) {
|
||||
TypeHandlerRegistry typeHandlerRegistry = configuration.getTypeHandlerRegistry();
|
||||
if (typeHandlerRegistry.hasTypeHandler(parameterObject.getClass())) {
|
||||
//sqlSb = sqlSb.replaceFirst("\\?", getParameterValue(parameterObject));
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.ApiCustomParams;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.ApiDoc;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.ApiCustomDocVo;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.ApiCustomVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@@ -18,4 +18,9 @@ public interface DbDatasourceService extends IService<DbDatasource> {
|
||||
* @return List<DbDatasource>
|
||||
*/
|
||||
List<DbDatasource> getDataSourceList();
|
||||
|
||||
/**
|
||||
* 获取数据源
|
||||
*/
|
||||
DbDatasource getDataSource(Long sourceId);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.zyplayer.doc.data.service.manage;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.DbTableRelation;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyplayer.doc.data.repository.manage.param.TableRelationParam;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.TableRelationVo;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.zyplayer.doc.data.service.manage;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyplayer.doc.data.config.security.UserAuthVo;
|
||||
import com.zyplayer.doc.data.config.security.UserAuthInfo;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.UserAuth;
|
||||
|
||||
import java.util.List;
|
||||
@@ -16,7 +16,7 @@ import java.util.List;
|
||||
*/
|
||||
public interface UserAuthService extends IService<UserAuth> {
|
||||
|
||||
List<UserAuthVo> getUserAuthSet(Long userId);
|
||||
List<UserAuthInfo> getUserAuthSet(Long userId);
|
||||
|
||||
List<UserAuth> getModuleAuthList(Integer sysType, Integer sysModuleType, Long sysModuleId);
|
||||
|
||||
|
||||
@@ -2,6 +2,9 @@ package com.zyplayer.doc.data.service.manage;
|
||||
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.WikiPageTemplateInfoVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -16,4 +19,6 @@ public interface WikiPageService extends IService<WikiPage> {
|
||||
void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq);
|
||||
|
||||
void deletePage(WikiPage wikiPage);
|
||||
|
||||
List<WikiPageTemplateInfoVo> wikiPageTemplateInfos(Long spaceId);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.zyplayer.doc.data.service.manage;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPageTemplate;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.WikiPageTemplateInfoVo;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.WikiTemplateTagVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 模板服务接口
|
||||
* </p>
|
||||
*
|
||||
* @author Sh1yu
|
||||
* @since 2023-08-24
|
||||
*/
|
||||
public interface WikiPageTemplateService extends IService<WikiPageTemplate> {
|
||||
|
||||
/**
|
||||
* 根据模板的公开情况获取模板标签
|
||||
*/
|
||||
List<WikiTemplateTagVo> getAllTags(Long user, boolean open);
|
||||
|
||||
/**
|
||||
* 根据条件获取模板
|
||||
*/
|
||||
WikiPageTemplate getWikiPageTemplateBySpaceAndPage(Long spaceId, Long pageId);
|
||||
|
||||
|
||||
/**
|
||||
* 根据条件获取模板信息
|
||||
*/
|
||||
List<WikiPageTemplateInfoVo> filterAll(Long user, String name, boolean open, List<String> tags, Long pageNum);
|
||||
|
||||
/**
|
||||
* 根据条件获取总条数
|
||||
*/
|
||||
Long total(Long user, String name, boolean open, List<String> tags);
|
||||
}
|
||||
@@ -6,7 +6,6 @@ import com.zyplayer.doc.data.config.security.DocUserUtil;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.*;
|
||||
import com.zyplayer.doc.data.repository.manage.mapper.ApiCustomNodeMapper;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.ApiCustomDocVo;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.ApiCustomVo;
|
||||
import com.zyplayer.doc.data.service.common.ApiDocAuthJudgeService;
|
||||
import com.zyplayer.doc.data.service.manage.ApiCustomNodeService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType;
|
||||
import com.zyplayer.doc.data.repository.support.consts.DocSysType;
|
||||
import com.zyplayer.doc.data.service.manage.DbDatasourceService;
|
||||
import com.zyplayer.doc.data.service.manage.UserAuthService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -33,6 +34,9 @@ public class DbDatasourceServiceImpl extends ServiceImpl<DbDatasourceMapper, DbD
|
||||
@Resource
|
||||
UserAuthService userAuthService;
|
||||
|
||||
@Autowired
|
||||
private DbDatasourceMapper dbDatasourceMapper;
|
||||
|
||||
@Override
|
||||
public List<DbDatasource> getDataSourceList() {
|
||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||
@@ -55,6 +59,36 @@ public class DbDatasourceServiceImpl extends ServiceImpl<DbDatasourceMapper, DbD
|
||||
wrapper.in("id", userAuthDbIds);
|
||||
}
|
||||
wrapper.select("id", "name", "group_name");
|
||||
|
||||
return list(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据源
|
||||
*/
|
||||
@Override
|
||||
public DbDatasource getDataSource(Long sourceId){
|
||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||
QueryWrapper<DbDatasource> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("yn", 1);
|
||||
wrapper.eq("id", sourceId);
|
||||
// 没管理权限只返回有权限的数据源
|
||||
if (!DocUserUtil.haveAuth(DocAuthConst.DB_DATASOURCE_MANAGE)) {
|
||||
QueryWrapper<UserAuth> updateWrapper = new QueryWrapper<>();
|
||||
updateWrapper.eq("sys_type", DocSysType.DB.getType());
|
||||
updateWrapper.eq("sys_module_type", DocSysModuleType.Db.DATASOURCE.getType());
|
||||
updateWrapper.eq("del_flag", 0);
|
||||
updateWrapper.eq("user_id", currentUser.getUserId());
|
||||
List<UserAuth> userAuthList = userAuthService.list(updateWrapper);
|
||||
if (userAuthList == null || userAuthList.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
List<Long> userAuthDbIds = userAuthList.stream()
|
||||
.map(UserAuth::getSysModuleId)
|
||||
.collect(Collectors.toList());
|
||||
wrapper.in("id", userAuthDbIds);
|
||||
}
|
||||
wrapper.select("id", "name", "group_name");
|
||||
return dbDatasourceMapper.selectOne(wrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,14 +2,10 @@ 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.core.exception.ConfirmException;
|
||||
import com.zyplayer.doc.data.config.security.UserAuthVo;
|
||||
import com.zyplayer.doc.data.config.security.UserAuthInfo;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.AuthInfo;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.UserAuth;
|
||||
import com.zyplayer.doc.data.repository.manage.mapper.UserAuthMapper;
|
||||
import com.zyplayer.doc.data.repository.support.consts.DocAuthConst;
|
||||
import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType;
|
||||
import com.zyplayer.doc.data.repository.support.consts.DocSysType;
|
||||
import com.zyplayer.doc.data.service.manage.AuthInfoService;
|
||||
import com.zyplayer.doc.data.service.manage.UserAuthService;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
@@ -34,9 +30,9 @@ public class UserAuthServiceImpl extends ServiceImpl<UserAuthMapper, UserAuth> i
|
||||
AuthInfoService authInfoService;
|
||||
|
||||
@Override
|
||||
public List<UserAuthVo> getUserAuthSet(Long userId) {
|
||||
public List<UserAuthInfo> getUserAuthSet(Long userId) {
|
||||
QueryWrapper<UserAuth> authWrapper = new QueryWrapper<>();
|
||||
authWrapper.eq("user_id", userId).eq("del_flag", "0");
|
||||
authWrapper.eq("user_id", userId).eq("del_flag", 0);
|
||||
List<UserAuth> userAuthList = this.list(authWrapper);
|
||||
if (CollectionUtils.isEmpty(userAuthList)) {
|
||||
return Collections.emptyList();
|
||||
@@ -45,8 +41,8 @@ public class UserAuthServiceImpl extends ServiceImpl<UserAuthMapper, UserAuth> i
|
||||
Collection<AuthInfo> authInfoList = authInfoService.listByIds(authIdList);
|
||||
Map<Long, String> authNameMap = authInfoList.stream().collect(Collectors.toMap(AuthInfo::getId, AuthInfo::getAuthName));
|
||||
// 组装
|
||||
List<UserAuthVo> userAuthVoList = userAuthList.stream().map(UserAuthVo::new).collect(Collectors.toList());
|
||||
for (UserAuthVo userAuthVo : userAuthVoList) {
|
||||
List<UserAuthInfo> userAuthVoList = userAuthList.stream().map(UserAuthInfo::new).collect(Collectors.toList());
|
||||
for (UserAuthInfo userAuthVo : userAuthVoList) {
|
||||
userAuthVo.setAuthCode(authNameMap.get(userAuthVo.getAuthId()));
|
||||
}
|
||||
return userAuthVoList;
|
||||
|
||||
@@ -22,97 +22,105 @@ import java.util.Objects;
|
||||
*/
|
||||
@Service
|
||||
public class UserMessageServiceImpl extends ServiceImpl<UserMessageMapper, UserMessage> implements UserMessageService {
|
||||
|
||||
@Override
|
||||
public UserMessage createUserMessage(DocUserDetails currentUser, Long dataId, String dataDesc, DocSysType sysType, UserMsgType msgType) {
|
||||
UserMessage userMessage = new UserMessage();
|
||||
userMessage.setDataId(dataId);
|
||||
userMessage.setDataDesc(dataDesc);
|
||||
userMessage.setSysType(sysType.getType());
|
||||
userMessage.setMsgType(msgType.getType());
|
||||
userMessage.setOperatorUserId(currentUser.getUserId());
|
||||
userMessage.setOperatorUserName(currentUser.getUsername());
|
||||
return userMessage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addWikiMessage(UserMessage userMessage) {
|
||||
// 初始值,操作人的消息默认为已读
|
||||
userMessage.setMsgStatus(1);
|
||||
userMessage.setCreationTime(new Date());
|
||||
// 操作人
|
||||
userMessage.setAcceptUserId(userMessage.getOperatorUserId());
|
||||
this.setWikiMsgContentForOperator(userMessage);
|
||||
this.save(userMessage);
|
||||
// 影响人
|
||||
if (userMessage.getAffectUserId() != null && !Objects.equals(userMessage.getAffectUserId(), userMessage.getOperatorUserId())) {
|
||||
userMessage.setId(null);
|
||||
// 收影响人的消息为未读
|
||||
userMessage.setMsgStatus(0);
|
||||
userMessage.setAcceptUserId(userMessage.getAffectUserId());
|
||||
this.setWikiMsgContentForAffect(userMessage);
|
||||
this.save(userMessage);
|
||||
}
|
||||
// 后期可以添加文档的关注人等
|
||||
}
|
||||
|
||||
/**
|
||||
* 给操作人发通知的内容
|
||||
*
|
||||
* @param userMessage
|
||||
*/
|
||||
private void setWikiMsgContentForOperator(UserMessage userMessage) {
|
||||
if (Objects.equals(UserMsgType.WIKI_PAGE_UPLOAD.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您在‘%s’文档内上传了一个附件", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_AUTH.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您修改了‘%s’文档内‘%s’的权限", userMessage.getDataDesc(), userMessage.getAffectUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您评论了‘%s’", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT_DEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您删除了‘%s’文档的评论", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_PARENT.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您修改了‘%s’文档的父级", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_DELETE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您删除了‘%s’", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_CREATE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您创建了‘%s’", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_UPDATE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您修改了‘%s’", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_ZAN.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您赞同了‘%s’", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_FILE_DEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您删除了‘%s’文档的一个附件", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_ZAN_CANCEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您取消了对‘%s’文档的赞同", userMessage.getDataDesc()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 给影响人发通知的内容
|
||||
*
|
||||
* @param userMessage
|
||||
*/
|
||||
private void setWikiMsgContentForAffect(UserMessage userMessage) {
|
||||
if (Objects.equals(UserMsgType.WIKI_PAGE_UPLOAD.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("‘%s’为您的文档‘%s’上传了附件", userMessage.getOperatorUserName(), userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_AUTH.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您在‘%s’文档内的权限被‘%s’修改了", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档收到了来自‘%s’的评论", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT_DEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("‘%s’删除了您的文档‘%s’的一条评论", userMessage.getOperatorUserName(), userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_PARENT.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档被‘%s’修改了父级", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_DELETE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档被‘%s’删除了", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_UPDATE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档被‘%s’修改了", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_ZAN.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档收到了‘%s’的赞同", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_FILE_DEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档被‘%s’删除了一个附件", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_ZAN_CANCEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("‘%s’取消了对文档‘%s’的赞同", userMessage.getOperatorUserName(), userMessage.getDataDesc()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserMessage createUserMessage(DocUserDetails currentUser, Long dataId, String dataDesc, DocSysType sysType, UserMsgType msgType) {
|
||||
UserMessage userMessage = new UserMessage();
|
||||
userMessage.setDataId(dataId);
|
||||
userMessage.setDataDesc(dataDesc);
|
||||
userMessage.setSysType(sysType.getType());
|
||||
userMessage.setMsgType(msgType.getType());
|
||||
userMessage.setOperatorUserId(currentUser.getUserId());
|
||||
userMessage.setOperatorUserName(currentUser.getUsername());
|
||||
return userMessage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addWikiMessage(UserMessage userMessage) {
|
||||
// 初始值,操作人的消息默认为已读
|
||||
userMessage.setMsgStatus(1);
|
||||
userMessage.setCreationTime(new Date());
|
||||
// 操作人
|
||||
userMessage.setAcceptUserId(userMessage.getOperatorUserId());
|
||||
this.setWikiMsgContentForOperator(userMessage);
|
||||
this.save(userMessage);
|
||||
// 影响人
|
||||
if (userMessage.getAffectUserId() != null && !Objects.equals(userMessage.getAffectUserId(), userMessage.getOperatorUserId())) {
|
||||
userMessage.setId(null);
|
||||
// 收影响人的消息为未读
|
||||
userMessage.setMsgStatus(0);
|
||||
userMessage.setAcceptUserId(userMessage.getAffectUserId());
|
||||
this.setWikiMsgContentForAffect(userMessage);
|
||||
this.save(userMessage);
|
||||
}
|
||||
// 后期可以添加文档的关注人等
|
||||
}
|
||||
|
||||
/**
|
||||
* 给操作人发通知的内容
|
||||
*
|
||||
* @param userMessage
|
||||
*/
|
||||
private void setWikiMsgContentForOperator(UserMessage userMessage) {
|
||||
if (Objects.equals(UserMsgType.WIKI_PAGE_UPLOAD.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您在‘%s’文档内上传了一个附件", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_AUTH.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您修改了‘%s’文档内‘%s’的权限", userMessage.getDataDesc(), userMessage.getAffectUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您评论了‘%s’", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT_DEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您删除了‘%s’文档的评论", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_PARENT.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您修改了‘%s’文档的父级", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_DELETE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您删除了‘%s’", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_CREATE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您创建了‘%s’", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_UPDATE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您修改了‘%s’", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_ZAN.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您赞同了‘%s’", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_FILE_DEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您删除了‘%s’文档的一个附件", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_ZAN_CANCEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您取消了对‘%s’文档的赞同", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_MOVE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您移动了文档‘%s’", userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COPY.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您复制了文档‘%s’", userMessage.getDataDesc()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 给影响人发通知的内容
|
||||
*
|
||||
* @param userMessage
|
||||
*/
|
||||
private void setWikiMsgContentForAffect(UserMessage userMessage) {
|
||||
if (Objects.equals(UserMsgType.WIKI_PAGE_UPLOAD.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("‘%s’为您的文档‘%s’上传了附件", userMessage.getOperatorUserName(), userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_AUTH.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您在‘%s’文档内的权限被‘%s’修改了", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档收到了来自‘%s’的评论", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT_DEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("‘%s’删除了您的文档‘%s’的一条评论", userMessage.getOperatorUserName(), userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_PARENT.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档被‘%s’修改了父级", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_DELETE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档被‘%s’删除了", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_UPDATE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档被‘%s’修改了", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_ZAN.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档收到了‘%s’的赞同", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_FILE_DEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("您的‘%s’文档被‘%s’删除了一个附件", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_ZAN_CANCEL.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("‘%s’取消了对文档‘%s’的赞同", userMessage.getOperatorUserName(), userMessage.getDataDesc()));
|
||||
}else if (Objects.equals(UserMsgType.WIKI_PAGE_MOVE.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("‘%s’移动了文档‘%s’", userMessage.getOperatorUserName(), userMessage.getDataDesc()));
|
||||
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COPY.getType(), userMessage.getMsgType())) {
|
||||
userMessage.setMsgContent(String.format("‘%s’复制了文档‘%s’", userMessage.getOperatorUserName(), userMessage.getDataDesc()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.Date;
|
||||
*/
|
||||
@Service
|
||||
public class WikiPageHistoryServiceImpl extends ServiceImpl<WikiPageHistoryMapper, WikiPageHistory> implements WikiPageHistoryService {
|
||||
private static Logger logger = LoggerFactory.getLogger(WikiPageHistoryServiceImpl.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(WikiPageHistoryServiceImpl.class);
|
||||
|
||||
@Override
|
||||
public WikiPageHistory saveRecord(Long spaceId, Long pageId, String content) {
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.zyplayer.doc.data.config.security.DocUserUtil;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.UserMessage;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
|
||||
import com.zyplayer.doc.data.repository.manage.mapper.WikiPageMapper;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.WikiPageTemplateInfoVo;
|
||||
import com.zyplayer.doc.data.repository.support.consts.DocSysType;
|
||||
import com.zyplayer.doc.data.repository.support.consts.UserMsgType;
|
||||
import com.zyplayer.doc.data.service.manage.UserMessageService;
|
||||
@@ -70,7 +71,8 @@ public class WikiPageServiceImpl extends ServiceImpl<WikiPageMapper, WikiPage> i
|
||||
userMessage.setAffectUserId(wikiPage.getCreateUserId());
|
||||
userMessage.setAffectUserName(wikiPage.getCreateUserName());
|
||||
userMessageService.addWikiMessage(userMessage);
|
||||
// 递归删除
|
||||
// 递归删除,名字不能修改
|
||||
wikiPage.setName(null);
|
||||
this.deletePageAndSon(wikiPage);
|
||||
}
|
||||
|
||||
@@ -91,4 +93,8 @@ public class WikiPageServiceImpl extends ServiceImpl<WikiPageMapper, WikiPage> i
|
||||
this.deletePageAndSon(wikiPage);
|
||||
}
|
||||
}
|
||||
|
||||
public List<WikiPageTemplateInfoVo> wikiPageTemplateInfos(Long spaceId){
|
||||
return wikiPageMapper.getWikiPageTemplateInfos(spaceId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
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.WikiPageTemplate;
|
||||
import com.zyplayer.doc.data.repository.manage.mapper.WikiPageTemplateMapper;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.WikiPageTemplateInfoVo;
|
||||
import com.zyplayer.doc.data.repository.manage.vo.WikiTemplateTagVo;
|
||||
import com.zyplayer.doc.data.service.manage.WikiPageTemplateService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
/**
|
||||
* <p>
|
||||
* 模板服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author Sh1yu
|
||||
* @since 2023-08-24
|
||||
*/
|
||||
@Service
|
||||
public class WikiPageTemplateServiceImpl extends ServiceImpl<WikiPageTemplateMapper, WikiPageTemplate> implements WikiPageTemplateService {
|
||||
@Override
|
||||
public List<WikiTemplateTagVo> getAllTags(Long user, boolean open) {
|
||||
return getBaseMapper().getAllTags(user,open);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WikiPageTemplate getWikiPageTemplateBySpaceAndPage(Long spaceId, Long pageId) {
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq("space_id", spaceId);
|
||||
queryWrapper.eq("page_id", pageId);
|
||||
return getBaseMapper().selectOne(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WikiPageTemplateInfoVo> filterAll(Long user, String name, boolean open, List<String> tags, Long pageNum) {
|
||||
long offset = 0L;
|
||||
if (null != pageNum && pageNum != 0L) {
|
||||
offset = (pageNum - 1) * 8;
|
||||
}
|
||||
return getBaseMapper().getAllTemplate(user, StringUtils.isBlank(name) ? null : "%" + name + "%", open, tags, offset);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long total(Long user, String name, boolean open, List<String> tags) {
|
||||
return getBaseMapper().getAllTemplateCount(user, name, open, tags);
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
* @since 2019年05月25日
|
||||
*/
|
||||
public class CacheUtil {
|
||||
private static Logger logger = LoggerFactory.getLogger(CacheUtil.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(CacheUtil.class);
|
||||
|
||||
// 定期清除过期的key
|
||||
static {
|
||||
@@ -49,7 +49,7 @@ public class CacheUtil {
|
||||
}
|
||||
|
||||
// 现在是内存缓存,不支持分布式部署,后期考虑放到redis,但感觉也没必要。。
|
||||
private static Map<String, CacheData> cacheDataMap = new ConcurrentHashMap<>();
|
||||
private static final Map<String, CacheData> cacheDataMap = new ConcurrentHashMap<>();
|
||||
|
||||
/**
|
||||
* 放入缓存,默认12小时,按最后一次访问的12小时
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.zyplayer.doc.data.utils;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
/**
|
||||
* 创建一个线程类来不停地来读出Process调用脚本的输出数据,防止缓冲区被缓冲数据塞满而线程阻塞
|
||||
* @author diantu
|
||||
* @since 2023年3月3日
|
||||
*/
|
||||
@Slf4j
|
||||
public class CleanInputCache extends Thread{
|
||||
|
||||
private final String type;
|
||||
private final String charSet;
|
||||
private final StringBuilder msg;
|
||||
private final InputStream inputStream;
|
||||
|
||||
public CleanInputCache(InputStream inputStream, String type, String charSet, StringBuilder msg) {
|
||||
this.type = type;
|
||||
this.msg = msg;
|
||||
this.charSet = charSet;
|
||||
this.inputStream = inputStream;
|
||||
}
|
||||
|
||||
public void run() {
|
||||
try {
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charSet));
|
||||
String line = null;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
if ("error".equals(type)) {
|
||||
msg.append(line);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,18 +14,18 @@ import java.util.concurrent.atomic.AtomicLong;
|
||||
* @since 2020-04-08
|
||||
*/
|
||||
public class DruidDataSourceUtil {
|
||||
|
||||
private static AtomicLong nameId = new AtomicLong(0);
|
||||
|
||||
public static DruidDataSource createDataSource(String driverClassName, String url, String username, String password, boolean breakAfterAcquireFailure) throws Exception {
|
||||
|
||||
private static final AtomicLong nameId = new AtomicLong(0);
|
||||
|
||||
public static DruidDataSource createDataSource(String driverClassName, String url, String username, String password, boolean breakAfterAcquireFailure) {
|
||||
// 数据源配置
|
||||
DruidDataSource dataSource = new DruidDataSource();
|
||||
dataSource.setDriverClassName(driverClassName);
|
||||
dataSource.setUrl(url);
|
||||
dataSource.setUsername(username);
|
||||
dataSource.setPassword(password);
|
||||
dataSource.setInitialSize(2);
|
||||
dataSource.setMinIdle(2);
|
||||
dataSource.setInitialSize(1);
|
||||
dataSource.setMinIdle(1);
|
||||
dataSource.setMaxActive(50);
|
||||
dataSource.setTestWhileIdle(true);
|
||||
dataSource.setTestOnBorrow(false);
|
||||
@@ -43,11 +43,18 @@ public class DruidDataSourceUtil {
|
||||
if (Objects.equals("oracle.jdbc.driver.OracleDriver", driverClassName)) {
|
||||
dataSource.setValidationQuery("select 1 from dual");
|
||||
}
|
||||
DruidPooledConnection connection = dataSource.getConnection(3000);
|
||||
if (connection == null) {
|
||||
try {
|
||||
DruidPooledConnection connection = dataSource.getConnection(3000);
|
||||
if (connection == null) {
|
||||
dataSource.close();
|
||||
throw new ConfirmException("尝试获取该数据源连接失败:" + url);
|
||||
}
|
||||
connection.recycle();
|
||||
}catch (Exception e){
|
||||
dataSource.close();
|
||||
throw new ConfirmException("尝试获取该数据源连接失败:" + url);
|
||||
}
|
||||
connection.recycle();
|
||||
|
||||
return dataSource;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.zyplayer.doc.data.utils;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class HtmlUtils {
|
||||
private static final Logger logger = LoggerFactory.getLogger(HtmlUtils.class);
|
||||
|
||||
/**
|
||||
* 从Content-Disposition头部提取文件名
|
||||
*
|
||||
* @param contentDisposition Content-Disposition头部字符串
|
||||
* @return 文件名,如果未找到则返回null
|
||||
*/
|
||||
public static String extractFilename(String contentDisposition, String defaultName) {
|
||||
if (StringUtils.isBlank(contentDisposition)) {
|
||||
return defaultName;
|
||||
}
|
||||
for (String name : contentDisposition.split(";")) {
|
||||
String[] nameArr = name.trim().split("=");
|
||||
if (nameArr.length >= 2 && StringUtils.startsWith(nameArr[0], "filename")) {
|
||||
return StringUtils.removeEnd(StringUtils.removeStart(nameArr[1].trim(), "\""), "\"");
|
||||
}
|
||||
}
|
||||
return defaultName;
|
||||
}
|
||||
}
|
||||
@@ -8,12 +8,17 @@
|
||||
a.update_time as updateTime, a.name as pageTitle, b.preview as previewContent
|
||||
from wiki_page a
|
||||
join wiki_page_content b on b.page_id = a.id
|
||||
where a.del_flag = 0
|
||||
where a.del_flag = 0 and a.editor_type != 0
|
||||
<if test="keywords != null and keywords != ''">
|
||||
and (
|
||||
a.name like #{keywords} or b.preview like #{keywords}
|
||||
)
|
||||
</if>
|
||||
<if test="dirId != null and dirId != ''">
|
||||
and (
|
||||
a.parent_id = #{dirId}
|
||||
)
|
||||
</if>
|
||||
<if test="spaceIds != null and spaceIds.size > 0">
|
||||
and a.space_id in
|
||||
<foreach collection="spaceIds" open="(" close=")" item="item" separator=",">#{item}</foreach>
|
||||
|
||||
@@ -12,4 +12,12 @@
|
||||
set seq_no = b.rownum
|
||||
where a.parent_id = #{parentId} and a.space_id = #{spaceId};
|
||||
</update>
|
||||
<update id="updateChildrenSeq" databaseId="postgresql">
|
||||
WITH exceeded_wiki_page AS (
|
||||
select row_number() over() as rownum, * from wiki_page where parent_id = #{parentId} and space_id = #{spaceId} ORDER BY seq_no ASC, update_time DESC
|
||||
)
|
||||
UPDATE wiki_page SET seq_no = ewp.rownum
|
||||
FROM exceeded_wiki_page AS ewp
|
||||
WHERE wiki_page.id = ewp.id
|
||||
</update>
|
||||
</mapper>
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
<?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.zyplayer.doc.data.repository.manage.mapper.WikiPageTemplateMapper">
|
||||
<select id="getAllTemplate" resultType="com.zyplayer.doc.data.repository.manage.vo.WikiPageTemplateInfoVo">
|
||||
SELECT a.*,b.tag_name As tags,b.share_status as shareStatus,c.content,b.id as templateId from wiki_page a
|
||||
left join wiki_page_template b on a.space_id = b.space_id and a.id = b.page_id
|
||||
left join wiki_page_content c on a.id = c.page_id
|
||||
<include refid="queryTemplateByCondition"></include>
|
||||
order by b.id
|
||||
limit 8 offset #{pageNum}
|
||||
</select>
|
||||
<select id="getAllTemplateCount" resultType="java.lang.Long">
|
||||
SELECT count(*) from wiki_page a
|
||||
LEFT JOIN wiki_page_template b on a.space_id = b.space_id and a.id = b.page_id
|
||||
left join wiki_page_content c on a.id = c.page_id
|
||||
<include refid="queryTemplateByCondition"></include>
|
||||
</select>
|
||||
<select id="getAllTags" resultType="com.zyplayer.doc.data.repository.manage.vo.WikiTemplateTagVo">
|
||||
select DISTINCT tag_name
|
||||
from wiki_page_template
|
||||
where tag_name is not null
|
||||
and tag_name != ''
|
||||
and share_status = #{open}
|
||||
<if test="!open">
|
||||
and create_user_id = #{user}
|
||||
</if>
|
||||
</select>
|
||||
<sql id="queryTemplateByCondition">
|
||||
where del_flag = 0 and b.id is not null
|
||||
and b.share_status = #{share}
|
||||
<if test="!share">
|
||||
and b.create_user_id = #{user}
|
||||
</if>
|
||||
<if test="name != null and name != ''">
|
||||
and a.name like #{name}
|
||||
</if>
|
||||
<if test="tags != null and tags.size >0 ">
|
||||
and b.tag_name in
|
||||
<foreach collection="tags" open="(" close=")" item="item" separator=",">#{item}</foreach>
|
||||
</if>
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -23,7 +23,7 @@
|
||||
<parent>
|
||||
<groupId>com.zyplayer</groupId>
|
||||
<artifactId>zyplayer-doc</artifactId>
|
||||
<version>1.1.2</version>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
@@ -35,10 +35,6 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-jdbc</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mybatis</groupId>
|
||||
<artifactId>mybatis</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.zyplayer</groupId>
|
||||
<artifactId>zyplayer-doc-core</artifactId>
|
||||
@@ -54,10 +50,13 @@
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>RELEASE</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<dependency>
|
||||
<groupId>org.quartz-scheduler</groupId>
|
||||
<artifactId>quartz</artifactId>
|
||||
<version>2.3.2</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
||||
@@ -61,6 +61,15 @@ public class DatabaseDocController {
|
||||
return DocDbResponseJson.ok(dataSourceList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据源
|
||||
*/
|
||||
@PostMapping("/getDataSource")
|
||||
public DocDbResponseJson getDataSource(Long sourceId) {
|
||||
DbDatasource dataSource = dbDatasourceService.getDataSource(sourceId);
|
||||
return DocDbResponseJson.ok(dataSource);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据源基本信息
|
||||
*
|
||||
@@ -189,10 +198,13 @@ public class DatabaseDocController {
|
||||
DatabaseExportVo exportVo = new DatabaseExportVo(columnList, tableList);
|
||||
if (Objects.equals(exportFormat, 1)) {
|
||||
PoiUtil.exportByText(exportVo, response);
|
||||
return null;
|
||||
} else if (Objects.equals(exportFormat, 2)) {
|
||||
PoiUtil.exportByXlsx(exportVo, response);
|
||||
return null;
|
||||
} else if (Objects.equals(exportFormat, 3)) {
|
||||
PoiUtil.exportByDocx(dbName, exportVo, response);
|
||||
return null;
|
||||
}
|
||||
return DocDbResponseJson.error("导出失败:请先选择导出类型");
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -40,7 +40,7 @@ import java.util.stream.Stream;
|
||||
@AuthMan(DocAuthConst.DB_DATASOURCE_MANAGE)
|
||||
@RequestMapping("/zyplayer-doc-db/auth")
|
||||
public class DbDataSourceAuthController {
|
||||
private static Logger logger = LoggerFactory.getLogger(DbDataSourceAuthController.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(DbDataSourceAuthController.class);
|
||||
|
||||
@Resource
|
||||
UserInfoService userInfoService;
|
||||
|
||||
@@ -43,7 +43,7 @@ import java.util.*;
|
||||
@RestController
|
||||
@RequestMapping("/zyplayer-doc-db/data-view")
|
||||
public class DbDataViewController {
|
||||
private static Logger logger = LoggerFactory.getLogger(DbDataViewController.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(DbDataViewController.class);
|
||||
|
||||
@Resource
|
||||
ExecuteAuthService executeAuthService;
|
||||
@@ -127,7 +127,7 @@ public class DbDataViewController {
|
||||
e.printStackTrace();
|
||||
return DocDbResponseJson.error("导出失败:" + e.getMessage());
|
||||
}
|
||||
return DocDbResponseJson.ok();
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -40,7 +40,7 @@ import java.util.List;
|
||||
@RestController
|
||||
@RequestMapping("/zyplayer-doc-db/procedure")
|
||||
public class DbProcedureController {
|
||||
private static Logger logger = LoggerFactory.getLogger(DbProcedureController.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(DbProcedureController.class);
|
||||
|
||||
@Resource
|
||||
DatabaseServiceFactory databaseServiceFactory;
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
package com.zyplayer.doc.db.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.druid.DbType;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectStatement;
|
||||
import com.alibaba.druid.sql.parser.SQLStatementParser;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.zyplayer.doc.core.annotation.AuthMan;
|
||||
import com.zyplayer.doc.data.config.security.DocUserDetails;
|
||||
@@ -14,14 +20,10 @@ import com.zyplayer.doc.data.repository.support.consts.DocSysType;
|
||||
import com.zyplayer.doc.data.service.manage.DbFavoriteService;
|
||||
import com.zyplayer.doc.data.service.manage.DbHistoryService;
|
||||
import com.zyplayer.doc.db.framework.consts.DbAuthType;
|
||||
import com.zyplayer.doc.db.framework.db.mapper.base.ExecuteParam;
|
||||
import com.zyplayer.doc.db.framework.db.mapper.base.ExecuteResult;
|
||||
import com.zyplayer.doc.db.framework.db.mapper.base.ExecuteType;
|
||||
import com.zyplayer.doc.db.framework.db.mapper.base.SqlExecutor;
|
||||
import com.zyplayer.doc.db.framework.db.mapper.base.*;
|
||||
import com.zyplayer.doc.db.framework.db.transfer.SqlParseUtil;
|
||||
import com.zyplayer.doc.db.framework.json.DocDbResponseJson;
|
||||
import com.zyplayer.doc.db.framework.utils.JSONUtil;
|
||||
import com.zyplayer.doc.db.framework.utils.SqlLogUtil;
|
||||
import com.zyplayer.doc.db.framework.utils.SQLTransformUtils;
|
||||
import com.zyplayer.doc.db.service.database.DatabaseServiceFactory;
|
||||
import com.zyplayer.doc.db.service.database.DbBaseService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -44,10 +46,10 @@ import java.util.*;
|
||||
@RestController
|
||||
@RequestMapping("/zyplayer-doc-db/executor")
|
||||
public class DbSqlExecutorController {
|
||||
private static Logger logger = LoggerFactory.getLogger(DbSqlExecutorController.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(DbSqlExecutorController.class);
|
||||
|
||||
@Resource
|
||||
SqlExecutor sqlExecutor;
|
||||
ColumnSqlExecutor columnSqlExecutor;
|
||||
@Resource
|
||||
DbHistoryService dbHistoryService;
|
||||
@Resource
|
||||
@@ -55,8 +57,20 @@ public class DbSqlExecutorController {
|
||||
@Resource
|
||||
DatabaseServiceFactory databaseServiceFactory;
|
||||
|
||||
/**
|
||||
* sql执行器
|
||||
* @param sourceId
|
||||
* @param executeId
|
||||
* @param dbName
|
||||
* @param sql
|
||||
* @param params
|
||||
* @param pageSize
|
||||
* @param pageNum
|
||||
* @param type noPage:无分页 其他:有分页
|
||||
* @return
|
||||
*/
|
||||
@PostMapping(value = "/execute")
|
||||
public DocDbResponseJson execute(Long sourceId, String executeId, String dbName, String sql, String params) {
|
||||
public DocDbResponseJson execute(Long sourceId, String executeId, String dbName, String sql, String params,Integer pageSize,Integer pageNum,String type) {
|
||||
if (StringUtils.isBlank(sql)) {
|
||||
return DocDbResponseJson.warn("执行的SQL不能为空");
|
||||
}
|
||||
@@ -72,44 +86,108 @@ public class DbSqlExecutorController {
|
||||
dbHistoryService.saveHistory(sql.trim(), params, sourceId);
|
||||
// 参数处理
|
||||
Map<String, Object> paramMap = JSON.parseObject(params);
|
||||
List<String> resultList = new LinkedList<>();
|
||||
// 支持;分割的多个sql执行
|
||||
String[] sqlArr = sql.split(";");
|
||||
// 执行条数太多,反应慢,展示结果栏太多,也不应该在这一次执行很多条语句,应该使用导入
|
||||
if (sqlArr.length > 20) {
|
||||
return DocDbResponseJson.warn("单次执行最多支持20条语句同时执行,当前语句条数:" + sqlArr.length);
|
||||
}
|
||||
for (String sqlItem : sqlArr) {
|
||||
if (StringUtils.isBlank(sqlItem)) {
|
||||
continue;
|
||||
// 解析出多个执行的SQL
|
||||
List<Map<String,Object>> analysisQuerySqlList = new LinkedList<>();
|
||||
try {
|
||||
String driverClassName = dbBaseService.getDatabaseProduct().getDriverClassName();
|
||||
List<SQLStatement> sqlStatements;
|
||||
//根据驱动程序类名获取数据库类型
|
||||
DbType dbType = SQLTransformUtils.getDbTypeByDriverClassName(driverClassName);
|
||||
sqlStatements = new SQLStatementParser(sql,dbType).parseStatementList();
|
||||
for (SQLStatement sqlStatement : sqlStatements) {
|
||||
StringBuffer sb = new StringBuffer(sqlStatement.toString());
|
||||
if(sb.length()>0&&';' == (sb.charAt(sb.length()-1))){
|
||||
sb.deleteCharAt(sb.length()-1);
|
||||
}
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
//原始sql
|
||||
map.put("originalSql",sb);
|
||||
//sql解析类型
|
||||
map.put("sqlType","");
|
||||
//获取数据总量sql
|
||||
map.put("getAllCountSql","");
|
||||
//判断sql解析类型
|
||||
if(sqlStatement instanceof SQLSelectStatement){
|
||||
map.put("getAllCountSql","select count(1) from ("+sb+") r");
|
||||
map.put("sqlType","select");
|
||||
}
|
||||
analysisQuerySqlList.add(map);
|
||||
}
|
||||
sqlItem = sqlItem.trim();
|
||||
ExecuteResult executeResult;
|
||||
ExecuteParam executeParam = new ExecuteParam();
|
||||
} catch (Exception e) {
|
||||
return DocDbResponseJson.warn("SQL解析失败:" + e.getMessage());
|
||||
}
|
||||
// 执行条数太多,反应慢,展示结果栏太多,也不应该在这一次执行很多条语句,应该使用导入
|
||||
if (analysisQuerySqlList.size() > 20) {
|
||||
return DocDbResponseJson.warn("单次执行最多支持20条语句同时执行,当前语句条数:" + analysisQuerySqlList.size());
|
||||
}
|
||||
List<ColumnExecuteResult> resultList = new LinkedList<>();
|
||||
for (int i = 0; i < analysisQuerySqlList.size(); i++) {
|
||||
Map<String, Object> map = analysisQuerySqlList.get(i);
|
||||
ColumnExecuteResult executeResult;
|
||||
ColumnExecuteResult executeCountResult;
|
||||
//原始sql
|
||||
String originalSql = map.get("originalSql").toString();
|
||||
try {
|
||||
ExecuteType executeType = (manageAuth || update) ? ExecuteType.ALL : ExecuteType.SELECT;
|
||||
executeParam = SqlParseUtil.getSingleExecuteParam(sqlItem, paramMap);
|
||||
ExecuteParam executeParam = new ExecuteParam();
|
||||
executeParam.setDatasourceId(sourceId);
|
||||
executeParam.setExecuteId(executeId);
|
||||
executeParam.setExecuteType(executeType);
|
||||
executeParam.setPrefixSql(useDbSql);
|
||||
executeParam.setMaxRows(1000);
|
||||
executeResult = sqlExecutor.execute(executeParam);
|
||||
if(!StrUtil.equals(type,"noPage")){
|
||||
executeParam.setMaxRows(1000);
|
||||
}
|
||||
//sql解析类型为select
|
||||
if(map.get("sqlType").equals("select")){
|
||||
if(StrUtil.equals(type,"noPage")){
|
||||
executeParam = SqlParseUtil.getSingleExecuteParam(executeParam,originalSql, paramMap);
|
||||
//设置最后一次标志
|
||||
if(i==analysisQuerySqlList.size()-1){
|
||||
executeParam.setIsLastTime(true);
|
||||
}
|
||||
executeResult = columnSqlExecutor.execute(executeParam);
|
||||
resultList.add(executeResult);
|
||||
continue;
|
||||
}
|
||||
//获取总数据量sql
|
||||
String getAllCountSql = map.get("getAllCountSql").toString();
|
||||
executeParam = SqlParseUtil.getSingleExecuteParam(executeParam,getAllCountSql, paramMap);
|
||||
executeCountResult = columnSqlExecutor.execute(executeParam);
|
||||
List<List<Object>> data = executeCountResult.getData();
|
||||
long count = 0;
|
||||
if(data!=null){
|
||||
count = Long.parseLong(data.get(0).get(0)+"");
|
||||
}
|
||||
//设置最后一次标志
|
||||
if(i==analysisQuerySqlList.size()-1){
|
||||
executeParam.setIsLastTime(true);
|
||||
}
|
||||
//总数据量大于1000进行分页
|
||||
if(count>1000){
|
||||
String pageSql = dbBaseService.getQueryPageSqlBySql(originalSql,pageSize,pageNum);
|
||||
executeParam = SqlParseUtil.getSingleExecuteParam(executeParam,pageSql, paramMap);
|
||||
executeResult = columnSqlExecutor.execute(executeParam);
|
||||
executeResult.setSelectCount(count);
|
||||
resultList.add(executeResult);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
executeParam = SqlParseUtil.getSingleExecuteParam(executeParam,originalSql, paramMap);
|
||||
executeResult = columnSqlExecutor.execute(executeParam);
|
||||
} catch (Exception e) {
|
||||
logger.error("执行出错", e);
|
||||
executeResult = ExecuteResult.error(e.getMessage(), sqlItem);
|
||||
executeResult = ColumnExecuteResult.error(originalSql, e.getMessage(), e);
|
||||
}
|
||||
// 执行的sql处理
|
||||
String executeSqlLog = SqlLogUtil.parseLogSql(executeParam.getSql(), executeParam.getParameterMappings(), executeParam.getParamList());
|
||||
executeResult.setSql(executeSqlLog);
|
||||
resultList.add(JSON.toJSONString(executeResult, JSONUtil.serializeConfig, SerializerFeature.WriteMapNullValue));
|
||||
resultList.add(executeResult);
|
||||
}
|
||||
return DocDbResponseJson.ok(resultList);
|
||||
//预处理返回数据(解决大数据量下的性能问题)
|
||||
JSONArray array = JSONUtil.parseArray(resultList);
|
||||
return DocDbResponseJson.ok(array);
|
||||
}
|
||||
|
||||
@PostMapping(value = "/cancel")
|
||||
public DocDbResponseJson cancel(String executeId) {
|
||||
sqlExecutor.cancel(executeId);
|
||||
columnSqlExecutor.cancel(executeId);
|
||||
return DocDbResponseJson.ok();
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user