From 96ed8bc06962a33ec8c929b167fd911273257f38 Mon Sep 17 00:00:00 2001 From: tanghc Date: Tue, 15 Mar 2022 14:51:48 +0800 Subject: [PATCH 01/16] 1.14.2 --- build.bat | 2 +- build.sh | 2 +- changelog.md | 5 +++++ front/src/utils/global.js | 2 +- pom.xml | 2 +- release.sh | 2 +- 6 files changed, 10 insertions(+), 5 deletions(-) diff --git a/build.bat b/build.bat index d9a20548..be536a72 100755 --- a/build.bat +++ b/build.bat @@ -4,7 +4,7 @@ set dist_dir=dist set app_name=torna -set version="1.14.1" +set version="1.14.2" set build_folder=%app_name%-%version% diff --git a/build.sh b/build.sh index 5e3892c7..cabce3c9 100644 --- a/build.sh +++ b/build.sh @@ -6,7 +6,7 @@ dist_dir="dist" # 执行文件名称 app_name="torna" -version="1.14.1" +version="1.14.2" build_folder="${app_name}-${version}" diff --git a/changelog.md b/changelog.md index 1d5c3d95..28ca55fd 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,10 @@ # 更新日志 +## 1.14.2 + +- 【新增】文档浏览页新增tab标签。默认未启用,启用方式:个人中心-系统设置 +- 【优化】优化LDAP登录 + ## 1.14.1 - 【修复】推送报空指针异常问题 diff --git a/front/src/utils/global.js b/front/src/utils/global.js index cfadb9de..01f44e0d 100644 --- a/front/src/utils/global.js +++ b/front/src/utils/global.js @@ -18,7 +18,7 @@ import { Enums } from './enums' import { add_init } from './init' // eslint-disable-next-line -const VERSION="1.14.1" +const VERSION="1.14.2" const SPACE_ID_KEY = 'torna.spaceid' const PROJECT_ID_KEY = 'torna.projectid' const TORNA_FROM = 'torna.from' diff --git a/pom.xml b/pom.xml index 61003a4d..39ddbf27 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ - 1.14.1 + 1.14.2 1.8 diff --git a/release.sh b/release.sh index 14315b3f..3dd515a8 100644 --- a/release.sh +++ b/release.sh @@ -6,7 +6,7 @@ dist_dir="dist" # 执行文件名称 app_name="torna" -version="1.14.1" +version="1.14.2" build_folder="${app_name}-${version}" -- Gitee From 581373ea637b3a494b9203216bc8fdb0b39e8d80 Mon Sep 17 00:00:00 2001 From: tanghc Date: Tue, 15 Mar 2022 15:03:39 +0800 Subject: [PATCH 02/16] 1.14.2 --- readme.md | 2 +- readme_CN.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index b4463613..3273d8fa 100644 --- a/readme.md +++ b/readme.md @@ -12,7 +12,7 @@ Torna makes up for the shortcomings of traditional document generation tools suc | Module | Version | | :----: |:-------------------------------------------------------------------------------:| -| Torna | 1.14.1 | +| Torna | 1.14.2 | | sdk-java | ![maven](https://img.shields.io/maven-central/v/cn.torna/torna-sdk) | | swagger-plugin | ![maven](https://img.shields.io/maven-central/v/cn.torna/swagger-plugin) | | smart-doc | ![maven](https://img.shields.io/maven-central/v/com.github.shalousun/smart-doc) | diff --git a/readme_CN.md b/readme_CN.md index b4eb52c7..d826c5b2 100644 --- a/readme_CN.md +++ b/readme_CN.md @@ -12,7 +12,7 @@ Torna弥补了传统文档生成工具(如swagger)的不如之处,在保 | 模块 | 版本 | | :----: |:-------------------------------------------------------------------------------:| -| Torna | 1.14.1 | +| Torna | 1.14.2 | | sdk-java | ![maven](https://img.shields.io/maven-central/v/cn.torna/torna-sdk) | | swagger-plugin | ![maven](https://img.shields.io/maven-central/v/cn.torna/swagger-plugin) | | smart-doc | ![maven](https://img.shields.io/maven-central/v/com.github.shalousun/smart-doc) | -- Gitee From 4e114acbcaba09bf1fb0d42bbf95b587491887cc Mon Sep 17 00:00:00 2001 From: tanghc Date: Tue, 15 Mar 2022 16:46:57 +0800 Subject: [PATCH 03/16] 1.14.2 --- mysql-clean.sql | 2 +- mysql.sql | 2 +- mysql_compat.sql | 2 +- torna-docker-compose/mysql.sql | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mysql-clean.sql b/mysql-clean.sql index e0a63c78..df02fec9 100644 --- a/mysql-clean.sql +++ b/mysql-clean.sql @@ -116,7 +116,7 @@ CREATE TABLE `doc_info` ( `description` text NOT NULL COMMENT '文档描述', `author` varchar(64) NOT NULL DEFAULT '' COMMENT '维护人', `type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0:http,1:dubbo', - `url` varchar(128) NOT NULL DEFAULT '' COMMENT '访问URL', + `url` varchar(256) NOT NULL DEFAULT '' COMMENT '访问URL', `http_method` varchar(12) NOT NULL DEFAULT '' COMMENT 'http方法', `content_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'contentType', `deprecated` varchar(128) DEFAULT '$false$' COMMENT '废弃信息', diff --git a/mysql.sql b/mysql.sql index 94074ebe..9a5c6431 100644 --- a/mysql.sql +++ b/mysql.sql @@ -124,7 +124,7 @@ CREATE TABLE `doc_info` ( `description` text NOT NULL COMMENT '文档描述', `author` varchar(64) NOT NULL DEFAULT '' COMMENT '维护人', `type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0:http,1:dubbo', - `url` varchar(128) NOT NULL DEFAULT '' COMMENT '访问URL', + `url` varchar(256) NOT NULL DEFAULT '' COMMENT '访问URL', `http_method` varchar(12) NOT NULL DEFAULT '' COMMENT 'http方法', `content_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'contentType', `deprecated` varchar(128) DEFAULT '$false$' COMMENT '废弃信息', diff --git a/mysql_compat.sql b/mysql_compat.sql index cace50ab..5baf4489 100644 --- a/mysql_compat.sql +++ b/mysql_compat.sql @@ -124,7 +124,7 @@ CREATE TABLE `doc_info` ( `description` text NOT NULL COMMENT '文档描述', `author` varchar(64) NOT NULL DEFAULT '' COMMENT '维护人', `type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0:http,1:dubbo', - `url` varchar(128) NOT NULL DEFAULT '' COMMENT '访问URL', + `url` varchar(256) NOT NULL DEFAULT '' COMMENT '访问URL', `http_method` varchar(12) NOT NULL DEFAULT '' COMMENT 'http方法', `content_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'contentType', `deprecated` varchar(128) DEFAULT '$false$' COMMENT '废弃信息', diff --git a/torna-docker-compose/mysql.sql b/torna-docker-compose/mysql.sql index 94074ebe..9a5c6431 100644 --- a/torna-docker-compose/mysql.sql +++ b/torna-docker-compose/mysql.sql @@ -124,7 +124,7 @@ CREATE TABLE `doc_info` ( `description` text NOT NULL COMMENT '文档描述', `author` varchar(64) NOT NULL DEFAULT '' COMMENT '维护人', `type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0:http,1:dubbo', - `url` varchar(128) NOT NULL DEFAULT '' COMMENT '访问URL', + `url` varchar(256) NOT NULL DEFAULT '' COMMENT '访问URL', `http_method` varchar(12) NOT NULL DEFAULT '' COMMENT 'http方法', `content_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'contentType', `deprecated` varchar(128) DEFAULT '$false$' COMMENT '废弃信息', -- Gitee From 9b9e00f9076d82ecfaebe6e75ceadbbf635e22d1 Mon Sep 17 00:00:00 2001 From: tanghc Date: Fri, 18 Mar 2022 17:26:32 +0800 Subject: [PATCH 04/16] 1.14.3 --- build.bat | 2 +- build.sh | 2 +- changelog.md | 5 +++++ front/src/utils/global.js | 2 +- pom.xml | 2 +- readme.md | 2 +- readme_CN.md | 2 +- release.sh | 2 +- 8 files changed, 12 insertions(+), 7 deletions(-) diff --git a/build.bat b/build.bat index be536a72..713b07af 100755 --- a/build.bat +++ b/build.bat @@ -4,7 +4,7 @@ set dist_dir=dist set app_name=torna -set version="1.14.2" +set version="1.14.3" set build_folder=%app_name%-%version% diff --git a/build.sh b/build.sh index cabce3c9..54025966 100644 --- a/build.sh +++ b/build.sh @@ -6,7 +6,7 @@ dist_dir="dist" # 执行文件名称 app_name="torna" -version="1.14.2" +version="1.14.3" build_folder="${app_name}-${version}" diff --git a/changelog.md b/changelog.md index 28ca55fd..7290a0fe 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,10 @@ # 更新日志 +## 1.14.3 + +- 【优化】优化消息推送 [#I4XGER](https://gitee.com/durcframework/torna/issues/I4XGER) +- 【升级】升级fastmybatis到2.1.0 + ## 1.14.2 - 【新增】文档浏览页新增tab标签。默认未启用,启用方式:个人中心-系统设置 diff --git a/front/src/utils/global.js b/front/src/utils/global.js index 01f44e0d..4469f84a 100644 --- a/front/src/utils/global.js +++ b/front/src/utils/global.js @@ -18,7 +18,7 @@ import { Enums } from './enums' import { add_init } from './init' // eslint-disable-next-line -const VERSION="1.14.2" +const VERSION="1.14.3" const SPACE_ID_KEY = 'torna.spaceid' const PROJECT_ID_KEY = 'torna.projectid' const TORNA_FROM = 'torna.from' diff --git a/pom.xml b/pom.xml index 39ddbf27..1505da62 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ - 1.14.2 + 1.14.3 1.8 diff --git a/readme.md b/readme.md index 3273d8fa..24cf6f5e 100644 --- a/readme.md +++ b/readme.md @@ -12,7 +12,7 @@ Torna makes up for the shortcomings of traditional document generation tools suc | Module | Version | | :----: |:-------------------------------------------------------------------------------:| -| Torna | 1.14.2 | +| Torna | 1.14.3 | | sdk-java | ![maven](https://img.shields.io/maven-central/v/cn.torna/torna-sdk) | | swagger-plugin | ![maven](https://img.shields.io/maven-central/v/cn.torna/swagger-plugin) | | smart-doc | ![maven](https://img.shields.io/maven-central/v/com.github.shalousun/smart-doc) | diff --git a/readme_CN.md b/readme_CN.md index d826c5b2..804d8506 100644 --- a/readme_CN.md +++ b/readme_CN.md @@ -12,7 +12,7 @@ Torna弥补了传统文档生成工具(如swagger)的不如之处,在保 | 模块 | 版本 | | :----: |:-------------------------------------------------------------------------------:| -| Torna | 1.14.2 | +| Torna | 1.14.3 | | sdk-java | ![maven](https://img.shields.io/maven-central/v/cn.torna/torna-sdk) | | swagger-plugin | ![maven](https://img.shields.io/maven-central/v/cn.torna/swagger-plugin) | | smart-doc | ![maven](https://img.shields.io/maven-central/v/com.github.shalousun/smart-doc) | diff --git a/release.sh b/release.sh index 3dd515a8..9b676124 100644 --- a/release.sh +++ b/release.sh @@ -6,7 +6,7 @@ dist_dir="dist" # 执行文件名称 app_name="torna" -version="1.14.2" +version="1.14.3" build_folder="${app_name}-${version}" -- Gitee From 801783c7b332959e3b4a990595d33d7f386c8f3d Mon Sep 17 00:00:00 2001 From: tanghc Date: Wed, 23 Mar 2022 15:29:22 +0800 Subject: [PATCH 05/16] 1.14.4 --- build.bat | 2 +- build.sh | 2 +- changelog.md | 5 +++++ front/src/utils/global.js | 2 +- pom.xml | 2 +- readme.md | 2 +- readme_CN.md | 2 +- release.sh | 2 +- 8 files changed, 12 insertions(+), 7 deletions(-) diff --git a/build.bat b/build.bat index 713b07af..8cac5c3a 100755 --- a/build.bat +++ b/build.bat @@ -4,7 +4,7 @@ set dist_dir=dist set app_name=torna -set version="1.14.3" +set version="1.14.4" set build_folder=%app_name%-%version% diff --git a/build.sh b/build.sh index 54025966..bc1a9507 100644 --- a/build.sh +++ b/build.sh @@ -6,7 +6,7 @@ dist_dir="dist" # 执行文件名称 app_name="torna" -version="1.14.3" +version="1.14.4" build_folder="${app_name}-${version}" diff --git a/changelog.md b/changelog.md index 7290a0fe..a224cadd 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,10 @@ # 更新日志 +## 1.14.4 + +- 【修复】修复分享整个模块只显示部分文档问题 +- 【修复】修复调试返回非200状态不显示错误信息问题 [#I4Y25X](https://gitee.com/durcframework/torna/issues/I4Y25X) + ## 1.14.3 - 【优化】优化消息推送 [#I4XGER](https://gitee.com/durcframework/torna/issues/I4XGER) diff --git a/front/src/utils/global.js b/front/src/utils/global.js index 4469f84a..ed9f017d 100644 --- a/front/src/utils/global.js +++ b/front/src/utils/global.js @@ -18,7 +18,7 @@ import { Enums } from './enums' import { add_init } from './init' // eslint-disable-next-line -const VERSION="1.14.3" +const VERSION="1.14.4" const SPACE_ID_KEY = 'torna.spaceid' const PROJECT_ID_KEY = 'torna.projectid' const TORNA_FROM = 'torna.from' diff --git a/pom.xml b/pom.xml index 1505da62..13be3471 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ - 1.14.3 + 1.14.4 1.8 diff --git a/readme.md b/readme.md index 24cf6f5e..decc83b6 100644 --- a/readme.md +++ b/readme.md @@ -12,7 +12,7 @@ Torna makes up for the shortcomings of traditional document generation tools suc | Module | Version | | :----: |:-------------------------------------------------------------------------------:| -| Torna | 1.14.3 | +| Torna | 1.14.4 | | sdk-java | ![maven](https://img.shields.io/maven-central/v/cn.torna/torna-sdk) | | swagger-plugin | ![maven](https://img.shields.io/maven-central/v/cn.torna/swagger-plugin) | | smart-doc | ![maven](https://img.shields.io/maven-central/v/com.github.shalousun/smart-doc) | diff --git a/readme_CN.md b/readme_CN.md index 804d8506..610ef7f9 100644 --- a/readme_CN.md +++ b/readme_CN.md @@ -12,7 +12,7 @@ Torna弥补了传统文档生成工具(如swagger)的不如之处,在保 | 模块 | 版本 | | :----: |:-------------------------------------------------------------------------------:| -| Torna | 1.14.3 | +| Torna | 1.14.4 | | sdk-java | ![maven](https://img.shields.io/maven-central/v/cn.torna/torna-sdk) | | swagger-plugin | ![maven](https://img.shields.io/maven-central/v/cn.torna/swagger-plugin) | | smart-doc | ![maven](https://img.shields.io/maven-central/v/com.github.shalousun/smart-doc) | diff --git a/release.sh b/release.sh index 9b676124..3a9b66e1 100644 --- a/release.sh +++ b/release.sh @@ -6,7 +6,7 @@ dist_dir="dist" # 执行文件名称 app_name="torna" -version="1.14.3" +version="1.14.4" build_folder="${app_name}-${version}" -- Gitee From 76afe320ed558e5ef73c65bd242e808cb8ad70a7 Mon Sep 17 00:00:00 2001 From: tanghc Date: Wed, 23 Mar 2022 20:07:31 +0800 Subject: [PATCH 06/16] 1.14.4 --- readme_CN.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/readme_CN.md b/readme_CN.md index 610ef7f9..dab3daf5 100644 --- a/readme_CN.md +++ b/readme_CN.md @@ -54,6 +54,8 @@ Torna弥补了传统文档生成工具(如swagger)的不如之处,在保 `docker pull tanghc2020/torna:latest` +或者使用阿里云docker仓库:`docker pull registry.cn-hangzhou.aliyuncs.com/tanghc/torna:latest` + 下载完成后,执行docker命令: ``` @@ -67,6 +69,19 @@ docker run --name torna --restart=always \ -d tanghc2020/torna:latest ``` +阿里云镜像执行: + +``` +docker run --name torna --restart=always \ + -p 7700:7700 \ + -e JAVA_OPTS="-Xms256m -Xmx256m" \ + -e MYSQL_HOST="172.16.60.102:3306" \ + -e MYSQL_SCHEMA="torna" \ + -e MYSQL_USERNAME="root" \ + -e MYSQL_PASSWORD="root" \ + -d registry.cn-hangzhou.aliyuncs.com/tanghc/torna:latest +``` + 需改更改的部分: - MYSQL_HOST:MySQL服务器地址 -- Gitee From 29db5511f47b199ddd98f09d46a0fb3e988ec440 Mon Sep 17 00:00:00 2001 From: tanghc Date: Thu, 24 Mar 2022 09:29:48 +0800 Subject: [PATCH 07/16] 1.14.4 --- readme_CN.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/readme_CN.md b/readme_CN.md index dab3daf5..152b0518 100644 --- a/readme_CN.md +++ b/readme_CN.md @@ -54,7 +54,9 @@ Torna弥补了传统文档生成工具(如swagger)的不如之处,在保 `docker pull tanghc2020/torna:latest` -或者使用阿里云docker仓库:`docker pull registry.cn-hangzhou.aliyuncs.com/tanghc/torna:latest` +或者使用阿里云docker仓库: + +`docker pull registry.cn-hangzhou.aliyuncs.com/tanghc/torna:latest` 下载完成后,执行docker命令: -- Gitee From f7890f7ebbacc43e4fa072d3e2eb236941973e2d Mon Sep 17 00:00:00 2001 From: tanghc Date: Thu, 24 Mar 2022 09:38:13 +0800 Subject: [PATCH 08/16] 1.14.4 --- readme_CN.md | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/readme_CN.md b/readme_CN.md index 152b0518..610ef7f9 100644 --- a/readme_CN.md +++ b/readme_CN.md @@ -54,10 +54,6 @@ Torna弥补了传统文档生成工具(如swagger)的不如之处,在保 `docker pull tanghc2020/torna:latest` -或者使用阿里云docker仓库: - -`docker pull registry.cn-hangzhou.aliyuncs.com/tanghc/torna:latest` - 下载完成后,执行docker命令: ``` @@ -71,19 +67,6 @@ docker run --name torna --restart=always \ -d tanghc2020/torna:latest ``` -阿里云镜像执行: - -``` -docker run --name torna --restart=always \ - -p 7700:7700 \ - -e JAVA_OPTS="-Xms256m -Xmx256m" \ - -e MYSQL_HOST="172.16.60.102:3306" \ - -e MYSQL_SCHEMA="torna" \ - -e MYSQL_USERNAME="root" \ - -e MYSQL_PASSWORD="root" \ - -d registry.cn-hangzhou.aliyuncs.com/tanghc/torna:latest -``` - 需改更改的部分: - MYSQL_HOST:MySQL服务器地址 -- Gitee From e39b868155eada8edc3eb693442edd134c0292c9 Mon Sep 17 00:00:00 2001 From: liu xm Date: Mon, 28 Mar 2022 03:25:55 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=87=E6=A1=A3(?= =?UTF-8?q?=E9=9D=9E=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3)=E5=88=86?= =?UTF-8?q?=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mysql-clean.sql | 17 ++- mysql.sql | 19 ++++ mysql_compat.sql | 19 ++++ .../main/resources/upgrade/1.14.5_ddl_1.txt | 10 ++ .../torna/dao/entity/ProjectArchiveGroup.java | 50 +++++++++ .../dao/mapper/ProjectArchiveGroupMapper.java | 11 ++ .../service/ProjectArchiveGroupService.java | 28 +++++ .../java/cn/torna/service/UpgradeService.java | 9 +- .../ProjectArchiveGroupController.java | 105 ++++++++++++++++++ .../archive/param/ArchiveGroupAddParam.java | 39 +++++++ .../param/ArchiveGroupDeleteParam.java | 19 ++++ .../param/ArchiveGroupUpdateParam.java | 29 +++++ .../controller/archive/vo/ArchiveGroupVO.java | 33 ++++++ 13 files changed, 386 insertions(+), 2 deletions(-) create mode 100644 server/boot/src/main/resources/upgrade/1.14.5_ddl_1.txt create mode 100644 server/server-dao/src/main/java/cn/torna/dao/entity/ProjectArchiveGroup.java create mode 100644 server/server-dao/src/main/java/cn/torna/dao/mapper/ProjectArchiveGroupMapper.java create mode 100644 server/server-service/src/main/java/cn/torna/service/ProjectArchiveGroupService.java create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/ProjectArchiveGroupController.java create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupAddParam.java create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupDeleteParam.java create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupUpdateParam.java create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveGroupVO.java diff --git a/mysql-clean.sql b/mysql-clean.sql index df02fec9..6ecb6426 100644 --- a/mysql-clean.sql +++ b/mysql-clean.sql @@ -385,6 +385,21 @@ CREATE TABLE `project` ( KEY `idx_spaceid` (`space_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='项目表'; +/*Table structure for table `project_archive_group` */ + +DROP TABLE IF EXISTS `project_archive_group`; + +CREATE TABLE `project_archive_group` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `group_name` varchar(255) NOT NULL COMMENT '分组名称', + `parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父分组ID', + `project_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project.id', + `is_deleted` tinyint NOT NULL DEFAULT '0', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='项目文档(非接口文档)分组表'; + /*Table structure for table `project_user` */ DROP TABLE IF EXISTS `project_user`; @@ -589,7 +604,7 @@ CREATE TABLE `user_subscribe` ( -- INSERT DATA INSERT INTO `system_config` (`config_key`, `config_value`, `remark`, `is_deleted`) -VALUES ('torna.version', '1132', '当前内部版本号。不要删除这条记录!!', 0); +VALUES ('torna.version', '1145', '当前内部版本号。不要删除这条记录!!', 0); INSERT INTO `user_info` ( `username`, `password`, `nickname`, `is_super_admin`) VALUES ('admin','f9560048604e55186198a4a02ba1b9a9','超级管理员',1); diff --git a/mysql.sql b/mysql.sql index 9a5c6431..9cce4679 100644 --- a/mysql.sql +++ b/mysql.sql @@ -429,6 +429,25 @@ CREATE TABLE `project` ( insert into `project`(`id`,`name`,`description`,`space_id`,`is_private`,`creator_id`,`creator_name`,`modifier_id`,`modifier_name`,`order_index`,`is_deleted`,`gmt_create`,`gmt_modified`) values (4,'商城项目','商城项目示例',19,0,15,'超级管理员',15,'超级管理员',0,0,'2022-02-27 15:08:32','2022-02-27 15:08:32'); +/*Table structure for table `project_archive_group` */ + +DROP TABLE IF EXISTS `project_archive_group`; + +CREATE TABLE `project_archive_group` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `group_name` varchar(255) NOT NULL COMMENT '分组名称', + `parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父分组ID', + `project_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project.id', + `is_deleted` tinyint NOT NULL DEFAULT '0', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='项目文档(非接口文档)分组表'; + +/*Data for the table `project_archive_group` */ + +insert into `project_archive_group`(`id`,`group_name`,`parent_id`,`project_id`,`is_deleted`,`gmt_create`,`gmt_modified`) values (1,'默认分组',0,4,0,'2022-03-28 01:30:27','2022-03-28 01:30:27'); + /*Table structure for table `project_user` */ DROP TABLE IF EXISTS `project_user`; diff --git a/mysql_compat.sql b/mysql_compat.sql index 5baf4489..9f2907fb 100644 --- a/mysql_compat.sql +++ b/mysql_compat.sql @@ -429,6 +429,25 @@ CREATE TABLE `project` ( insert into `project`(`id`,`name`,`description`,`space_id`,`is_private`,`creator_id`,`creator_name`,`modifier_id`,`modifier_name`,`order_index`,`is_deleted`,`gmt_create`,`gmt_modified`) values (4,'商城项目','商城项目示例',19,0,15,'超级管理员',15,'超级管理员',0,0,'2022-02-27 15:08:32','2022-02-27 15:08:32'); +/*Table structure for table `project_archive_group` */ + +DROP TABLE IF EXISTS `project_archive_group`; + +CREATE TABLE `project_archive_group` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `group_name` varchar(255) NOT NULL COMMENT '分组名称', + `parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父分组ID', + `project_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project.id', + `is_deleted` tinyint NOT NULL DEFAULT '0', + `gmt_create` datetime , + `gmt_modified` datetime , + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='项目文档(非接口文档)分组表'; + +/*Data for the table `project_archive_group` */ + +insert into `project_archive_group`(`id`,`group_name`,`parent_id`,`project_id`,`is_deleted`,`gmt_create`,`gmt_modified`) values (1,'默认分组',0,4,0,'2022-03-28 01:30:27','2022-03-28 01:30:27'); + /*Table structure for table `project_user` */ DROP TABLE IF EXISTS `project_user`; diff --git a/server/boot/src/main/resources/upgrade/1.14.5_ddl_1.txt b/server/boot/src/main/resources/upgrade/1.14.5_ddl_1.txt new file mode 100644 index 00000000..b7a59c9d --- /dev/null +++ b/server/boot/src/main/resources/upgrade/1.14.5_ddl_1.txt @@ -0,0 +1,10 @@ +CREATE TABLE `project_archive_group` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `group_name` varchar(255) NOT NULL COMMENT '分组名称', + `parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父分组ID', + `project_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project.id', + `is_deleted` tinyint NOT NULL DEFAULT '0', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目文档(非接口文档)分组表'; diff --git a/server/server-dao/src/main/java/cn/torna/dao/entity/ProjectArchiveGroup.java b/server/server-dao/src/main/java/cn/torna/dao/entity/ProjectArchiveGroup.java new file mode 100644 index 00000000..48a0ab7d --- /dev/null +++ b/server/server-dao/src/main/java/cn/torna/dao/entity/ProjectArchiveGroup.java @@ -0,0 +1,50 @@ +package cn.torna.dao.entity; + +import com.gitee.fastmybatis.annotation.Column; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.PkStrategy; +import com.gitee.fastmybatis.annotation.Table; +import lombok.Data; + +import java.util.Date; + +/** + * 表名:project_archive_group + * 备注:项目文档(非接口文档)分组表 + * + * @author liu xm + * @date 2022-03-21 13:12 + */ +@Table(name = "project_archive_group", pk = @Pk(name = "id", strategy = PkStrategy.INCREMENT)) +@Data +public class ProjectArchiveGroup { + /** + * id + */ + private Long id; + /** + * 分组名称 + */ + private String groupName; + /** + * 父分组ID + */ + private Long parentId; + /** + * project.id + */ + private Long projectId; + /** + * 数据库字段:is_deleted + */ + @Column(logicDelete = true, name = "is_deleted") + private Byte deleted; + /** + * 数据库字段:gmt_create + */ + private Date gmtCreate; + /** + * 数据库字段:gmt_modified + */ + private Date gmtModified; +} diff --git a/server/server-dao/src/main/java/cn/torna/dao/mapper/ProjectArchiveGroupMapper.java b/server/server-dao/src/main/java/cn/torna/dao/mapper/ProjectArchiveGroupMapper.java new file mode 100644 index 00000000..325b44d0 --- /dev/null +++ b/server/server-dao/src/main/java/cn/torna/dao/mapper/ProjectArchiveGroupMapper.java @@ -0,0 +1,11 @@ +package cn.torna.dao.mapper; + +import cn.torna.dao.entity.ProjectArchiveGroup; +import com.gitee.fastmybatis.core.mapper.CrudMapper; + +/** + * @author liu xm + * @date 2022-03-21 13:28 + */ +public interface ProjectArchiveGroupMapper extends CrudMapper { +} diff --git a/server/server-service/src/main/java/cn/torna/service/ProjectArchiveGroupService.java b/server/server-service/src/main/java/cn/torna/service/ProjectArchiveGroupService.java new file mode 100644 index 00000000..82a5a2a0 --- /dev/null +++ b/server/server-service/src/main/java/cn/torna/service/ProjectArchiveGroupService.java @@ -0,0 +1,28 @@ +package cn.torna.service; + +import cn.torna.common.support.BaseService; +import cn.torna.dao.entity.ProjectArchiveGroup; +import cn.torna.dao.mapper.ProjectArchiveGroupMapper; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 项目文档(非接口文档)分组 Service + * + * @author liu xm + * @date 2022-03-21 19:11 + */ +@Service +public class ProjectArchiveGroupService extends BaseService { + + /** + * 根据项目ID获取项目文档(非接口文档)分组列表 + * + * @param projectId 项目ID + * @return 项目文档(非接口文档)分组列表 + */ + public List listArchiveGroups(Long projectId) { + return this.list("project_id", projectId); + } +} diff --git a/server/server-service/src/main/java/cn/torna/service/UpgradeService.java b/server/server-service/src/main/java/cn/torna/service/UpgradeService.java index b1d533ae..a189e5ce 100644 --- a/server/server-service/src/main/java/cn/torna/service/UpgradeService.java +++ b/server/server-service/src/main/java/cn/torna/service/UpgradeService.java @@ -36,7 +36,7 @@ import java.util.Optional; @Slf4j public class UpgradeService { - private static final int VERSION = 1132; + private static final int VERSION = 1145; private static final String TORNA_VERSION_KEY = "torna.version"; @@ -94,6 +94,13 @@ public class UpgradeService { v1_12_0(oldVersion); v1_13_0(oldVersion); v1_13_2(oldVersion); + v1_14_5(oldVersion); + } + + private void v1_14_5(int oldVersion) { + if (oldVersion < 1145) { + this.createTable("project_archive_group", "upgrade/1.14.5_ddl_1.txt"); + } } private void v1_13_2(int oldVersion) { diff --git a/server/server-web/src/main/java/cn/torna/web/controller/archive/ProjectArchiveGroupController.java b/server/server-web/src/main/java/cn/torna/web/controller/archive/ProjectArchiveGroupController.java new file mode 100644 index 00000000..1d4e953d --- /dev/null +++ b/server/server-web/src/main/java/cn/torna/web/controller/archive/ProjectArchiveGroupController.java @@ -0,0 +1,105 @@ +package cn.torna.web.controller.archive; + +import cn.torna.common.annotation.HashId; +import cn.torna.common.bean.Result; +import cn.torna.common.exception.BizException; +import cn.torna.common.util.CopyUtil; +import cn.torna.dao.entity.ProjectArchiveGroup; +import cn.torna.service.ProjectArchiveGroupService; +import cn.torna.web.controller.archive.param.ArchiveGroupAddParam; +import cn.torna.web.controller.archive.param.ArchiveGroupDeleteParam; +import cn.torna.web.controller.archive.param.ArchiveGroupUpdateParam; +import cn.torna.web.controller.archive.vo.ArchiveGroupVO; +import com.gitee.fastmybatis.core.query.Query; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 项目文档(非接口文档)分组 Controller + * + * @author liu xm + * @date 2022-03-20 21:01 + */ +@RestController +@RequestMapping("/project/archiveGroup") +public class ProjectArchiveGroupController { + + @Resource + private ProjectArchiveGroupService projectArchiveGroupService; + + /** + * 根据项目ID获取项目文档(非接口文档)分组列表 + * + * @param projectId 项目ID + * @return 项目文档(非接口文档)分组列表 + */ + @GetMapping("/list") + public Result> listArchiveGroups(@HashId Long projectId) { + final List listGroups = projectArchiveGroupService.listArchiveGroups(projectId); + final List groupVOList = CopyUtil.copyList(listGroups, ArchiveGroupVO::new); + return Result.ok(groupVOList); + } + + /** + * 创建项目文档(非接口文档)分组 + * + * @param param . + * @return result + */ + @PostMapping("/create") + public Result createArchiveGroup(@Valid @RequestBody ArchiveGroupAddParam param) { + final ProjectArchiveGroup group = projectArchiveGroupService.get( + new Query().eq("parent_id", param.getParentId()) + .eq("group_name", param.getGroupName())); + if (Objects.nonNull(group)) { + throw new BizException("项目文档分组名称已存在"); + } + final ProjectArchiveGroup archiveGroup = new ProjectArchiveGroup(); + archiveGroup.setGroupName(param.getGroupName()); + archiveGroup.setProjectId(param.getProjectId()); + archiveGroup.setParentId(param.getParentId()); + projectArchiveGroupService.save(archiveGroup); + final ArchiveGroupVO archiveGroupVO = CopyUtil.copyBean(archiveGroup, ArchiveGroupVO::new); + return Result.ok(archiveGroupVO); + } + + /** + * 更新项目文档(非接口文档)分组 + * + * @param param . + * @return result + */ + @PostMapping("/update") + public Result updateArchiveGroup(@Valid @RequestBody ArchiveGroupUpdateParam param) { + final ProjectArchiveGroup archiveGroup = projectArchiveGroupService.getById(param.getId()); + if (Objects.isNull(archiveGroup)) { + throw new BizException("项目文档分组不存在"); + } + archiveGroup.setGroupName(param.getGroupName()); + archiveGroup.setParentId(param.getParentId()); + projectArchiveGroupService.update(archiveGroup); + return Result.ok(true); + } + + + /** + * 删除项目文档(非接口文档)分组 + * + * @param param . + * @return result + */ + @PostMapping("/delete") + public Result deleteArchiveGroup(@Valid @RequestBody ArchiveGroupDeleteParam param) { + final ProjectArchiveGroup archiveGroup = projectArchiveGroupService.getById(param.getId()); + if (Objects.isNull(archiveGroup)) { + throw new BizException("项目文档分组不存在"); + } + projectArchiveGroupService.deleteById(param.getId()); + return Result.ok(true); + } + +} diff --git a/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupAddParam.java b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupAddParam.java new file mode 100644 index 00000000..16e47217 --- /dev/null +++ b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupAddParam.java @@ -0,0 +1,39 @@ +package cn.torna.web.controller.archive.param; + +import cn.torna.common.support.IdCodec; +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.Optional; + +/** + * @author liu xm + * @date 2022-03-21 21:14 + */ +@Data +public class ArchiveGroupAddParam { + /** + * 分组名称 + */ + @NotBlank(message = "分组名称不能为空") + private String groupName; + + /** + * 父分组ID + */ + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long parentId; + + /** + * project.id + */ + @NotNull(message = "project.id不能为空") + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long projectId; + + public Long getParentId() { + return Optional.ofNullable(parentId).orElse(0L); + } +} diff --git a/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupDeleteParam.java b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupDeleteParam.java new file mode 100644 index 00000000..d9725475 --- /dev/null +++ b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupDeleteParam.java @@ -0,0 +1,19 @@ +package cn.torna.web.controller.archive.param; + +import cn.torna.common.support.IdCodec; +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author liu xm + * @date 2022-03-23 13:26 + */ +@Data +public class ArchiveGroupDeleteParam { + + @NotNull(message = "项目文档分组id不能为空") + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long id; +} diff --git a/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupUpdateParam.java b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupUpdateParam.java new file mode 100644 index 00000000..b693cc59 --- /dev/null +++ b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveGroupUpdateParam.java @@ -0,0 +1,29 @@ +package cn.torna.web.controller.archive.param; + +import cn.torna.common.support.IdCodec; +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author liu xm + * @date 2022-03-23 13:14 + */ +@Data +public class ArchiveGroupUpdateParam { + + @NotNull(message = "项目文档分组id不能为空") + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long id; + /** + * 分组名称 + */ + private String groupName; + + /** + * 父分组ID + */ + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long parentId; +} diff --git a/server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveGroupVO.java b/server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveGroupVO.java new file mode 100644 index 00000000..e710774b --- /dev/null +++ b/server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveGroupVO.java @@ -0,0 +1,33 @@ +package cn.torna.web.controller.archive.vo; + +import cn.torna.common.support.IdCodec; +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +/** + * 项目文档分组列表 + * + * @author liu xm + * @date 2022-03-21 12:12 + */ +@Data +public class ArchiveGroupVO { + + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long id; + /** + * 分组名称 + */ + private String groupName; + /** + * 父分组ID + */ + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long parentId; + /** + * project.id + */ + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long projectId; + +} -- Gitee From daa9b5387510cfead1705024e38ad9569c362d9e Mon Sep 17 00:00:00 2001 From: liu xm Date: Mon, 28 Mar 2022 11:20:45 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=88=E9=9D=9E=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3=EF=BC=89?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=88=86=E7=BB=84=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/src/components/ProjectMenu/index.vue | 4 + front/src/layout/components/AppMain.vue | 4 + front/src/router/index.js | 5 + front/src/utils/i18n/languages/en-us.js | 8 + front/src/utils/i18n/languages/zh-cn.js | 8 + .../ProjectArchive/components/ViewMain.vue | 42 +++ .../views/project/ProjectArchive/index.vue | 314 ++++++++++++++++++ front/src/views/project/index_archive.vue | 24 ++ 8 files changed, 409 insertions(+) create mode 100644 front/src/views/project/ProjectArchive/components/ViewMain.vue create mode 100644 front/src/views/project/ProjectArchive/index.vue create mode 100644 front/src/views/project/index_archive.vue diff --git a/front/src/components/ProjectMenu/index.vue b/front/src/components/ProjectMenu/index.vue index 42be7ecd..8f62d4a8 100644 --- a/front/src/components/ProjectMenu/index.vue +++ b/front/src/components/ProjectMenu/index.vue @@ -10,6 +10,10 @@ {{ $ts('apiDoc') }} + + + {{ $ts('projectArchive') }} + {{ $ts('projectInfo') }} diff --git a/front/src/layout/components/AppMain.vue b/front/src/layout/components/AppMain.vue index e01ec98d..69cf8ce5 100644 --- a/front/src/layout/components/AppMain.vue +++ b/front/src/layout/components/AppMain.vue @@ -11,6 +11,10 @@ export default { name: 'AppMain', computed: { key() { + // 项目文档页 分组不刷新 + if (this.$route.fullPath.indexOf('/project/archive') !== -1) { + return '/project/archive' + } return this.$route.fullPath } } diff --git a/front/src/router/index.js b/front/src/router/index.js index 69c2f1d6..9cc05200 100644 --- a/front/src/router/index.js +++ b/front/src/router/index.js @@ -138,6 +138,11 @@ export const constantRoutes = [ name: 'ProjectDoc', component: () => import('@/views/project/index_doc') }, + { + path: 'archive/:projectId(\\w+)', + name: 'ProjectArchive', + component: () => import('@/views/project/index_archive') + }, { path: 'info/:projectId(\\w+)', name: 'ProjectInfo', diff --git a/front/src/utils/i18n/languages/en-us.js b/front/src/utils/i18n/languages/en-us.js index 20a965b1..33133088 100644 --- a/front/src/utils/i18n/languages/en-us.js +++ b/front/src/utils/i18n/languages/en-us.js @@ -34,6 +34,14 @@ const MAPPING = { 'spaceMember': 'Members', 'openUser': 'Open User', 'apiDoc': 'API Doc', + 'projectArchive': 'Project Doc', + 'projectArchiveGroup': 'Project Doc Group', + 'createArchiveGroup': 'Add Group', + 'allProjectArchive': 'All Project Doc', + 'addSubArchiveGroup': 'Add Sub Group', + 'editArchiveGroup': 'Edit', + 'deleteArchiveGroup': 'Delete', + 'projectArchiveGroupName': 'Group Name', 'projectInfo': 'Project Info', 'projectMember': 'Project Member', 'createProject': 'New Project', diff --git a/front/src/utils/i18n/languages/zh-cn.js b/front/src/utils/i18n/languages/zh-cn.js index 449cacae..9cbef441 100644 --- a/front/src/utils/i18n/languages/zh-cn.js +++ b/front/src/utils/i18n/languages/zh-cn.js @@ -34,6 +34,14 @@ const MAPPING = { 'spaceMember': '空间成员', 'openUser': '开放用户', 'apiDoc': '接口文档', + 'projectArchive': '项目文档', + 'projectArchiveGroup': '项目文档分组', + 'createArchiveGroup': '添加项目文档分组', + 'allProjectArchive': '所有项目文档', + 'addSubArchiveGroup': '添加子分组', + 'editArchiveGroup': '编辑', + 'deleteArchiveGroup': '删除', + 'projectArchiveGroupName': '分组名称', 'projectInfo': '项目信息', 'projectMember': '项目成员', 'createProject': '创建项目', diff --git a/front/src/views/project/ProjectArchive/components/ViewMain.vue b/front/src/views/project/ProjectArchive/components/ViewMain.vue new file mode 100644 index 00000000..2ddae932 --- /dev/null +++ b/front/src/views/project/ProjectArchive/components/ViewMain.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/front/src/views/project/ProjectArchive/index.vue b/front/src/views/project/ProjectArchive/index.vue new file mode 100644 index 00000000..5997578a --- /dev/null +++ b/front/src/views/project/ProjectArchive/index.vue @@ -0,0 +1,314 @@ + + + + + diff --git a/front/src/views/project/index_archive.vue b/front/src/views/project/index_archive.vue new file mode 100644 index 00000000..efa0b5ba --- /dev/null +++ b/front/src/views/project/index_archive.vue @@ -0,0 +1,24 @@ + + + + + -- Gitee From 1d028c0e1642fe7339f1dfe5b547e2ba6e462e8f Mon Sep 17 00:00:00 2001 From: liu xm Date: Mon, 28 Mar 2022 17:14:09 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=87=E6=A1=A3(?= =?UTF-8?q?=E9=9D=9E=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mysql-clean.sql | 19 +++ mysql.sql | 24 ++++ mysql_compat.sql | 24 ++++ .../main/resources/upgrade/1.14.5_ddl_2.txt | 14 ++ .../cn/torna/dao/entity/ProjectArchive.java | 67 +++++++++ .../cn/torna/dao/enums/ContentTypeEnum.java | 27 ++++ .../dao/mapper/ProjectArchiveMapper.java | 11 ++ .../torna/service/ProjectArchiveService.java | 28 ++++ .../java/cn/torna/service/UpgradeService.java | 1 + .../ExceptionHandlerController.java | 7 + .../archive/ProjectArchiveController.java | 127 ++++++++++++++++++ .../archive/param/ArchiveAddParam.java | 43 ++++++ .../archive/param/ArchiveDeleteParam.java | 19 +++ .../archive/param/ArchiveUpdateParam.java | 47 +++++++ .../archive/vo/ArchiveDetailsVO.java | 21 +++ .../web/controller/archive/vo/ArchiveVO.java | 65 +++++++++ 16 files changed, 544 insertions(+) create mode 100644 server/boot/src/main/resources/upgrade/1.14.5_ddl_2.txt create mode 100644 server/server-dao/src/main/java/cn/torna/dao/entity/ProjectArchive.java create mode 100644 server/server-dao/src/main/java/cn/torna/dao/enums/ContentTypeEnum.java create mode 100644 server/server-dao/src/main/java/cn/torna/dao/mapper/ProjectArchiveMapper.java create mode 100644 server/server-service/src/main/java/cn/torna/service/ProjectArchiveService.java create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/ProjectArchiveController.java create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveAddParam.java create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveDeleteParam.java create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveUpdateParam.java create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveDetailsVO.java create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveVO.java diff --git a/mysql-clean.sql b/mysql-clean.sql index 6ecb6426..09a66adf 100644 --- a/mysql-clean.sql +++ b/mysql-clean.sql @@ -385,6 +385,25 @@ CREATE TABLE `project` ( KEY `idx_spaceid` (`space_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='项目表'; +/*Table structure for table `project_archive` */ + +DROP TABLE IF EXISTS `project_archive`; + +CREATE TABLE `project_archive` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `project_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project.id', + `group_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project_archive_group.id', + `title` varchar(200) NOT NULL COMMENT '标题', + `content` longtext NOT NULL COMMENT '内容', + `content_type` tinyint NOT NULL COMMENT '内容类型', + `creator_id` bigint unsigned NOT NULL DEFAULT '0', + `modifier_id` bigint unsigned NOT NULL DEFAULT '0', + `is_deleted` tinyint NOT NULL DEFAULT '0', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='项目文档(非接口文档)表'; + /*Table structure for table `project_archive_group` */ DROP TABLE IF EXISTS `project_archive_group`; diff --git a/mysql.sql b/mysql.sql index 9cce4679..9ca02aba 100644 --- a/mysql.sql +++ b/mysql.sql @@ -429,6 +429,30 @@ CREATE TABLE `project` ( insert into `project`(`id`,`name`,`description`,`space_id`,`is_private`,`creator_id`,`creator_name`,`modifier_id`,`modifier_name`,`order_index`,`is_deleted`,`gmt_create`,`gmt_modified`) values (4,'商城项目','商城项目示例',19,0,15,'超级管理员',15,'超级管理员',0,0,'2022-02-27 15:08:32','2022-02-27 15:08:32'); +/*Table structure for table `project_archive` */ + +DROP TABLE IF EXISTS `project_archive`; + +CREATE TABLE `project_archive` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `project_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project.id', + `group_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project_archive_group.id', + `title` varchar(200) NOT NULL COMMENT '标题', + `content` longtext NOT NULL COMMENT '内容', + `content_type` tinyint NOT NULL COMMENT '内容类型', + `creator_id` bigint unsigned NOT NULL DEFAULT '0', + `modifier_id` bigint unsigned NOT NULL DEFAULT '0', + `is_deleted` tinyint NOT NULL DEFAULT '0', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='项目文档(非接口文档)表'; + +/*Data for the table `project_archive` */ + +insert into `project_archive`(`id`,`project_id`,`group_id`,`title`,`content`,`content_type`,`creator_id`,`modifier_id`,`is_deleted`,`gmt_create`,`gmt_modified`) + values (1,4,1,'项目文档可以管理项目迭代过程中的设计、需求、架构等文档',' **欢迎使用Torna企业接口文档解决方案。**\n\n您可以通过富文本或者Markdown编辑器来编写文档。',1,15,15,0,'2022-03-24 04:49:44','2022-03-24 05:02:42'); + /*Table structure for table `project_archive_group` */ DROP TABLE IF EXISTS `project_archive_group`; diff --git a/mysql_compat.sql b/mysql_compat.sql index 9f2907fb..94b5b674 100644 --- a/mysql_compat.sql +++ b/mysql_compat.sql @@ -429,6 +429,30 @@ CREATE TABLE `project` ( insert into `project`(`id`,`name`,`description`,`space_id`,`is_private`,`creator_id`,`creator_name`,`modifier_id`,`modifier_name`,`order_index`,`is_deleted`,`gmt_create`,`gmt_modified`) values (4,'商城项目','商城项目示例',19,0,15,'超级管理员',15,'超级管理员',0,0,'2022-02-27 15:08:32','2022-02-27 15:08:32'); +/*Table structure for table `project_archive` */ + +DROP TABLE IF EXISTS `project_archive`; + +CREATE TABLE `project_archive` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `project_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project.id', + `group_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project_archive_group.id', + `title` varchar(200) NOT NULL COMMENT '标题', + `content` longtext NOT NULL COMMENT '内容', + `content_type` tinyint NOT NULL COMMENT '内容类型', + `creator_id` bigint unsigned NOT NULL DEFAULT '0', + `modifier_id` bigint unsigned NOT NULL DEFAULT '0', + `is_deleted` tinyint NOT NULL DEFAULT '0', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='项目文档(非接口文档)表'; + +/*Data for the table `project_archive` */ + +insert into `project_archive`(`id`,`project_id`,`group_id`,`title`,`content`,`content_type`,`creator_id`,`modifier_id`,`is_deleted`,`gmt_create`,`gmt_modified`) + values (1,4,1,'项目文档可以管理项目迭代过程中的设计、需求、架构等文档',' **欢迎使用Torna企业接口文档解决方案。**\n\n您可以通过富文本或者Markdown编辑器来编写文档。',1,15,15,0,'2022-03-28 04:49:44','2022-03-28 05:02:42'); + /*Table structure for table `project_archive_group` */ DROP TABLE IF EXISTS `project_archive_group`; diff --git a/server/boot/src/main/resources/upgrade/1.14.5_ddl_2.txt b/server/boot/src/main/resources/upgrade/1.14.5_ddl_2.txt new file mode 100644 index 00000000..856ae583 --- /dev/null +++ b/server/boot/src/main/resources/upgrade/1.14.5_ddl_2.txt @@ -0,0 +1,14 @@ +CREATE TABLE `project_archive` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `project_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project.id', + `group_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'project_archive_group.id', + `title` varchar(200) NOT NULL COMMENT '标题', + `content` longtext NOT NULL COMMENT '内容', + `content_type` tinyint NOT NULL COMMENT '内容类型', + `creator_id` bigint unsigned NOT NULL DEFAULT '0', + `modifier_id` bigint unsigned NOT NULL DEFAULT '0', + `is_deleted` tinyint NOT NULL DEFAULT '0', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目文档(非接口文档)表'; diff --git a/server/server-dao/src/main/java/cn/torna/dao/entity/ProjectArchive.java b/server/server-dao/src/main/java/cn/torna/dao/entity/ProjectArchive.java new file mode 100644 index 00000000..fbc00446 --- /dev/null +++ b/server/server-dao/src/main/java/cn/torna/dao/entity/ProjectArchive.java @@ -0,0 +1,67 @@ +package cn.torna.dao.entity; + +import cn.torna.dao.enums.ContentTypeEnum; +import com.gitee.fastmybatis.annotation.Column; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.PkStrategy; +import com.gitee.fastmybatis.annotation.Table; +import lombok.Data; + +import java.util.Date; + +/** + * 表名:project_archive + * 备注:项目文档(非接口文档) + * + * @author liu xm + * @date 2022-03-21 17:28 + */ +@Table(name = "project_archive", pk = @Pk(name = "id", strategy = PkStrategy.INCREMENT)) +@Data +public class ProjectArchive { + /** + * id + */ + private Long id; + /** + * project.id + */ + private Long projectId; + /** + * project_archive_group.id + */ + private Long groupId; + /** + * 标题 + */ + private String title; + /** + * 内容 + */ + private String content; + /** + * 内容类型 + */ + private ContentTypeEnum contentType; + /** + * 创建者userid + */ + private Long creatorId; + /** + * 修改者userid + */ + private Long modifierId; + /** + * 数据库字段:is_deleted + */ + @Column(logicDelete = true, name = "is_deleted") + private Byte deleted; + /** + * 数据库字段:gmt_create + */ + private Date gmtCreate; + /** + * 数据库字段:gmt_modified + */ + private Date gmtModified; +} diff --git a/server/server-dao/src/main/java/cn/torna/dao/enums/ContentTypeEnum.java b/server/server-dao/src/main/java/cn/torna/dao/enums/ContentTypeEnum.java new file mode 100644 index 00000000..002019bc --- /dev/null +++ b/server/server-dao/src/main/java/cn/torna/dao/enums/ContentTypeEnum.java @@ -0,0 +1,27 @@ +package cn.torna.dao.enums; + +import com.gitee.fastmybatis.core.handler.BaseEnum; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 项目文档(非接口文档)内容类型 + * + * @author liu xm + * @date 2022-03-21 18:11 + */ +@AllArgsConstructor +@Getter +public enum ContentTypeEnum implements BaseEnum { + /** + * Markdown + */ + MD(1), + /** + * 富文本 + */ + RICH_TEXT(2); + + private final Integer code; + +} diff --git a/server/server-dao/src/main/java/cn/torna/dao/mapper/ProjectArchiveMapper.java b/server/server-dao/src/main/java/cn/torna/dao/mapper/ProjectArchiveMapper.java new file mode 100644 index 00000000..89f2afc6 --- /dev/null +++ b/server/server-dao/src/main/java/cn/torna/dao/mapper/ProjectArchiveMapper.java @@ -0,0 +1,11 @@ +package cn.torna.dao.mapper; + +import cn.torna.dao.entity.ProjectArchive; +import com.gitee.fastmybatis.core.mapper.CrudMapper; + +/** + * @author liu xm + * @date 2022-03-21 19:12 + */ +public interface ProjectArchiveMapper extends CrudMapper { +} diff --git a/server/server-service/src/main/java/cn/torna/service/ProjectArchiveService.java b/server/server-service/src/main/java/cn/torna/service/ProjectArchiveService.java new file mode 100644 index 00000000..bcabd033 --- /dev/null +++ b/server/server-service/src/main/java/cn/torna/service/ProjectArchiveService.java @@ -0,0 +1,28 @@ +package cn.torna.service; + +import cn.torna.common.support.BaseService; +import cn.torna.dao.entity.ProjectArchive; +import cn.torna.dao.mapper.ProjectArchiveMapper; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 项目文档(非接口文档) Service + * + * @author liu xm + * @date 2022-03-21 15:18 + */ +@Service +public class ProjectArchiveService extends BaseService { + + /** + * 根据分组ID集合获取项目文档列表 + * + * @param collect 分组ID集合 + * @return 项目文档列表 + */ + public List listByGroupIdCollection(List collect) { + return this.listByCollection("group_id", collect); + } +} diff --git a/server/server-service/src/main/java/cn/torna/service/UpgradeService.java b/server/server-service/src/main/java/cn/torna/service/UpgradeService.java index a189e5ce..cdc1d0b5 100644 --- a/server/server-service/src/main/java/cn/torna/service/UpgradeService.java +++ b/server/server-service/src/main/java/cn/torna/service/UpgradeService.java @@ -100,6 +100,7 @@ public class UpgradeService { private void v1_14_5(int oldVersion) { if (oldVersion < 1145) { this.createTable("project_archive_group", "upgrade/1.14.5_ddl_1.txt"); + this.createTable("project_archive", "upgrade/1.14.5_ddl_2.txt"); } } diff --git a/server/server-web/src/main/java/cn/torna/web/controller/ExceptionHandlerController.java b/server/server-web/src/main/java/cn/torna/web/controller/ExceptionHandlerController.java index 362d4610..771a9d5a 100644 --- a/server/server-web/src/main/java/cn/torna/web/controller/ExceptionHandlerController.java +++ b/server/server-web/src/main/java/cn/torna/web/controller/ExceptionHandlerController.java @@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import javax.servlet.http.HttpServletRequest; +import javax.validation.ConstraintViolation; +import javax.validation.ConstraintViolationException; import java.util.List; import java.util.stream.Collectors; @@ -46,6 +48,11 @@ public class ExceptionHandlerController { .collect(Collectors.joining(", ")); return Result.err(msg); } + if(e instanceof ConstraintViolationException){ + final ConstraintViolationException exception = (ConstraintViolationException) e; + ConstraintViolation constraintViolation = exception.getConstraintViolations().iterator().next(); + return Result.err(constraintViolation.getMessage()); + } log.error("未知错误,IP:{},URI:{},HttpMethod:{}", RequestUtil.getIP(request), request.getRequestURI(), request.getMethod(), e); return Result.err("系统错误,请查看日志"); diff --git a/server/server-web/src/main/java/cn/torna/web/controller/archive/ProjectArchiveController.java b/server/server-web/src/main/java/cn/torna/web/controller/archive/ProjectArchiveController.java new file mode 100644 index 00000000..85056a44 --- /dev/null +++ b/server/server-web/src/main/java/cn/torna/web/controller/archive/ProjectArchiveController.java @@ -0,0 +1,127 @@ +package cn.torna.web.controller.archive; + +import cn.torna.common.annotation.HashId; +import cn.torna.common.bean.Result; +import cn.torna.common.bean.User; +import cn.torna.common.context.UserContext; +import cn.torna.common.exception.BizException; +import cn.torna.common.util.CopyUtil; +import cn.torna.dao.entity.ProjectArchive; +import cn.torna.service.ProjectArchiveService; +import cn.torna.web.controller.archive.param.ArchiveAddParam; +import cn.torna.web.controller.archive.param.ArchiveDeleteParam; +import cn.torna.web.controller.archive.param.ArchiveUpdateParam; +import cn.torna.web.controller.archive.vo.ArchiveDetailsVO; +import cn.torna.web.controller.archive.vo.ArchiveVO; +import com.gitee.fastmybatis.core.query.Query; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import java.util.List; +import java.util.Objects; + +/** + * 项目文档(非接口文档) Controller + * + * @author liu xm + * @date 2022-03-21 20:51 + */ +@Validated +@RestController +@RequestMapping("/project/archive") +public class ProjectArchiveController { + + @Resource + private ProjectArchiveService projectArchiveService; + + /** + * 获取项目文档(非接口文档)列表 + * + * @param projectId 项目ID + * @param groupId 项目分组ID + * @return 项目文档(非接口文档)列表 + */ + @GetMapping("/list") + public Result> listArchive( + @NotNull(message = "project.id不能为空") @HashId Long projectId, + @HashId Long groupId) { + final Query query = new Query().eq("project_id", projectId); + if (Objects.nonNull(groupId)) { + query.eq("group_id", groupId); + } + final List archiveList = projectArchiveService.list(query); + final List groupVOList = CopyUtil.copyList(archiveList, ArchiveVO::new); + return Result.ok(groupVOList); + } + + /** + * 获取项目文档(非接口文档)信息 + * + * @param id 项目文档(非接口文档)ID + * @return 项目文档(非接口文档)信息 + */ + @GetMapping + public Result getArchive(@HashId Long id) { + final ProjectArchive projectArchive = projectArchiveService.getById(id); + if (Objects.isNull(projectArchive)) { + throw new BizException("项目文档信息不存在"); + } + final ArchiveDetailsVO detailsVO = CopyUtil.copyBean(projectArchive, ArchiveDetailsVO::new); + return Result.ok(detailsVO); + } + + /** + * 创建项目文档(非接口文档) + * + * @param param . + * @return result + */ + @PostMapping("/create") + public Result createArchiveGroup(@Valid @RequestBody ArchiveAddParam param) { + User user = UserContext.getUser(); + final ProjectArchive projectArchive = CopyUtil.copyBean(param, ProjectArchive::new); + projectArchive.setCreatorId(user.getUserId()); + projectArchive.setModifierId(user.getUserId()); + projectArchiveService.save(projectArchive); + return Result.ok(true); + } + + /** + * 更新项目文档(非接口文档) + * + * @param param . + * @return result + */ + @PostMapping("/update") + public Result updateArchive(@Valid @RequestBody ArchiveUpdateParam param) { + final ProjectArchive archive = projectArchiveService.getById(param.getId()); + if (Objects.isNull(archive)) { + throw new BizException("项目文档分组不存在"); + } + User user = UserContext.getUser(); + final ProjectArchive projectArchive = CopyUtil.copyBean(param, ProjectArchive::new); + projectArchive.setModifierId(user.getUserId()); + projectArchiveService.update(projectArchive); + return Result.ok(true); + } + + + /** + * 删除项目文档(非接口文档) + * + * @param param . + * @return result + */ + @PostMapping("/delete") + public Result deleteArchive(@Valid @RequestBody ArchiveDeleteParam param) { + final ProjectArchive archive = projectArchiveService.getById(param.getId()); + if (Objects.isNull(archive)) { + throw new BizException("项目文档不存在"); + } + projectArchiveService.deleteById(param.getId()); + return Result.ok(true); + } +} diff --git a/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveAddParam.java b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveAddParam.java new file mode 100644 index 00000000..79cd08c0 --- /dev/null +++ b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveAddParam.java @@ -0,0 +1,43 @@ +package cn.torna.web.controller.archive.param; + +import cn.torna.common.support.IdCodec; +import cn.torna.dao.enums.ContentTypeEnum; +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author liu xm + * @date 2022-03-24 2:59 + */ +@Data +public class ArchiveAddParam { + /** + * project.id + */ + @NotNull(message = "project.id不能为空") + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long projectId; + /** + * project_archive_group.id + */ + @NotNull(message = "group.id不能为空") + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long groupId; + /** + * 标题 + */ + @NotBlank(message = "标题不能为空") + private String title; + /** + * 内容 + */ + @NotBlank(message = "内容不能为空") + private String content; + /** + * 内容类型 + */ + private ContentTypeEnum contentType; +} diff --git a/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveDeleteParam.java b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveDeleteParam.java new file mode 100644 index 00000000..fad25379 --- /dev/null +++ b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveDeleteParam.java @@ -0,0 +1,19 @@ +package cn.torna.web.controller.archive.param; + +import cn.torna.common.support.IdCodec; +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author liu xm + * @date 2022-03-24 3:57 + */ +@Data +public class ArchiveDeleteParam { + + @NotNull(message = "项目文档id不能为空") + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long id; +} diff --git a/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveUpdateParam.java b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveUpdateParam.java new file mode 100644 index 00000000..260a990f --- /dev/null +++ b/server/server-web/src/main/java/cn/torna/web/controller/archive/param/ArchiveUpdateParam.java @@ -0,0 +1,47 @@ +package cn.torna.web.controller.archive.param; + +import cn.torna.common.support.IdCodec; +import cn.torna.dao.enums.ContentTypeEnum; +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author liu xm + * @date 2022-03-24 4:01 + */ +@Data +public class ArchiveUpdateParam { + + @NotNull(message = "项目文档id不能为空") + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long id; + /** + * project.id + */ + @NotNull(message = "project.id不能为空") + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long projectId; + /** + * project_archive_group.id + */ + @NotNull(message = "group.id不能为空") + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long groupId; + /** + * 标题 + */ + @NotBlank(message = "标题不能为空") + private String title; + /** + * 内容 + */ + @NotBlank(message = "内容不能为空") + private String content; + /** + * 内容类型 + */ + private ContentTypeEnum contentType; +} diff --git a/server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveDetailsVO.java b/server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveDetailsVO.java new file mode 100644 index 00000000..9be8359c --- /dev/null +++ b/server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveDetailsVO.java @@ -0,0 +1,21 @@ +package cn.torna.web.controller.archive.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author liu xm + * @date 2022-03-23 22:55 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ArchiveDetailsVO extends ArchiveVO { + /** + * 内容 + */ + private String content; +} diff --git a/server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveVO.java b/server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveVO.java new file mode 100644 index 00000000..84b29454 --- /dev/null +++ b/server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveVO.java @@ -0,0 +1,65 @@ +package cn.torna.web.controller.archive.vo; + +import cn.torna.common.support.IdCodec; +import cn.torna.dao.enums.ContentTypeEnum; +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.Date; + +/** + * 项目文档列表 + * + * @author liu xm + * @date 2022-03-23 16:15 + */ +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ArchiveVO { + /** + * id + */ + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long id; + /** + * project.id + */ + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long projectId; + /** + * project_archive_group.id + */ + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long groupId; + /** + * 标题 + */ + private String title; + /** + * 内容类型 + */ + private ContentTypeEnum contentType; + /** + * 创建者userid + */ + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long creatorId; + /** + * 修改者userid + */ + @JSONField(serializeUsing = IdCodec.class, deserializeUsing = IdCodec.class) + private Long modifierId; + /** + * 数据库字段:is_deleted + */ + private Byte deleted; + /** + * 数据库字段:gmt_create + */ + private Date gmtCreate; + /** + * 数据库字段:gmt_modified + */ + private Date gmtModified; +} -- Gitee From 8c647920c075d823eb599867f4e0db1f501aacd3 Mon Sep 17 00:00:00 2001 From: liu xm Date: Mon, 28 Mar 2022 17:35:57 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=88=86=E7=BB=84=E6=95=B0=E6=8D=AE=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/project/ProjectArchive/index.vue | 31 ++++++------ .../ProjectArchiveGroupController.java | 36 +++++++++++-- .../controller/archive/vo/ArchiveTreeVO.java | 50 +++++++++++++++++++ 3 files changed, 100 insertions(+), 17 deletions(-) create mode 100644 server/server-web/src/main/java/cn/torna/web/controller/archive/vo/ArchiveTreeVO.java diff --git a/front/src/views/project/ProjectArchive/index.vue b/front/src/views/project/ProjectArchive/index.vue index 5997578a..8d2162a5 100644 --- a/front/src/views/project/ProjectArchive/index.vue +++ b/front/src/views/project/ProjectArchive/index.vue @@ -19,7 +19,7 @@ {{ $ts('createArchiveGroup') }} @@ -40,7 +40,6 @@ ref="archiveGroupTree" :default-expanded-keys="expandedKeys" :data="treeData" - :props="defaultProps" node-key="id" :expand-on-click-node="false" :filter-node-method="filterArchiveGroupNode" @@ -49,7 +48,7 @@