diff --git a/pom.xml b/pom.xml
index 4f592194b..c5ed42bd6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
3.2.2
2.2.2
1.2.11
- 3.0.3
+ 1.6.9
1.5.22
5.2.2
3.1.1
@@ -37,6 +37,7 @@
3.5.1
1.4.3
2.3.1
+ 1.18.24
30.0-jre
@@ -87,13 +88,19 @@
org.springdoc
springdoc-openapi-ui
- 1.6.9
+ ${springdoc.version}
org.springdoc
springdoc-openapi-javadoc
- 1.6.9
+ ${springdoc.version}
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
@@ -341,7 +348,7 @@
org.projectlombok
lombok
- 1.18.24
+ ${lombok.version}
org.springframework.boot
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
index f2279dbef..f4e7dffe0 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
@@ -19,7 +19,6 @@ import com.ruoyi.sms.config.properties.SmsProperties;
import com.ruoyi.sms.core.SmsTemplate;
import com.ruoyi.sms.entity.SmsResult;
import com.ruoyi.system.service.ISysConfigService;
-import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
@@ -39,7 +38,6 @@ import java.util.Map;
@Anonymous
@Slf4j
@Validated
-@Tag(name = "验证码操作处理", description = "验证码管理")
@RequiredArgsConstructor
@RestController
public class CaptchaController {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
index 849d7c3f1..1e116bcc7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
@@ -19,7 +19,6 @@ import java.util.*;
*
* @author Lion Li
*/
-@Tag(name = "缓存监控", description = "缓存监控管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/monitor/cache")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
index a58c54e34..0d50a6ed6 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
@@ -24,7 +24,6 @@ import java.util.List;
* @author Lion Li
*/
@Validated
-@Tag(name = "系统访问记录", description = "系统访问记录管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/monitor/logininfor")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
index 717696246..3684c2d39 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
@@ -24,7 +24,6 @@ import java.util.List;
* @author Lion Li
*/
@Validated
-@Tag(name = "操作日志记录", description = "操作日志记录管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/monitor/operlog")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
index ec611caf2..1a42b4e51 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
@@ -28,7 +28,6 @@ import java.util.List;
*
* @author Lion Li
*/
-@Tag(name = "在线用户监控", description = "在线用户监控管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/monitor/online")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
index d2cdcb76a..b8cacca17 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
@@ -25,7 +25,6 @@ import java.util.List;
* @author Lion Li
*/
@Validated
-@Tag(name = "参数配置控制器", description = "参数配置管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/config")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
index b17cf510f..916b124c0 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
@@ -26,7 +26,6 @@ import java.util.Map;
* @author Lion Li
*/
@Validated
-@Tag(name = "部门控制器", description = "部门管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/dept")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
index 6dfa05f8e..22a501738 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
@@ -12,7 +12,6 @@ import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ISysDictDataService;
import com.ruoyi.system.service.ISysDictTypeService;
-import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -27,7 +26,6 @@ import java.util.List;
* @author Lion Li
*/
@Validated
-@Tag(name = "数据字典信息控制器", description = "数据字典信息管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/dict/data")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
index 3eb3480fe..ba2b0487d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
@@ -25,7 +25,6 @@ import java.util.List;
* @author Lion Li
*/
@Validated
-@Tag(name = "数据字典信息控制器", description = "数据字典信息管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/dict/type")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java
index 11d0d506f..5a9eba2ac 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java
@@ -12,7 +12,6 @@ import org.springframework.web.bind.annotation.RestController;
*
* @author Lion Li
*/
-@Tag(name ="首页控制器", description = "首页管理")
@RequiredArgsConstructor
@RestController
public class SysIndexController {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index 10b9dce6d..2097825ee 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -33,7 +33,6 @@ import java.util.Set;
* @author Lion Li
*/
@Validated
-@Tag(name = "登录验证控制器", description = "登录验证管理")
@RequiredArgsConstructor
@RestController
public class SysLoginController {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
index 713dfbe79..faf68ce3b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
@@ -25,7 +25,6 @@ import java.util.Map;
* @author Lion Li
*/
@Validated
-@Tag(name = "菜单信息控制器", description = "菜单信息管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/menu")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
index 0e2eb58ce..17e18bf0d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
@@ -20,7 +20,6 @@ import org.springframework.web.bind.annotation.*;
* @author Lion Li
*/
@Validated
-@Tag(name = "公告信息控制器", description = "公告信息管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/notice")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java
index c9afca001..d8c4c0d73 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java
@@ -31,7 +31,6 @@ import java.util.Arrays;
* @date 2021-08-13
*/
@Validated
-@Tag(name = "对象存储配置控制器", description = "对象存储配置管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/oss/config")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
index 85faa1687..4092e4a2d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
@@ -40,7 +40,6 @@ import java.util.Map;
* @author Lion Li
*/
@Validated
-@Tag(name = "对象存储控制器", description = "对象存储管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/oss")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
index 5feaa6cb4..656987776 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
@@ -11,7 +11,6 @@ import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.service.ISysPostService;
-import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -25,7 +24,6 @@ import java.util.List;
* @author Lion Li
*/
@Validated
-@Tag(name ="岗位信息控制器", description = "岗位信息管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/post")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
index ee45ac2c3..eb926c788 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
@@ -31,7 +31,6 @@ import java.util.Map;
* @author Lion Li
*/
@Validated
-@Tag(name = "个人信息控制器", description = "个人信息管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/user/profile")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
index 79b5d8602..e45d8268c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
@@ -19,7 +19,6 @@ import org.springframework.web.bind.annotation.RestController;
* @author Lion Li
*/
@Validated
-@Tag(name = "注册验证控制器", description = "注册验证管理")
@RequiredArgsConstructor
@RestController
public class SysRegisterController extends BaseController {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
index 31694b04e..5b6b88b9c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
@@ -32,7 +32,6 @@ import java.util.List;
* @author Lion Li
*/
@Validated
-@Tag(name = "角色信息控制器", description = "角色信息管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/role")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index c32af70b9..f7662e8d7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -45,7 +45,6 @@ import java.util.Map;
* @author Lion Li
*/
@Validated
-@Tag(name = "用户信息控制器", description = "用户信息管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/user")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java
index ddfca7fb5..2eb8ea652 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java
@@ -18,7 +18,6 @@ import java.io.File;
* @author Michelle.Chung
*/
@Validated
-@Tag(name = "邮件发送案例", description = "邮件发送案例")
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/mail")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java
index a345167cd..80c576cc0 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java
@@ -20,7 +20,6 @@ import java.time.Duration;
*/
// 类级别 缓存统一配置
//@CacheConfig(cacheNames = "redissonCacheMap")
-@Tag(name = "spring-cache 演示案例", description = "spring-cache 演示案例")
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/cache")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java
index 69d231d59..9b27b4450 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java
@@ -20,7 +20,6 @@ import java.time.LocalTime;
*
* @author shenxinquan
*/
-@Tag(name = "测试分布式锁的样例", description = "测试分布式锁的样例")
@Slf4j
@RestController
@RequestMapping("/demo/redisLock")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java
index dae10364e..320d8e122 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java
@@ -13,7 +13,6 @@ import org.springframework.web.bind.annotation.RestController;
*
* @author Lion Li
*/
-@Tag(name = "Redis发布订阅 演示案例", description = "Redis发布订阅")
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/redis/pubsub")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java
index 39e50348c..dae3e7293 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java
@@ -15,7 +15,6 @@ import org.springframework.web.bind.annotation.RestController;
*
* @author Lion Li
*/
-@Tag(name = "测试分布式限流样例", description = "测试分布式限流样例")
@Slf4j
@RestController
@RequestMapping("/demo/rateLimiter")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java
index a9c38a7f6..8547dd3fb 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java
@@ -22,7 +22,6 @@ import java.util.Map;
* @version 4.2.0
*/
@Validated
-@Tag(name = "短信演示案例", description = "短信演示案例")
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/sms")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java
index b044277d2..fdf965411 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java
@@ -14,7 +14,6 @@ import org.springframework.web.multipart.MultipartFile;
*
* @author Lion Li
*/
-@Tag(name = "演示swagger3控制器", description = "演示swagger3接口")
@RestController
@RequestMapping("/swagger/demo")
public class Swagger3DemoController {
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java
index 6f5e85031..caed9756c 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java
@@ -5,7 +5,6 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.demo.domain.TestDemo;
import com.ruoyi.demo.mapper.TestDemoMapper;
-import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -21,7 +20,6 @@ import java.util.List;
* @author Lion Li
* @date 2021-05-30
*/
-@Tag(name = "测试批量方法", description = "测试批量方法")
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/batch")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
index b4b977a84..77bb10e48 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
@@ -41,7 +41,6 @@ import java.util.concurrent.TimeUnit;
* @date 2021-07-26
*/
@Validated
-@Tag(name = "测试单表控制器", description = "测试单表管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/demo")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java
index 95d307b02..454ceb701 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java
@@ -20,7 +20,6 @@ import java.util.Map;
*
* @author Lion Li
*/
-@Tag(name = "测试Excel功能", description = "测试Excel功能")
@RestController
@RequestMapping("/demo/excel")
public class TestExcelController {
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java
index adb7f6f0b..cd44adb7e 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java
@@ -20,7 +20,6 @@ import javax.validation.constraints.NotNull;
* @author Lion Li
*/
@Validated
-@Tag(name = "测试国际化控制器", description = "测试国际化管理")
@RestController
@RequestMapping("/demo/i18n")
public class TestI18nController {
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java
index 53a56d88b..6bf904caf 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java
@@ -4,7 +4,6 @@ import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.SensitiveStrategy;
-import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -20,7 +19,6 @@ import org.springframework.web.bind.annotation.RestController;
* @version 3.6.0
* @see com.ruoyi.common.core.service.SensitiveService
*/
-@Tag(name = "测试数据脱敏控制器", description = "测试数据脱敏管理")
@RestController
@RequestMapping("/demo/sensitive")
public class TestSensitiveController extends BaseController {
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java
index 38e314b6b..6a7a2ef87 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java
@@ -31,7 +31,6 @@ import java.util.List;
* @date 2021-07-26
*/
@Validated
-@Tag(name = "测试树表控制器", description = "测试树表管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/tree")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java
index 6f921f55a..9fd8764d3 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java
@@ -21,7 +21,6 @@ import org.springframework.web.bind.annotation.RestController;
* @version 3.6.0
*/
@Slf4j
-@Tag(name = "有界队列 演示案例", description = "有界队列")
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/queue/bounded")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java
index 32067e530..e6dbee863 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java
@@ -2,7 +2,6 @@ package com.ruoyi.demo.controller.queue;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.utils.redis.QueueUtils;
-import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
@@ -24,7 +23,6 @@ import java.util.concurrent.TimeUnit;
* @version 3.6.0
*/
@Slf4j
-@Tag(name = "延迟队列 演示案例", description = "延迟队列")
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/queue/delayed")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java
index 1e7425f49..ba6c340b6 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java
@@ -3,7 +3,6 @@ package com.ruoyi.demo.controller.queue;
import cn.hutool.core.util.RandomUtil;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.utils.redis.QueueUtils;
-import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
@@ -22,7 +21,6 @@ import org.springframework.web.bind.annotation.RestController;
* @version 3.6.0
*/
@Slf4j
-@Tag(name = "优先队列 演示案例", description = "优先队列")
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/queue/priority")
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
index 271f01ff3..6f7a8c840 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
@@ -1,11 +1,15 @@
package com.ruoyi.framework.config;
import com.ruoyi.framework.config.properties.SwaggerProperties;
+import com.ruoyi.framework.handler.OpenApiHandler;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import lombok.RequiredArgsConstructor;
-import org.springdoc.core.SpringDocConfiguration;
+import org.springdoc.core.*;
+import org.springdoc.core.customizers.OpenApiBuilderCustomizer;
+import org.springdoc.core.customizers.ServerBaseUrlCustomizer;
+import org.springdoc.core.providers.JavadocProvider;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -14,6 +18,7 @@ import org.springframework.context.annotation.Configuration;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
/**
* Swagger 文档配置
@@ -57,4 +62,17 @@ public class SwaggerConfig {
info.setVersion(infoProperties.getVersion());
return info;
}
+
+ /**
+ * 自定义 openapi 处理器
+ */
+ @Bean
+ public OpenAPIService openApiBuilder(Optional openAPI,
+ SecurityService securityParser,
+ SpringDocConfigProperties springDocConfigProperties, PropertyResolverUtils propertyResolverUtils,
+ Optional> openApiBuilderCustomisers,
+ Optional> serverBaseUrlCustomisers, Optional javadocProvider) {
+ return new OpenApiHandler(openAPI, securityParser, springDocConfigProperties, propertyResolverUtils, openApiBuilderCustomisers, serverBaseUrlCustomisers, javadocProvider);
+ }
+
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/OpenApiHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/OpenApiHandler.java
new file mode 100644
index 000000000..608cae5de
--- /dev/null
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/OpenApiHandler.java
@@ -0,0 +1,272 @@
+package com.ruoyi.framework.handler;
+
+import cn.hutool.core.io.IoUtil;
+import io.swagger.v3.core.jackson.TypeNameResolver;
+import io.swagger.v3.core.util.AnnotationsUtils;
+import io.swagger.v3.oas.annotations.tags.Tags;
+import io.swagger.v3.oas.models.Components;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.Operation;
+import io.swagger.v3.oas.models.Paths;
+import io.swagger.v3.oas.models.tags.Tag;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springdoc.core.OpenAPIService;
+import org.springdoc.core.PropertyResolverUtils;
+import org.springdoc.core.SecurityService;
+import org.springdoc.core.SpringDocConfigProperties;
+import org.springdoc.core.customizers.OpenApiBuilderCustomizer;
+import org.springdoc.core.customizers.ServerBaseUrlCustomizer;
+import org.springdoc.core.providers.JavadocProvider;
+import org.springframework.context.ApplicationContext;
+import org.springframework.core.annotation.AnnotatedElementUtils;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.method.HandlerMethod;
+
+import java.io.StringReader;
+import java.lang.reflect.Method;
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * 自定义 openapi 处理器
+ * 对源码功能进行修改 增强使用
+ */
+@SuppressWarnings("all")
+public class OpenApiHandler extends OpenAPIService {
+
+ /**
+ * The constant LOGGER.
+ */
+ private static final Logger LOGGER = LoggerFactory.getLogger(OpenAPIService.class);
+
+ /**
+ * The Context.
+ */
+ private ApplicationContext context;
+
+ /**
+ * The Security parser.
+ */
+ private final SecurityService securityParser;
+
+ /**
+ * The Mappings map.
+ */
+ private final Map mappingsMap = new HashMap<>();
+
+ /**
+ * The Springdoc tags.
+ */
+ private final Map springdocTags = new HashMap<>();
+
+ /**
+ * The Open api builder customisers.
+ */
+ private final Optional> openApiBuilderCustomisers;
+
+ /**
+ * The server base URL customisers.
+ */
+ private final Optional> serverBaseUrlCustomizers;
+
+ /**
+ * The Spring doc config properties.
+ */
+ private final SpringDocConfigProperties springDocConfigProperties;
+
+ /**
+ * The Open api.
+ */
+ private OpenAPI openAPI;
+
+ /**
+ * The Cached open api map.
+ */
+ private final Map cachedOpenAPI = new HashMap<>();
+
+ /**
+ * The Is servers present.
+ */
+ private boolean isServersPresent;
+
+ /**
+ * The Server base url.
+ */
+ private String serverBaseUrl;
+
+ /**
+ * The Property resolver utils.
+ */
+ private final PropertyResolverUtils propertyResolverUtils;
+
+ /**
+ * The javadoc provider.
+ */
+ private final Optional javadocProvider;
+
+ /**
+ * The Basic error controller.
+ */
+ private static Class> basicErrorController;
+
+ static {
+ try {
+ //spring-boot 2
+ basicErrorController = Class.forName("org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController");
+ } catch (ClassNotFoundException e) {
+ //spring-boot 1
+ try {
+ basicErrorController = Class.forName("org.springframework.boot.autoconfigure.web.BasicErrorController");
+ } catch (ClassNotFoundException classNotFoundException) {
+ //Basic error controller class not found
+ LOGGER.trace(classNotFoundException.getMessage());
+ }
+ }
+ }
+
+ /**
+ * Instantiates a new Open api builder.
+ *
+ * @param openAPI the open api
+ * @param securityParser the security parser
+ * @param springDocConfigProperties the spring doc config properties
+ * @param propertyResolverUtils the property resolver utils
+ * @param openApiBuilderCustomizers the open api builder customisers
+ * @param serverBaseUrlCustomizers the server base url customizers
+ * @param javadocProvider the javadoc provider
+ */
+ public OpenApiHandler(Optional openAPI, SecurityService securityParser,
+ SpringDocConfigProperties springDocConfigProperties, PropertyResolverUtils propertyResolverUtils,
+ Optional> openApiBuilderCustomizers,
+ Optional> serverBaseUrlCustomizers,
+ Optional javadocProvider) {
+ super(openAPI, securityParser, springDocConfigProperties, propertyResolverUtils, openApiBuilderCustomizers, serverBaseUrlCustomizers, javadocProvider);
+ if (openAPI.isPresent()) {
+ this.openAPI = openAPI.get();
+ if (this.openAPI.getComponents() == null)
+ this.openAPI.setComponents(new Components());
+ if (this.openAPI.getPaths() == null)
+ this.openAPI.setPaths(new Paths());
+ if (!CollectionUtils.isEmpty(this.openAPI.getServers()))
+ this.isServersPresent = true;
+ }
+ this.propertyResolverUtils = propertyResolverUtils;
+ this.securityParser = securityParser;
+ this.springDocConfigProperties = springDocConfigProperties;
+ this.openApiBuilderCustomisers = openApiBuilderCustomizers;
+ this.serverBaseUrlCustomizers = serverBaseUrlCustomizers;
+ this.javadocProvider = javadocProvider;
+ if (springDocConfigProperties.isUseFqn())
+ TypeNameResolver.std.setUseFqn(true);
+ }
+
+ @Override
+ public Operation buildTags(HandlerMethod handlerMethod, Operation operation, OpenAPI openAPI, Locale locale) {
+
+ Set tags = new HashSet<>();
+ Set tagsStr = new HashSet<>();
+
+ buildTagsFromMethod(handlerMethod.getMethod(), tags, tagsStr, locale);
+ buildTagsFromClass(handlerMethod.getBeanType(), tags, tagsStr, locale);
+
+ if (!CollectionUtils.isEmpty(tagsStr))
+ tagsStr = tagsStr.stream()
+ .map(str -> propertyResolverUtils.resolve(str, locale))
+ .collect(Collectors.toSet());
+
+ if (springdocTags.containsKey(handlerMethod)) {
+ io.swagger.v3.oas.models.tags.Tag tag = springdocTags.get(handlerMethod);
+ tagsStr.add(tag.getName());
+ if (openAPI.getTags() == null || !openAPI.getTags().contains(tag)) {
+ openAPI.addTagsItem(tag);
+ }
+ }
+
+ if (!CollectionUtils.isEmpty(tagsStr)) {
+ if (CollectionUtils.isEmpty(operation.getTags()))
+ operation.setTags(new ArrayList<>(tagsStr));
+ else {
+ Set operationTagsSet = new HashSet<>(operation.getTags());
+ operationTagsSet.addAll(tagsStr);
+ operation.getTags().clear();
+ operation.getTags().addAll(operationTagsSet);
+ }
+ }
+
+ if (isAutoTagClasses(operation)) {
+
+
+ if (javadocProvider.isPresent()) {
+ String description = javadocProvider.get().getClassJavadoc(handlerMethod.getBeanType());
+ if (StringUtils.isNotBlank(description)) {
+ io.swagger.v3.oas.models.tags.Tag tag = new io.swagger.v3.oas.models.tags.Tag();
+
+ // 自定义部分 修改使用java注释当tag名
+ List list = IoUtil.readLines(new StringReader(description), new ArrayList<>());
+ // tag.setName(tagAutoName);
+ tag.setName(list.get(0));
+ operation.addTagsItem(list.get(0));
+
+ tag.setDescription(description);
+ if (openAPI.getTags() == null || !openAPI.getTags().contains(tag)) {
+ openAPI.addTagsItem(tag);
+ }
+ }
+ } else {
+ String tagAutoName = splitCamelCase(handlerMethod.getBeanType().getSimpleName());
+ operation.addTagsItem(tagAutoName);
+ }
+ }
+
+ if (!CollectionUtils.isEmpty(tags)) {
+ // Existing tags
+ List openApiTags = openAPI.getTags();
+ if (!CollectionUtils.isEmpty(openApiTags))
+ tags.addAll(openApiTags);
+ openAPI.setTags(new ArrayList<>(tags));
+ }
+
+ // Handle SecurityRequirement at operation level
+ io.swagger.v3.oas.annotations.security.SecurityRequirement[] securityRequirements = securityParser
+ .getSecurityRequirements(handlerMethod);
+ if (securityRequirements != null) {
+ if (securityRequirements.length == 0)
+ operation.setSecurity(Collections.emptyList());
+ else
+ securityParser.buildSecurityRequirement(securityRequirements, operation);
+ }
+
+ return operation;
+ }
+
+ private void buildTagsFromMethod(Method method, Set tags, Set tagsStr, Locale locale) {
+ // method tags
+ Set tagsSet = AnnotatedElementUtils
+ .findAllMergedAnnotations(method, Tags.class);
+ Set methodTags = tagsSet.stream()
+ .flatMap(x -> Stream.of(x.value())).collect(Collectors.toSet());
+ methodTags.addAll(AnnotatedElementUtils.findAllMergedAnnotations(method, io.swagger.v3.oas.annotations.tags.Tag.class));
+ if (!CollectionUtils.isEmpty(methodTags)) {
+ tagsStr.addAll(methodTags.stream().map(tag -> propertyResolverUtils.resolve(tag.name(), locale)).collect(Collectors.toSet()));
+ List allTags = new ArrayList<>(methodTags);
+ addTags(allTags, tags, locale);
+ }
+ }
+
+ private void addTags(List sourceTags, Set tags, Locale locale) {
+ Optional> optionalTagSet = AnnotationsUtils
+ .getTags(sourceTags.toArray(new io.swagger.v3.oas.annotations.tags.Tag[0]), true);
+ optionalTagSet.ifPresent(tagsSet -> {
+ tagsSet.forEach(tag -> {
+ tag.name(propertyResolverUtils.resolve(tag.getName(), locale));
+ tag.description(propertyResolverUtils.resolve(tag.getDescription(), locale));
+ if (tags.stream().noneMatch(t -> t.getName().equals(tag.getName())))
+ tags.add(tag);
+ });
+ });
+ }
+
+}
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java
index 7a20df1ad..f7c2cfadf 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java
@@ -29,7 +29,6 @@ import java.util.Map;
* @author Lion Li
*/
@Validated
-@Tag(name = "代码生成", description = "代码生成管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/tool/gen")
diff --git a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm
index 550be928a..1b2bc136b 100644
--- a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm
+++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm
@@ -27,16 +27,14 @@ import ${packageName}.service.I${ClassName}Service;
import com.ruoyi.common.core.page.TableDataInfo;
#elseif($table.tree)
#end
-import io.swagger.v3.oas.annotations.tags.Tag;
/**
- * ${functionName}Controller
+ * ${functionName}
*
* @author ${author}
* @date ${datetime}
*/
@Validated
-@Tag(name ="${functionName}控制器", description = "${functionName}管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/${moduleName}/${businessName}")