From 0b077806196ceb8a68af93f00880ccc70aee50c2 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期四, 07 七月 2022 18:08:14 +0800
Subject: [PATCH] add 整合 springdoc 移除 knife4j

---
 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java                        |   23 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java            |   16 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java                    |   14 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java      |   24 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java            |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java                          |   17 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java                             |   11 
 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java                          |   25 
 ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java            |   30 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java                          |   14 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java          |   18 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java                |   23 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java    |   10 
 ruoyi-generator/src/main/resources/vm/java/controller.java.vm                              |   23 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java                |   49 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java                |   10 
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SwaggerProperties.java |   77 +-
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java                |   30 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java                     |   26 
 ruoyi-generator/src/main/resources/vm/java/bo.java.vm                                      |    6 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java               |   14 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java                 |   24 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java                  |   31 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java                        |    9 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java         |   34 
 ruoyi-admin/src/main/resources/application.yml                                             |   82 +-
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java                |   10 
 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java                          |   17 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java                           |   13 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java                      |   20 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java         |   12 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java                      |   21 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java        |   30 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java                        |    9 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java                |   33 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java                 |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java                          |   13 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java            |    7 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java      |    3 
 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java                    |   15 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java                         |   41 
 pom.xml                                                                                    |   18 
 ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java                   |   14 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java       |   30 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java                 |   35 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java            |   25 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java             |   19 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java       |   22 
 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java                          |   13 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java       |   30 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java           |   48 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java                  |   31 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java                |   12 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java          |    8 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java            |    9 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java                        |   15 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java           |   28 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java                        |    9 
 ruoyi-common/pom.xml                                                                       |    9 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java                      |   25 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java      |   26 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java            |    8 
 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java                          |   17 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java           |   54 
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java                |  165 ----
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java       |   30 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java                    |    8 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java           |   32 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java           |   28 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java                        |    9 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java       |   16 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java       |    8 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java           |   14 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java            |   29 
 ruoyi-generator/src/main/resources/vm/java/vo.java.vm                                      |    4 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java               |   13 
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java              |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java                            |   19 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java    |   16 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java         |   24 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java                     |   10 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java                        |   21 
 82 files changed, 873 insertions(+), 1,014 deletions(-)

diff --git a/pom.xml b/pom.xml
index 9f1963b..9aa357e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -85,21 +85,9 @@
             </dependency>
 
             <dependency>
-                <groupId>com.github.xiaoymin</groupId>
-                <artifactId>knife4j-spring-boot-starter</artifactId>
-                <version>${knife4j.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <artifactId>swagger-annotations</artifactId>
-                        <groupId>io.swagger</groupId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>io.swagger</groupId>
-                <artifactId>swagger-annotations</artifactId>
-                <version>${swagger-annotations.version}</version>
+                <groupId>org.springdoc</groupId>
+                <artifactId>springdoc-openapi-ui</artifactId>
+                <version>1.6.9</version>
             </dependency>
 
             <dependency>
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 3bfe35a..6865d16 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,9 +19,9 @@
 import com.ruoyi.sms.core.SmsTemplate;
 import com.ruoyi.sms.entity.SmsResult;
 import com.ruoyi.system.service.ISysConfigService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
@@ -41,7 +41,7 @@
 @Anonymous
 @Slf4j
 @Validated
-@Api(value = "楠岃瘉鐮佹搷浣滃鐞�", tags = {"楠岃瘉鐮佺鐞�"})
+@Tag(name ="楠岃瘉鐮佹搷浣滃鐞�", description = "楠岃瘉鐮佺鐞�")
 @RequiredArgsConstructor
 @RestController
 public class CaptchaController {
@@ -53,9 +53,9 @@
     /**
      * 鐭俊楠岃瘉鐮�
      */
-    @ApiOperation("鐭俊楠岃瘉鐮�")
+    @Operation(summary = "鐭俊楠岃瘉鐮�")
     @GetMapping("/captchaSms")
-    public R<Void> smsCaptcha(@ApiParam("鐢ㄦ埛鎵嬫満鍙�")
+    public R<Void> smsCaptcha(@Parameter(name = "鐢ㄦ埛鎵嬫満鍙�")
                               @NotBlank(message = "{user.phonenumber.not.blank}")
                               String phonenumber) {
         if (smsProperties.getEnabled()) {
@@ -80,7 +80,7 @@
     /**
      * 鐢熸垚楠岃瘉鐮�
      */
-    @ApiOperation("鐢熸垚楠岃瘉鐮�")
+    @Operation(summary = "鐢熸垚楠岃瘉鐮�")
     @GetMapping("/captchaImage")
     public R<Map<String, Object>> getCode() {
         Map<String, Object> ajax = new HashMap<>();
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 e84f60d..e0dad9f 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
@@ -5,8 +5,8 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.SysCache;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.data.redis.connection.RedisServerCommands;
 import org.springframework.data.redis.core.RedisCallback;
@@ -20,7 +20,7 @@
  *
  * @author Lion Li
  */
-@Api(value = "缂撳瓨鐩戞帶", tags = {"缂撳瓨鐩戞帶绠$悊"})
+@Tag(name ="缂撳瓨鐩戞帶", description = "缂撳瓨鐩戞帶绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/monitor/cache")
@@ -41,7 +41,7 @@
         CACHES.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "闄愭祦澶勭悊"));
     }
 
-    @ApiOperation("鑾峰彇缂撳瓨鐩戞帶璇︾粏淇℃伅")
+    @Operation(summary = "鑾峰彇缂撳瓨鐩戞帶璇︾粏淇℃伅")
     @SaCheckPermission("monitor:cache:list")
     @GetMapping()
     public R<Map<String, Object>> getInfo() throws Exception {
@@ -67,14 +67,14 @@
         return R.ok(result);
     }
 
-    @ApiOperation("鑾峰彇缂撳瓨鍚嶇О鍒楄〃")
+    @Operation(summary = "鑾峰彇缂撳瓨鍚嶇О鍒楄〃")
     @SaCheckPermission("monitor:cache:list")
     @GetMapping("/getNames")
     public R<List<SysCache>> cache() {
         return R.ok(CACHES);
     }
 
-    @ApiOperation("鑾峰彇KEYS鍩轰簬缂撳瓨鍚�")
+    @Operation(summary = "鑾峰彇KEYS鍩轰簬缂撳瓨鍚�")
     @SaCheckPermission("monitor:cache:list")
     @GetMapping("/getKeys/{cacheName}")
     public R<Set<String>> getCacheKeys(@PathVariable String cacheName) {
@@ -82,7 +82,7 @@
         return R.ok(cacheKyes);
     }
 
-    @ApiOperation("鑾峰彇鍊煎熀浜庣紦瀛樺悕涓嶬EY")
+    @Operation(summary = "鑾峰彇鍊煎熀浜庣紦瀛樺悕涓嶬EY")
     @SaCheckPermission("monitor:cache:list")
     @GetMapping("/getValue/{cacheName}/{cacheKey}")
     public R<SysCache> getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) {
@@ -91,7 +91,7 @@
         return R.ok(sysCache);
     }
 
-    @ApiOperation("娓呯┖缂撳瓨鍚�")
+    @Operation(summary = "娓呯┖缂撳瓨鍚�")
     @SaCheckPermission("monitor:cache:list")
     @DeleteMapping("/clearCacheName/{cacheName}")
     public R<Void> clearCacheName(@PathVariable String cacheName) {
@@ -100,7 +100,7 @@
         return R.ok();
     }
 
-    @ApiOperation("娓呯┖缂撳瓨KEY")
+    @Operation(summary = "娓呯┖缂撳瓨KEY")
     @SaCheckPermission("monitor:cache:list")
     @DeleteMapping("/clearCacheKey/{cacheKey}")
     public R<Void> clearCacheKey(@PathVariable String cacheKey) {
@@ -108,7 +108,7 @@
         return R.ok();
     }
 
-    @ApiOperation("娓呯┖鎵�鏈夌紦瀛�")
+    @Operation(summary = "娓呯┖鎵�鏈夌紦瀛�")
     @SaCheckPermission("monitor:cache:list")
     @DeleteMapping("/clearCacheAll")
     public R<Void> clearCacheAll() {
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 5bec151..6e2eaae 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
@@ -3,15 +3,15 @@
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.domain.SysLogininfor;
 import com.ruoyi.system.service.ISysLogininforService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+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 +25,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "绯荤粺璁块棶璁板綍", tags = {"绯荤粺璁块棶璁板綍绠$悊"})
+@Tag(name ="绯荤粺璁块棶璁板綍", description = "绯荤粺璁块棶璁板綍绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/monitor/logininfor")
@@ -33,14 +33,14 @@
 
     private final ISysLogininforService logininforService;
 
-    @ApiOperation("鏌ヨ绯荤粺璁块棶璁板綍鍒楄〃")
+    @Operation(summary = "鏌ヨ绯荤粺璁块棶璁板綍鍒楄〃")
     @SaCheckPermission("monitor:logininfor:list")
     @GetMapping("/list")
     public TableDataInfo<SysLogininfor> list(SysLogininfor logininfor, PageQuery pageQuery) {
         return logininforService.selectPageLogininforList(logininfor, pageQuery);
     }
 
-    @ApiOperation("瀵煎嚭绯荤粺璁块棶璁板綍鍒楄〃")
+    @Operation(summary = "瀵煎嚭绯荤粺璁块棶璁板綍鍒楄〃")
     @Log(title = "鐧诲綍鏃ュ織", businessType = BusinessType.EXPORT)
     @SaCheckPermission("monitor:logininfor:export")
     @PostMapping("/export")
@@ -49,7 +49,7 @@
         ExcelUtil.exportExcel(list, "鐧诲綍鏃ュ織", SysLogininfor.class, response);
     }
 
-    @ApiOperation("鍒犻櫎绯荤粺璁块棶璁板綍")
+    @Operation(summary = "鍒犻櫎绯荤粺璁块棶璁板綍")
     @SaCheckPermission("monitor:logininfor:remove")
     @Log(title = "鐧诲綍鏃ュ織", businessType = BusinessType.DELETE)
     @DeleteMapping("/{infoIds}")
@@ -57,7 +57,7 @@
         return toAjax(logininforService.deleteLogininforByIds(infoIds));
     }
 
-    @ApiOperation("娓呯┖绯荤粺璁块棶璁板綍")
+    @Operation(summary = "娓呯┖绯荤粺璁块棶璁板綍")
     @SaCheckPermission("monitor:logininfor:remove")
     @Log(title = "鐧诲綍鏃ュ織", businessType = BusinessType.CLEAN)
     @DeleteMapping("/clean")
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 8145bc6..290c6e4 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
@@ -3,15 +3,15 @@
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.domain.SysOperLog;
 import com.ruoyi.system.service.ISysOperLogService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+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 +25,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "鎿嶄綔鏃ュ織璁板綍", tags = {"鎿嶄綔鏃ュ織璁板綍绠$悊"})
+@Tag(name ="鎿嶄綔鏃ュ織璁板綍", description = "鎿嶄綔鏃ュ織璁板綍绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/monitor/operlog")
@@ -33,14 +33,14 @@
 
     private final ISysOperLogService operLogService;
 
-    @ApiOperation("鏌ヨ鎿嶄綔鏃ュ織璁板綍鍒楄〃")
+    @Operation(summary = "鏌ヨ鎿嶄綔鏃ュ織璁板綍鍒楄〃")
     @SaCheckPermission("monitor:operlog:list")
     @GetMapping("/list")
     public TableDataInfo<SysOperLog> list(SysOperLog operLog, PageQuery pageQuery) {
         return operLogService.selectPageOperLogList(operLog, pageQuery);
     }
 
-    @ApiOperation("瀵煎嚭鎿嶄綔鏃ュ織璁板綍鍒楄〃")
+    @Operation(summary = "瀵煎嚭鎿嶄綔鏃ュ織璁板綍鍒楄〃")
     @Log(title = "鎿嶄綔鏃ュ織", businessType = BusinessType.EXPORT)
     @SaCheckPermission("monitor:operlog:export")
     @PostMapping("/export")
@@ -49,7 +49,7 @@
         ExcelUtil.exportExcel(list, "鎿嶄綔鏃ュ織", SysOperLog.class, response);
     }
 
-    @ApiOperation("鍒犻櫎鎿嶄綔鏃ュ織璁板綍")
+    @Operation(summary = "鍒犻櫎鎿嶄綔鏃ュ織璁板綍")
     @Log(title = "鎿嶄綔鏃ュ織", businessType = BusinessType.DELETE)
     @SaCheckPermission("monitor:operlog:remove")
     @DeleteMapping("/{operIds}")
@@ -57,7 +57,7 @@
         return toAjax(operLogService.deleteOperLogByIds(operIds));
     }
 
-    @ApiOperation("娓呯┖鎿嶄綔鏃ュ織璁板綍")
+    @Operation(summary = "娓呯┖鎿嶄綔鏃ュ織璁板綍")
     @Log(title = "鎿嶄綔鏃ュ織", businessType = BusinessType.CLEAN)
     @SaCheckPermission("monitor:operlog:remove")
     @DeleteMapping("/clean")
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 a1ea81f..d5bcc13 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
@@ -15,8 +15,8 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.redis.RedisUtils;
 import com.ruoyi.system.domain.SysUserOnline;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
@@ -29,13 +29,13 @@
  *
  * @author Lion Li
  */
-@Api(value = "鍦ㄧ嚎鐢ㄦ埛鐩戞帶", tags = {"鍦ㄧ嚎鐢ㄦ埛鐩戞帶绠$悊"})
+@Tag(name ="鍦ㄧ嚎鐢ㄦ埛鐩戞帶", description = "鍦ㄧ嚎鐢ㄦ埛鐩戞帶绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/monitor/online")
 public class SysUserOnlineController extends BaseController {
 
-    @ApiOperation("鍦ㄧ嚎鐢ㄦ埛鍒楄〃")
+    @Operation(summary = "鍦ㄧ嚎鐢ㄦ埛鍒楄〃")
     @SaCheckPermission("monitor:online:list")
     @GetMapping("/list")
     public TableDataInfo<SysUserOnline> list(String ipaddr, String userName) {
@@ -73,7 +73,7 @@
     /**
      * 寮洪��鐢ㄦ埛
      */
-    @ApiOperation("寮洪��鐢ㄦ埛")
+    @Operation(summary = "寮洪��鐢ㄦ埛")
     @SaCheckPermission("monitor:online:forceLogout")
     @Log(title = "鍦ㄧ嚎鐢ㄦ埛", businessType = BusinessType.FORCE)
     @DeleteMapping("/{tokenId}")
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 2dcb843..ce73439 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
@@ -4,16 +4,16 @@
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.domain.SysConfig;
 import com.ruoyi.system.service.ISysConfigService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+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 +27,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "鍙傛暟閰嶇疆鎺у埗鍣�", tags = {"鍙傛暟閰嶇疆绠$悊"})
+@Tag(name ="鍙傛暟閰嶇疆鎺у埗鍣�", description = "鍙傛暟閰嶇疆绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/config")
@@ -38,14 +38,14 @@
     /**
      * 鑾峰彇鍙傛暟閰嶇疆鍒楄〃
      */
-    @ApiOperation("鑾峰彇鍙傛暟閰嶇疆鍒楄〃")
+    @Operation(summary = "鑾峰彇鍙傛暟閰嶇疆鍒楄〃")
     @SaCheckPermission("system:config:list")
     @GetMapping("/list")
     public TableDataInfo<SysConfig> list(SysConfig config, PageQuery pageQuery) {
         return configService.selectPageConfigList(config, pageQuery);
     }
 
-    @ApiOperation("瀵煎嚭鍙傛暟閰嶇疆鍒楄〃")
+    @Operation(summary = "瀵煎嚭鍙傛暟閰嶇疆鍒楄〃")
     @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:config:export")
     @PostMapping("/export")
@@ -57,26 +57,26 @@
     /**
      * 鏍规嵁鍙傛暟缂栧彿鑾峰彇璇︾粏淇℃伅
      */
-    @ApiOperation("鏍规嵁鍙傛暟缂栧彿鑾峰彇璇︾粏淇℃伅")
+    @Operation(summary = "鏍规嵁鍙傛暟缂栧彿鑾峰彇璇︾粏淇℃伅")
     @SaCheckPermission("system:config:query")
     @GetMapping(value = "/{configId}")
-    public R<SysConfig> getInfo(@ApiParam("鍙傛暟ID") @PathVariable Long configId) {
+    public R<SysConfig> getInfo(@Parameter(name = "鍙傛暟ID") @PathVariable Long configId) {
         return R.ok(configService.selectConfigById(configId));
     }
 
     /**
      * 鏍规嵁鍙傛暟閿悕鏌ヨ鍙傛暟鍊�
      */
-    @ApiOperation("鏍规嵁鍙傛暟閿悕鏌ヨ鍙傛暟鍊�")
+    @Operation(summary = "鏍规嵁鍙傛暟閿悕鏌ヨ鍙傛暟鍊�")
     @GetMapping(value = "/configKey/{configKey}")
-    public R<Void> getConfigKey(@ApiParam("鍙傛暟Key") @PathVariable String configKey) {
+    public R<Void> getConfigKey(@Parameter(name = "鍙傛暟Key") @PathVariable String configKey) {
         return R.ok(configService.selectConfigByKey(configKey));
     }
 
     /**
      * 鏂板鍙傛暟閰嶇疆
      */
-    @ApiOperation("鏂板鍙傛暟閰嶇疆")
+    @Operation(summary = "鏂板鍙傛暟閰嶇疆")
     @SaCheckPermission("system:config:add")
     @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
@@ -90,7 +90,7 @@
     /**
      * 淇敼鍙傛暟閰嶇疆
      */
-    @ApiOperation("淇敼鍙傛暟閰嶇疆")
+    @Operation(summary = "淇敼鍙傛暟閰嶇疆")
     @SaCheckPermission("system:config:edit")
     @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -104,7 +104,7 @@
     /**
      * 鏍规嵁鍙傛暟閿悕淇敼鍙傛暟閰嶇疆
      */
-    @ApiOperation("鏍规嵁鍙傛暟閿悕淇敼鍙傛暟閰嶇疆")
+    @Operation(summary = "鏍规嵁鍙傛暟閿悕淇敼鍙傛暟閰嶇疆")
     @SaCheckPermission("system:config:edit")
     @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping("/updateByKey")
@@ -115,11 +115,11 @@
     /**
      * 鍒犻櫎鍙傛暟閰嶇疆
      */
-    @ApiOperation("鍒犻櫎鍙傛暟閰嶇疆")
+    @Operation(summary = "鍒犻櫎鍙傛暟閰嶇疆")
     @SaCheckPermission("system:config:remove")
     @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.DELETE)
     @DeleteMapping("/{configIds}")
-    public R<Void> remove(@ApiParam("鍙傛暟ID涓�") @PathVariable Long[] configIds) {
+    public R<Void> remove(@Parameter(name = "鍙傛暟ID涓�") @PathVariable Long[] configIds) {
         configService.deleteConfigByIds(configIds);
         return R.ok();
     }
@@ -127,7 +127,7 @@
     /**
      * 鍒锋柊鍙傛暟缂撳瓨
      */
-    @ApiOperation("鍒锋柊鍙傛暟缂撳瓨")
+    @Operation(summary = "鍒锋柊鍙傛暟缂撳瓨")
     @SaCheckPermission("system:config:remove")
     @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.CLEAN)
     @DeleteMapping("/refreshCache")
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 475cdb7..e99e330 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
@@ -11,9 +11,9 @@
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.service.ISysDeptService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -28,7 +28,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "閮ㄩ棬鎺у埗鍣�", tags = {"閮ㄩ棬绠$悊"})
+@Tag(name ="閮ㄩ棬鎺у埗鍣�", description = "閮ㄩ棬绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/dept")
@@ -39,7 +39,7 @@
     /**
      * 鑾峰彇閮ㄩ棬鍒楄〃
      */
-    @ApiOperation("鑾峰彇閮ㄩ棬鍒楄〃")
+    @Operation(summary = "鑾峰彇閮ㄩ棬鍒楄〃")
     @SaCheckPermission("system:dept:list")
     @GetMapping("/list")
     public R<List<SysDept>> list(SysDept dept) {
@@ -50,10 +50,10 @@
     /**
      * 鏌ヨ閮ㄩ棬鍒楄〃锛堟帓闄よ妭鐐癸級
      */
-    @ApiOperation("鏌ヨ閮ㄩ棬鍒楄〃锛堟帓闄よ妭鐐癸級")
+    @Operation(summary = "鏌ヨ閮ㄩ棬鍒楄〃锛堟帓闄よ妭鐐癸級")
     @SaCheckPermission("system:dept:list")
     @GetMapping("/list/exclude/{deptId}")
-    public R<List<SysDept>> excludeChild(@ApiParam("閮ㄩ棬ID") @PathVariable(value = "deptId", required = false) Long deptId) {
+    public R<List<SysDept>> excludeChild(@Parameter(name = "閮ㄩ棬ID") @PathVariable(value = "deptId", required = false) Long deptId) {
         List<SysDept> depts = deptService.selectDeptList(new SysDept());
         depts.removeIf(d -> d.getDeptId().equals(deptId)
             || ArrayUtil.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""));
@@ -63,10 +63,10 @@
     /**
      * 鏍规嵁閮ㄩ棬缂栧彿鑾峰彇璇︾粏淇℃伅
      */
-    @ApiOperation("鏍规嵁閮ㄩ棬缂栧彿鑾峰彇璇︾粏淇℃伅")
+    @Operation(summary = "鏍规嵁閮ㄩ棬缂栧彿鑾峰彇璇︾粏淇℃伅")
     @SaCheckPermission("system:dept:query")
     @GetMapping(value = "/{deptId}")
-    public R<SysDept> getInfo(@ApiParam("閮ㄩ棬ID") @PathVariable Long deptId) {
+    public R<SysDept> getInfo(@Parameter(name = "閮ㄩ棬ID") @PathVariable Long deptId) {
         deptService.checkDeptDataScope(deptId);
         return R.ok(deptService.selectDeptById(deptId));
     }
@@ -74,7 +74,7 @@
     /**
      * 鑾峰彇閮ㄩ棬涓嬫媺鏍戝垪琛�
      */
-    @ApiOperation("鑾峰彇閮ㄩ棬涓嬫媺鏍戝垪琛�")
+    @Operation(summary = "鑾峰彇閮ㄩ棬涓嬫媺鏍戝垪琛�")
     @GetMapping("/treeselect")
     public R<List<Tree<Long>>> treeselect(SysDept dept) {
         List<SysDept> depts = deptService.selectDeptList(dept);
@@ -84,9 +84,9 @@
     /**
      * 鍔犺浇瀵瑰簲瑙掕壊閮ㄩ棬鍒楄〃鏍�
      */
-    @ApiOperation("鍔犺浇瀵瑰簲瑙掕壊閮ㄩ棬鍒楄〃鏍�")
+    @Operation(summary = "鍔犺浇瀵瑰簲瑙掕壊閮ㄩ棬鍒楄〃鏍�")
     @GetMapping(value = "/roleDeptTreeselect/{roleId}")
-    public R<Map<String, Object>> roleDeptTreeselect(@ApiParam("瑙掕壊ID") @PathVariable("roleId") Long roleId) {
+    public R<Map<String, Object>> roleDeptTreeselect(@Parameter(name = "瑙掕壊ID") @PathVariable("roleId") Long roleId) {
         List<SysDept> depts = deptService.selectDeptList(new SysDept());
         Map<String, Object> ajax = new HashMap<>();
         ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId));
@@ -97,7 +97,7 @@
     /**
      * 鏂板閮ㄩ棬
      */
-    @ApiOperation("鏂板閮ㄩ棬")
+    @Operation(summary = "鏂板閮ㄩ棬")
     @SaCheckPermission("system:dept:add")
     @Log(title = "閮ㄩ棬绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
@@ -111,7 +111,7 @@
     /**
      * 淇敼閮ㄩ棬
      */
-    @ApiOperation("淇敼閮ㄩ棬")
+    @Operation(summary = "淇敼閮ㄩ棬")
     @SaCheckPermission("system:dept:edit")
     @Log(title = "閮ㄩ棬绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -132,11 +132,11 @@
     /**
      * 鍒犻櫎閮ㄩ棬
      */
-    @ApiOperation("鍒犻櫎閮ㄩ棬")
+    @Operation(summary = "鍒犻櫎閮ㄩ棬")
     @SaCheckPermission("system:dept:remove")
     @Log(title = "閮ㄩ棬绠$悊", businessType = BusinessType.DELETE)
     @DeleteMapping("/{deptId}")
-    public R<Void> remove(@ApiParam("閮ㄩ棬ID涓�") @PathVariable Long deptId) {
+    public R<Void> remove(@Parameter(name = "閮ㄩ棬ID涓�") @PathVariable Long deptId) {
         if (deptService.hasChildByDeptId(deptId)) {
             return R.fail("瀛樺湪涓嬬骇閮ㄩ棬,涓嶅厑璁稿垹闄�");
         }
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 060e980..a6ef304 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
@@ -4,17 +4,17 @@
 import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.page.TableDataInfo;
 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.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -29,7 +29,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "鏁版嵁瀛楀吀淇℃伅鎺у埗鍣�", tags = {"鏁版嵁瀛楀吀淇℃伅绠$悊"})
+@Tag(name ="鏁版嵁瀛楀吀淇℃伅鎺у埗鍣�", description = "鏁版嵁瀛楀吀淇℃伅绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/dict/data")
@@ -38,14 +38,14 @@
     private final ISysDictDataService dictDataService;
     private final ISysDictTypeService dictTypeService;
 
-    @ApiOperation("鏌ヨ瀛楀吀鏁版嵁鍒楄〃")
+    @Operation(summary = "鏌ヨ瀛楀吀鏁版嵁鍒楄〃")
     @SaCheckPermission("system:dict:list")
     @GetMapping("/list")
     public TableDataInfo<SysDictData> list(SysDictData dictData, PageQuery pageQuery) {
         return dictDataService.selectPageDictDataList(dictData, pageQuery);
     }
 
-    @ApiOperation("瀵煎嚭瀛楀吀鏁版嵁鍒楄〃")
+    @Operation(summary = "瀵煎嚭瀛楀吀鏁版嵁鍒楄〃")
     @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:dict:export")
     @PostMapping("/export")
@@ -57,19 +57,19 @@
     /**
      * 鏌ヨ瀛楀吀鏁版嵁璇︾粏
      */
-    @ApiOperation("鏌ヨ瀛楀吀鏁版嵁璇︾粏")
+    @Operation(summary = "鏌ヨ瀛楀吀鏁版嵁璇︾粏")
     @SaCheckPermission("system:dict:query")
     @GetMapping(value = "/{dictCode}")
-    public R<SysDictData> getInfo(@ApiParam("瀛楀吀code") @PathVariable Long dictCode) {
+    public R<SysDictData> getInfo(@Parameter(name = "瀛楀吀code") @PathVariable Long dictCode) {
         return R.ok(dictDataService.selectDictDataById(dictCode));
     }
 
     /**
      * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁淇℃伅
      */
-    @ApiOperation("鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁淇℃伅")
+    @Operation(summary = "鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁淇℃伅")
     @GetMapping(value = "/type/{dictType}")
-    public R<List<SysDictData>> dictType(@ApiParam("瀛楀吀绫诲瀷") @PathVariable String dictType) {
+    public R<List<SysDictData>> dictType(@Parameter(name = "瀛楀吀绫诲瀷") @PathVariable String dictType) {
         List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
         if (ObjectUtil.isNull(data)) {
             data = new ArrayList<>();
@@ -80,7 +80,7 @@
     /**
      * 鏂板瀛楀吀绫诲瀷
      */
-    @ApiOperation("鏂板瀛楀吀绫诲瀷")
+    @Operation(summary = "鏂板瀛楀吀绫诲瀷")
     @SaCheckPermission("system:dict:add")
     @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.INSERT)
     @PostMapping
@@ -91,7 +91,7 @@
     /**
      * 淇敼淇濆瓨瀛楀吀绫诲瀷
      */
-    @ApiOperation("淇敼淇濆瓨瀛楀吀绫诲瀷")
+    @Operation(summary = "淇敼淇濆瓨瀛楀吀绫诲瀷")
     @SaCheckPermission("system:dict:edit")
     @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -102,11 +102,11 @@
     /**
      * 鍒犻櫎瀛楀吀绫诲瀷
      */
-    @ApiOperation("鍒犻櫎瀛楀吀绫诲瀷")
+    @Operation(summary = "鍒犻櫎瀛楀吀绫诲瀷")
     @SaCheckPermission("system:dict:remove")
     @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.DELETE)
     @DeleteMapping("/{dictCodes}")
-    public R<Void> remove(@ApiParam("瀛楀吀code涓�") @PathVariable Long[] dictCodes) {
+    public R<Void> remove(@Parameter(name = "瀛楀吀code涓�") @PathVariable Long[] dictCodes) {
         dictDataService.deleteDictDataByIds(dictCodes);
         return R.ok();
     }
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 c8ebd49..b5b28f2 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
@@ -4,16 +4,16 @@
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.entity.SysDictType;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.service.ISysDictTypeService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+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 +27,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "鏁版嵁瀛楀吀淇℃伅鎺у埗鍣�", tags = {"鏁版嵁瀛楀吀淇℃伅绠$悊"})
+@Tag(name ="鏁版嵁瀛楀吀淇℃伅鎺у埗鍣�", description = "鏁版嵁瀛楀吀淇℃伅绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/dict/type")
@@ -35,14 +35,14 @@
 
     private final ISysDictTypeService dictTypeService;
 
-    @ApiOperation("鏌ヨ瀛楀吀绫诲瀷鍒楄〃")
+    @Operation(summary = "鏌ヨ瀛楀吀绫诲瀷鍒楄〃")
     @SaCheckPermission("system:dict:list")
     @GetMapping("/list")
     public TableDataInfo<SysDictType> list(SysDictType dictType, PageQuery pageQuery) {
         return dictTypeService.selectPageDictTypeList(dictType, pageQuery);
     }
 
-    @ApiOperation("瀵煎嚭瀛楀吀绫诲瀷鍒楄〃")
+    @Operation(summary = "瀵煎嚭瀛楀吀绫诲瀷鍒楄〃")
     @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:dict:export")
     @PostMapping("/export")
@@ -54,17 +54,17 @@
     /**
      * 鏌ヨ瀛楀吀绫诲瀷璇︾粏
      */
-    @ApiOperation("鏌ヨ瀛楀吀绫诲瀷璇︾粏")
+    @Operation(summary = "鏌ヨ瀛楀吀绫诲瀷璇︾粏")
     @SaCheckPermission("system:dict:query")
     @GetMapping(value = "/{dictId}")
-    public R<SysDictType> getInfo(@ApiParam("瀛楀吀ID") @PathVariable Long dictId) {
+    public R<SysDictType> getInfo(@Parameter(name = "瀛楀吀ID") @PathVariable Long dictId) {
         return R.ok(dictTypeService.selectDictTypeById(dictId));
     }
 
     /**
      * 鏂板瀛楀吀绫诲瀷
      */
-    @ApiOperation("鏂板瀛楀吀绫诲瀷")
+    @Operation(summary = "鏂板瀛楀吀绫诲瀷")
     @SaCheckPermission("system:dict:add")
     @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.INSERT)
     @PostMapping
@@ -78,7 +78,7 @@
     /**
      * 淇敼瀛楀吀绫诲瀷
      */
-    @ApiOperation("淇敼瀛楀吀绫诲瀷")
+    @Operation(summary = "淇敼瀛楀吀绫诲瀷")
     @SaCheckPermission("system:dict:edit")
     @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -92,11 +92,11 @@
     /**
      * 鍒犻櫎瀛楀吀绫诲瀷
      */
-    @ApiOperation("鍒犻櫎瀛楀吀绫诲瀷")
+    @Operation(summary = "鍒犻櫎瀛楀吀绫诲瀷")
     @SaCheckPermission("system:dict:remove")
     @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.DELETE)
     @DeleteMapping("/{dictIds}")
-    public R<Void> remove(@ApiParam("瀛楀吀ID涓�") @PathVariable Long[] dictIds) {
+    public R<Void> remove(@Parameter(name = "瀛楀吀ID涓�") @PathVariable Long[] dictIds) {
         dictTypeService.deleteDictTypeByIds(dictIds);
         return R.ok();
     }
@@ -104,7 +104,7 @@
     /**
      * 鍒锋柊瀛楀吀缂撳瓨
      */
-    @ApiOperation("鍒锋柊瀛楀吀缂撳瓨")
+    @Operation(summary = "鍒锋柊瀛楀吀缂撳瓨")
     @SaCheckPermission("system:dict:remove")
     @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.CLEAN)
     @DeleteMapping("/refreshCache")
@@ -116,7 +116,7 @@
     /**
      * 鑾峰彇瀛楀吀閫夋嫨妗嗗垪琛�
      */
-    @ApiOperation("鑾峰彇瀛楀吀閫夋嫨妗嗗垪琛�")
+    @Operation(summary = "鑾峰彇瀛楀吀閫夋嫨妗嗗垪琛�")
     @GetMapping("/optionselect")
     public R<List<SysDictType>> optionselect() {
         List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
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 c688919..db2c7ae 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
@@ -2,8 +2,8 @@
 
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.utils.StringUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -13,7 +13,7 @@
  *
  * @author Lion Li
  */
-@Api(value = "棣栭〉鎺у埗鍣�", tags = {"棣栭〉绠$悊"})
+@Tag(name ="棣栭〉鎺у埗鍣�", description = "棣栭〉绠$悊")
 @RequiredArgsConstructor
 @RestController
 public class SysIndexController {
@@ -26,7 +26,7 @@
     /**
      * 璁块棶棣栭〉锛屾彁绀鸿
      */
-    @ApiOperation("璁块棶棣栭〉锛屾彁绀鸿")
+    @Operation(summary = "璁块棶棣栭〉锛屾彁绀鸿")
     @GetMapping("/")
     public String index() {
         return StringUtils.format("娆㈣繋浣跨敤{}鍚庡彴绠$悊妗嗘灦锛屽綋鍓嶇増鏈細v{}锛岃閫氳繃鍓嶇鍦板潃璁块棶銆�", ruoyiConfig.getName(), ruoyiConfig.getVersion());
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 9c40578..d0b3152 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
@@ -13,8 +13,8 @@
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.service.SysLoginService;
 import com.ruoyi.system.service.SysPermissionService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -34,7 +34,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "鐧诲綍楠岃瘉鎺у埗鍣�", tags = {"鐧诲綍楠岃瘉绠$悊"})
+@Tag(name ="鐧诲綍楠岃瘉鎺у埗鍣�", description = "鐧诲綍楠岃瘉绠$悊")
 @RequiredArgsConstructor
 @RestController
 public class SysLoginController {
@@ -51,7 +51,7 @@
      * @return 缁撴灉
      */
     @Anonymous
-    @ApiOperation("鐧诲綍鏂规硶")
+    @Operation(summary = "鐧诲綍鏂规硶")
     @PostMapping("/login")
     public R<Map<String, Object>> login(@Validated @RequestBody LoginBody loginBody) {
         Map<String, Object> ajax = new HashMap<>();
@@ -69,7 +69,7 @@
      * @return 缁撴灉
      */
     @Anonymous
-    @ApiOperation("鐭俊鐧诲綍(绀轰緥)")
+    @Operation(summary = "鐭俊鐧诲綍(绀轰緥)")
     @PostMapping("/smsLogin")
     public R<Map<String, Object>> smsLogin(@Validated @RequestBody SmsLoginBody smsLoginBody) {
         Map<String, Object> ajax = new HashMap<>();
@@ -86,7 +86,7 @@
      * @return 缁撴灉
      */
     @Anonymous
-    @ApiOperation("灏忕▼搴忕櫥褰�(绀轰緥)")
+    @Operation(summary = "灏忕▼搴忕櫥褰�(绀轰緥)")
     @PostMapping("/xcxLogin")
     public R<Map<String, Object>> xcxLogin(@NotBlank(message = "{xcx.code.not.blank}") String xcxCode) {
         Map<String, Object> ajax = new HashMap<>();
@@ -97,7 +97,7 @@
     }
 
     @Anonymous
-    @ApiOperation("鐧诲嚭鏂规硶")
+    @Operation(summary = "鐧诲嚭鏂规硶")
     @PostMapping("/logout")
     public R<Void> logout() {
         loginService.logout();
@@ -109,7 +109,7 @@
      *
      * @return 鐢ㄦ埛淇℃伅
      */
-    @ApiOperation("鑾峰彇鐢ㄦ埛淇℃伅")
+    @Operation(summary = "鑾峰彇鐢ㄦ埛淇℃伅")
     @GetMapping("getInfo")
     public R<Map<String, Object>> getInfo() {
         SysUser user = userService.selectUserById(LoginHelper.getUserId());
@@ -129,7 +129,7 @@
      *
      * @return 璺敱淇℃伅
      */
-    @ApiOperation("鑾峰彇璺敱淇℃伅")
+    @Operation(summary = "鑾峰彇璺敱淇℃伅")
     @GetMapping("getRouters")
     public R<List<RouterVo>> getRouters() {
         Long userId = LoginHelper.getUserId();
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 030363e..40c03d1 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
@@ -10,9 +10,9 @@
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.service.ISysMenuService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+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 +27,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "鑿滃崟淇℃伅鎺у埗鍣�", tags = {"鑿滃崟淇℃伅绠$悊"})
+@Tag(name ="鑿滃崟淇℃伅鎺у埗鍣�", description = "鑿滃崟淇℃伅绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/menu")
@@ -38,7 +38,7 @@
     /**
      * 鑾峰彇鑿滃崟鍒楄〃
      */
-    @ApiOperation("鑾峰彇鑿滃崟鍒楄〃")
+    @Operation(summary = "鑾峰彇鑿滃崟鍒楄〃")
     @SaCheckPermission("system:menu:list")
     @GetMapping("/list")
     public R<List<SysMenu>> list(SysMenu menu) {
@@ -49,17 +49,17 @@
     /**
      * 鏍规嵁鑿滃崟缂栧彿鑾峰彇璇︾粏淇℃伅
      */
-    @ApiOperation("鏍规嵁鑿滃崟缂栧彿鑾峰彇璇︾粏淇℃伅")
+    @Operation(summary = "鏍规嵁鑿滃崟缂栧彿鑾峰彇璇︾粏淇℃伅")
     @SaCheckPermission("system:menu:query")
     @GetMapping(value = "/{menuId}")
-    public R<SysMenu> getInfo(@ApiParam("鑿滃崟ID") @PathVariable Long menuId) {
+    public R<SysMenu> getInfo(@Parameter(name = "鑿滃崟ID") @PathVariable Long menuId) {
         return R.ok(menuService.selectMenuById(menuId));
     }
 
     /**
      * 鑾峰彇鑿滃崟涓嬫媺鏍戝垪琛�
      */
-    @ApiOperation("鑾峰彇鑿滃崟涓嬫媺鏍戝垪琛�")
+    @Operation(summary = "鑾峰彇鑿滃崟涓嬫媺鏍戝垪琛�")
     @GetMapping("/treeselect")
     public R<List<Tree<Long>>> treeselect(SysMenu menu) {
         List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
@@ -69,9 +69,9 @@
     /**
      * 鍔犺浇瀵瑰簲瑙掕壊鑿滃崟鍒楄〃鏍�
      */
-    @ApiOperation("鍔犺浇瀵瑰簲瑙掕壊鑿滃崟鍒楄〃鏍�")
+    @Operation(summary = "鍔犺浇瀵瑰簲瑙掕壊鑿滃崟鍒楄〃鏍�")
     @GetMapping(value = "/roleMenuTreeselect/{roleId}")
-    public R<Map<String, Object>> roleMenuTreeselect(@ApiParam("瑙掕壊ID") @PathVariable("roleId") Long roleId) {
+    public R<Map<String, Object>> roleMenuTreeselect(@Parameter(name = "瑙掕壊ID") @PathVariable("roleId") Long roleId) {
         List<SysMenu> menus = menuService.selectMenuList(getUserId());
         Map<String, Object> ajax = new HashMap<>();
         ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId));
@@ -82,7 +82,7 @@
     /**
      * 鏂板鑿滃崟
      */
-    @ApiOperation("鏂板鑿滃崟")
+    @Operation(summary = "鏂板鑿滃崟")
     @SaCheckPermission("system:menu:add")
     @Log(title = "鑿滃崟绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
@@ -98,7 +98,7 @@
     /**
      * 淇敼鑿滃崟
      */
-    @ApiOperation("淇敼鑿滃崟")
+    @Operation(summary = "淇敼鑿滃崟")
     @SaCheckPermission("system:menu:edit")
     @Log(title = "鑿滃崟绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -116,11 +116,11 @@
     /**
      * 鍒犻櫎鑿滃崟
      */
-    @ApiOperation("鍒犻櫎鑿滃崟")
+    @Operation(summary = "鍒犻櫎鑿滃崟")
     @SaCheckPermission("system:menu:remove")
     @Log(title = "鑿滃崟绠$悊", businessType = BusinessType.DELETE)
     @DeleteMapping("/{menuId}")
-    public R<Void> remove(@ApiParam("鑿滃崟ID") @PathVariable("menuId") Long menuId) {
+    public R<Void> remove(@Parameter(name = "鑿滃崟ID") @PathVariable("menuId") Long menuId) {
         if (menuService.hasChildByMenuId(menuId)) {
             return R.fail("瀛樺湪瀛愯彍鍗�,涓嶅厑璁稿垹闄�");
         }
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 6febd3e..de804cf 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
@@ -3,15 +3,15 @@
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.system.domain.SysNotice;
 import com.ruoyi.system.service.ISysNoticeService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -22,7 +22,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "鍏憡淇℃伅鎺у埗鍣�", tags = {"鍏憡淇℃伅绠$悊"})
+@Tag(name ="鍏憡淇℃伅鎺у埗鍣�", description = "鍏憡淇℃伅绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/notice")
@@ -33,7 +33,7 @@
     /**
      * 鑾峰彇閫氱煡鍏憡鍒楄〃
      */
-    @ApiOperation("鑾峰彇閫氱煡鍏憡鍒楄〃")
+    @Operation(summary = "鑾峰彇閫氱煡鍏憡鍒楄〃")
     @SaCheckPermission("system:notice:list")
     @GetMapping("/list")
     public TableDataInfo<SysNotice> list(SysNotice notice, PageQuery pageQuery) {
@@ -43,17 +43,17 @@
     /**
      * 鏍规嵁閫氱煡鍏憡缂栧彿鑾峰彇璇︾粏淇℃伅
      */
-    @ApiOperation("鏍规嵁閫氱煡鍏憡缂栧彿鑾峰彇璇︾粏淇℃伅")
+    @Operation(summary = "鏍规嵁閫氱煡鍏憡缂栧彿鑾峰彇璇︾粏淇℃伅")
     @SaCheckPermission("system:notice:query")
     @GetMapping(value = "/{noticeId}")
-    public R<SysNotice> getInfo(@ApiParam("鍏憡ID") @PathVariable Long noticeId) {
+    public R<SysNotice> getInfo(@Parameter(name = "鍏憡ID") @PathVariable Long noticeId) {
         return R.ok(noticeService.selectNoticeById(noticeId));
     }
 
     /**
      * 鏂板閫氱煡鍏憡
      */
-    @ApiOperation("鏂板閫氱煡鍏憡")
+    @Operation(summary = "鏂板閫氱煡鍏憡")
     @SaCheckPermission("system:notice:add")
     @Log(title = "閫氱煡鍏憡", businessType = BusinessType.INSERT)
     @PostMapping
@@ -64,7 +64,7 @@
     /**
      * 淇敼閫氱煡鍏憡
      */
-    @ApiOperation("淇敼閫氱煡鍏憡")
+    @Operation(summary = "淇敼閫氱煡鍏憡")
     @SaCheckPermission("system:notice:edit")
     @Log(title = "閫氱煡鍏憡", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -75,11 +75,11 @@
     /**
      * 鍒犻櫎閫氱煡鍏憡
      */
-    @ApiOperation("鍒犻櫎閫氱煡鍏憡")
+    @Operation(summary = "鍒犻櫎閫氱煡鍏憡")
     @SaCheckPermission("system:notice:remove")
     @Log(title = "閫氱煡鍏憡", businessType = BusinessType.DELETE)
     @DeleteMapping("/{noticeIds}")
-    public R<Void> remove(@ApiParam("鍏憡ID涓�") @PathVariable Long[] noticeIds) {
+    public R<Void> remove(@Parameter(name = "鍏憡ID涓�") @PathVariable Long[] noticeIds) {
         return toAjax(noticeService.deleteNoticeByIds(noticeIds));
     }
 }
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 cf2fd11..bb27c84 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
@@ -4,8 +4,8 @@
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
@@ -14,9 +14,9 @@
 import com.ruoyi.system.domain.bo.SysOssConfigBo;
 import com.ruoyi.system.domain.vo.SysOssConfigVo;
 import com.ruoyi.system.service.ISysOssConfigService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -33,7 +33,7 @@
  * @date 2021-08-13
  */
 @Validated
-@Api(value = "瀵硅薄瀛樺偍閰嶇疆鎺у埗鍣�", tags = {"瀵硅薄瀛樺偍閰嶇疆绠$悊"})
+@Tag(name ="瀵硅薄瀛樺偍閰嶇疆鎺у埗鍣�", description = "瀵硅薄瀛樺偍閰嶇疆绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/oss/config")
@@ -44,7 +44,7 @@
     /**
      * 鏌ヨ瀵硅薄瀛樺偍閰嶇疆鍒楄〃
      */
-    @ApiOperation("鏌ヨ瀵硅薄瀛樺偍閰嶇疆鍒楄〃")
+    @Operation(summary = "鏌ヨ瀵硅薄瀛樺偍閰嶇疆鍒楄〃")
     @SaCheckPermission("system:oss:list")
     @GetMapping("/list")
     public TableDataInfo<SysOssConfigVo> list(@Validated(QueryGroup.class) SysOssConfigBo bo, PageQuery pageQuery) {
@@ -54,10 +54,10 @@
     /**
      * 鑾峰彇瀵硅薄瀛樺偍閰嶇疆璇︾粏淇℃伅
      */
-    @ApiOperation("鑾峰彇瀵硅薄瀛樺偍閰嶇疆璇︾粏淇℃伅")
+    @Operation(summary = "鑾峰彇瀵硅薄瀛樺偍閰嶇疆璇︾粏淇℃伅")
     @SaCheckPermission("system:oss:query")
     @GetMapping("/{ossConfigId}")
-    public R<SysOssConfigVo> getInfo(@ApiParam("OSS閰嶇疆ID")
+    public R<SysOssConfigVo> getInfo(@Parameter(name = "OSS閰嶇疆ID")
                                               @NotNull(message = "涓婚敭涓嶈兘涓虹┖")
                                               @PathVariable("ossConfigId") Long ossConfigId) {
         return R.ok(iSysOssConfigService.queryById(ossConfigId));
@@ -66,7 +66,7 @@
     /**
      * 鏂板瀵硅薄瀛樺偍閰嶇疆
      */
-    @ApiOperation("鏂板瀵硅薄瀛樺偍閰嶇疆")
+    @Operation(summary = "鏂板瀵硅薄瀛樺偍閰嶇疆")
     @SaCheckPermission("system:oss:add")
     @Log(title = "瀵硅薄瀛樺偍閰嶇疆", businessType = BusinessType.INSERT)
     @RepeatSubmit()
@@ -78,7 +78,7 @@
     /**
      * 淇敼瀵硅薄瀛樺偍閰嶇疆
      */
-    @ApiOperation("淇敼瀵硅薄瀛樺偍閰嶇疆")
+    @Operation(summary = "淇敼瀵硅薄瀛樺偍閰嶇疆")
     @SaCheckPermission("system:oss:edit")
     @Log(title = "瀵硅薄瀛樺偍閰嶇疆", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
@@ -90,11 +90,11 @@
     /**
      * 鍒犻櫎瀵硅薄瀛樺偍閰嶇疆
      */
-    @ApiOperation("鍒犻櫎瀵硅薄瀛樺偍閰嶇疆")
+    @Operation(summary = "鍒犻櫎瀵硅薄瀛樺偍閰嶇疆")
     @SaCheckPermission("system:oss:remove")
     @Log(title = "瀵硅薄瀛樺偍閰嶇疆", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ossConfigIds}")
-    public R<Void> remove(@ApiParam("OSS閰嶇疆ID涓�")
+    public R<Void> remove(@Parameter(name = "OSS閰嶇疆ID涓�")
                                    @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
                                    @PathVariable Long[] ossConfigIds) {
         return toAjax(iSysOssConfigService.deleteWithValidByIds(Arrays.asList(ossConfigIds), true) ? 1 : 0);
@@ -103,7 +103,7 @@
     /**
      * 鐘舵�佷慨鏀�
      */
-    @ApiOperation("鐘舵�佷慨鏀�")
+    @Operation(summary = "鐘舵�佷慨鏀�")
     @SaCheckPermission("system:oss:edit")
     @Log(title = "瀵硅薄瀛樺偍鐘舵�佷慨鏀�", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
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 d4e52ac..e71ef9f 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
@@ -19,7 +19,11 @@
 import com.ruoyi.system.domain.bo.SysOssBo;
 import com.ruoyi.system.domain.vo.SysOssVo;
 import com.ruoyi.system.service.ISysOssService;
-import io.swagger.annotations.*;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.MediaType;
 import org.springframework.validation.annotation.Validated;
@@ -28,7 +32,6 @@
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotEmpty;
-import java.io.File;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -41,7 +44,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "瀵硅薄瀛樺偍鎺у埗鍣�", tags = {"瀵硅薄瀛樺偍绠$悊"})
+@Tag(name ="瀵硅薄瀛樺偍鎺у埗鍣�", description = "瀵硅薄瀛樺偍绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/oss")
@@ -52,7 +55,7 @@
     /**
      * 鏌ヨOSS瀵硅薄瀛樺偍鍒楄〃
      */
-    @ApiOperation("鏌ヨOSS瀵硅薄瀛樺偍鍒楄〃")
+    @Operation(summary = "鏌ヨOSS瀵硅薄瀛樺偍鍒楄〃")
     @SaCheckPermission("system:oss:list")
     @GetMapping("/list")
     public TableDataInfo<SysOssVo> list(@Validated(QueryGroup.class) SysOssBo bo, PageQuery pageQuery) {
@@ -62,10 +65,10 @@
     /**
      * 鏌ヨOSS瀵硅薄鍩轰簬id涓�
      */
-    @ApiOperation("鏌ヨOSS瀵硅薄鍩轰簬ID")
+    @Operation(summary = "鏌ヨOSS瀵硅薄鍩轰簬ID")
     @SaCheckPermission("system:oss:list")
     @GetMapping("/listByIds/{ossIds}")
-    public R<List<SysOssVo>> listByIds(@ApiParam("OSS瀵硅薄ID涓�")
+    public R<List<SysOssVo>> listByIds(@Parameter(name = "OSS瀵硅薄ID涓�")
                                      @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
                                      @PathVariable Long[] ossIds) {
         List<SysOssVo> list = iSysOssService.listByIds(Arrays.asList(ossIds));
@@ -75,9 +78,9 @@
     /**
      * 涓婁紶OSS瀵硅薄瀛樺偍
      */
-    @ApiOperation("涓婁紶OSS瀵硅薄瀛樺偍")
-    @ApiImplicitParams({
-        @ApiImplicitParam(name = "file", value = "鏂囦欢", paramType = "query", dataTypeClass = File.class, required = true)
+    @Operation(summary = "涓婁紶OSS瀵硅薄瀛樺偍")
+    @Parameters({
+        @Parameter(name = "file", description = "鏂囦欢", in = ParameterIn.QUERY, required = true)
     })
     @SaCheckPermission("system:oss:upload")
     @Log(title = "OSS瀵硅薄瀛樺偍", businessType = BusinessType.INSERT)
@@ -94,10 +97,10 @@
         return R.ok(map);
     }
 
-    @ApiOperation("涓嬭浇OSS瀵硅薄瀛樺偍")
+    @Operation(summary = "涓嬭浇OSS瀵硅薄瀛樺偍")
     @SaCheckPermission("system:oss:download")
     @GetMapping("/download/{ossId}")
-    public void download(@ApiParam("OSS瀵硅薄ID") @PathVariable Long ossId, HttpServletResponse response) throws IOException {
+    public void download(@Parameter(name = "OSS瀵硅薄ID") @PathVariable Long ossId, HttpServletResponse response) throws IOException {
         SysOss sysOss = iSysOssService.getById(ossId);
         if (ObjectUtil.isNull(sysOss)) {
             throw new ServiceException("鏂囦欢鏁版嵁涓嶅瓨鍦�!");
@@ -121,11 +124,11 @@
     /**
      * 鍒犻櫎OSS瀵硅薄瀛樺偍
      */
-    @ApiOperation("鍒犻櫎OSS瀵硅薄瀛樺偍")
+    @Operation(summary = "鍒犻櫎OSS瀵硅薄瀛樺偍")
     @SaCheckPermission("system:oss:remove")
     @Log(title = "OSS瀵硅薄瀛樺偍", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ossIds}")
-    public R<Void> remove(@ApiParam("OSS瀵硅薄ID涓�")
+    public R<Void> remove(@Parameter(name = "OSS瀵硅薄ID涓�")
                                    @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
                                    @PathVariable Long[] ossIds) {
         return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true) ? 1 : 0);
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 7e08698..559e6ca 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
@@ -4,16 +4,16 @@
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.page.TableDataInfo;
 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.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+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 +27,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "宀椾綅淇℃伅鎺у埗鍣�", tags = {"宀椾綅淇℃伅绠$悊"})
+@Tag(name ="宀椾綅淇℃伅鎺у埗鍣�", description = "宀椾綅淇℃伅绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/post")
@@ -38,14 +38,14 @@
     /**
      * 鑾峰彇宀椾綅鍒楄〃
      */
-    @ApiOperation("鑾峰彇宀椾綅鍒楄〃")
+    @Operation(summary = "鑾峰彇宀椾綅鍒楄〃")
     @SaCheckPermission("system:post:list")
     @GetMapping("/list")
     public TableDataInfo<SysPost> list(SysPost post, PageQuery pageQuery) {
         return postService.selectPagePostList(post, pageQuery);
     }
 
-    @ApiOperation("瀵煎嚭宀椾綅鍒楄〃")
+    @Operation(summary = "瀵煎嚭宀椾綅鍒楄〃")
     @Log(title = "宀椾綅绠$悊", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:post:export")
     @PostMapping("/export")
@@ -57,17 +57,17 @@
     /**
      * 鏍规嵁宀椾綅缂栧彿鑾峰彇璇︾粏淇℃伅
      */
-    @ApiOperation("鏍规嵁宀椾綅缂栧彿鑾峰彇璇︾粏淇℃伅")
+    @Operation(summary = "鏍规嵁宀椾綅缂栧彿鑾峰彇璇︾粏淇℃伅")
     @SaCheckPermission("system:post:query")
     @GetMapping(value = "/{postId}")
-    public R<SysPost> getInfo(@ApiParam("宀椾綅ID") @PathVariable Long postId) {
+    public R<SysPost> getInfo(@Parameter(name = "宀椾綅ID") @PathVariable Long postId) {
         return R.ok(postService.selectPostById(postId));
     }
 
     /**
      * 鏂板宀椾綅
      */
-    @ApiOperation("鏂板宀椾綅")
+    @Operation(summary = "鏂板宀椾綅")
     @SaCheckPermission("system:post:add")
     @Log(title = "宀椾綅绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
@@ -83,7 +83,7 @@
     /**
      * 淇敼宀椾綅
      */
-    @ApiOperation("淇敼宀椾綅")
+    @Operation(summary = "淇敼宀椾綅")
     @SaCheckPermission("system:post:edit")
     @Log(title = "宀椾綅绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -99,18 +99,18 @@
     /**
      * 鍒犻櫎宀椾綅
      */
-    @ApiOperation("鍒犻櫎宀椾綅")
+    @Operation(summary = "鍒犻櫎宀椾綅")
     @SaCheckPermission("system:post:remove")
     @Log(title = "宀椾綅绠$悊", businessType = BusinessType.DELETE)
     @DeleteMapping("/{postIds}")
-    public R<Void> remove(@ApiParam("宀椾綅ID涓�") @PathVariable Long[] postIds) {
+    public R<Void> remove(@Parameter(name = "宀椾綅ID涓�") @PathVariable Long[] postIds) {
         return toAjax(postService.deletePostByIds(postIds));
     }
 
     /**
      * 鑾峰彇宀椾綅閫夋嫨妗嗗垪琛�
      */
-    @ApiOperation("鑾峰彇宀椾綅閫夋嫨妗嗗垪琛�")
+    @Operation(summary = "鑾峰彇宀椾綅閫夋嫨妗嗗垪琛�")
     @GetMapping("/optionselect")
     public R<List<SysPost>> optionselect() {
         List<SysPost> posts = postService.selectPostAll();
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 22b506f..0710e8b 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
@@ -14,16 +14,16 @@
 import com.ruoyi.system.domain.SysOss;
 import com.ruoyi.system.service.ISysOssService;
 import com.ruoyi.system.service.ISysUserService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.File;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
@@ -34,7 +34,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "涓汉淇℃伅鎺у埗鍣�", tags = {"涓汉淇℃伅绠$悊"})
+@Tag(name ="涓汉淇℃伅鎺у埗鍣�", description = "涓汉淇℃伅绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/user/profile")
@@ -46,7 +46,7 @@
     /**
      * 涓汉淇℃伅
      */
-    @ApiOperation("涓汉淇℃伅")
+    @Operation(summary = "涓汉淇℃伅")
     @GetMapping
     public R<Map<String, Object>> profile() {
         SysUser user = userService.selectUserById(getUserId());
@@ -60,7 +60,7 @@
     /**
      * 淇敼鐢ㄦ埛
      */
-    @ApiOperation("淇敼鐢ㄦ埛")
+    @Operation(summary = "淇敼鐢ㄦ埛")
     @Log(title = "涓汉淇℃伅", businessType = BusinessType.UPDATE)
     @PutMapping
     public R<Void> updateProfile(@RequestBody SysUser user) {
@@ -84,10 +84,10 @@
     /**
      * 閲嶇疆瀵嗙爜
      */
-    @ApiOperation("閲嶇疆瀵嗙爜")
-    @ApiImplicitParams({
-        @ApiImplicitParam(name = "oldPassword", value = "鏃у瘑鐮�", paramType = "query", dataTypeClass = String.class),
-        @ApiImplicitParam(name = "newPassword", value = "鏂板瘑鐮�", paramType = "query", dataTypeClass = String.class)
+    @Operation(summary = "閲嶇疆瀵嗙爜")
+    @Parameters({
+        @Parameter(name = "oldPassword", description = "鏃у瘑鐮�", in = ParameterIn.QUERY),
+        @Parameter(name = "newPassword", description = "鏂板瘑鐮�", in = ParameterIn.QUERY)
     })
     @Log(title = "涓汉淇℃伅", businessType = BusinessType.UPDATE)
     @PutMapping("/updatePwd")
@@ -111,9 +111,9 @@
     /**
      * 澶村儚涓婁紶
      */
-    @ApiOperation("澶村儚涓婁紶")
-    @ApiImplicitParams({
-        @ApiImplicitParam(name = "avatarfile", value = "鐢ㄦ埛澶村儚", paramType = "query", dataTypeClass = File.class, required = true)
+    @Operation(summary = "澶村儚涓婁紶")
+    @Parameters({
+        @Parameter(name = "avatarfile", description = "鐢ㄦ埛澶村儚", in = ParameterIn.QUERY, required = true)
     })
     @Log(title = "鐢ㄦ埛澶村儚", businessType = BusinessType.UPDATE)
     @PostMapping("/avatar")
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 b8cedd6..5e90ebd 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
@@ -6,8 +6,8 @@
 import com.ruoyi.common.core.domain.model.RegisterBody;
 import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.SysRegisterService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -20,7 +20,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "娉ㄥ唽楠岃瘉鎺у埗鍣�", tags = {"娉ㄥ唽楠岃瘉绠$悊"})
+@Tag(name ="娉ㄥ唽楠岃瘉鎺у埗鍣�", description = "娉ㄥ唽楠岃瘉绠$悊")
 @RequiredArgsConstructor
 @RestController
 public class SysRegisterController extends BaseController {
@@ -29,7 +29,7 @@
     private final ISysConfigService configService;
 
     @Anonymous
-    @ApiOperation("鐢ㄦ埛娉ㄥ唽")
+    @Operation(summary = "鐢ㄦ埛娉ㄥ唽")
     @PostMapping("/register")
     public R<Void> register(@Validated @RequestBody RegisterBody user) {
         if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) {
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 9b7cb26..967635e 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
@@ -5,8 +5,8 @@
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
@@ -18,7 +18,11 @@
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.service.SysPermissionService;
-import io.swagger.annotations.*;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -32,7 +36,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "瑙掕壊淇℃伅鎺у埗鍣�", tags = {"瑙掕壊淇℃伅绠$悊"})
+@Tag(name ="瑙掕壊淇℃伅鎺у埗鍣�", description = "瑙掕壊淇℃伅绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/role")
@@ -42,14 +46,14 @@
     private final ISysUserService userService;
     private final SysPermissionService permissionService;
 
-    @ApiOperation("鏌ヨ瑙掕壊淇℃伅鍒楄〃")
+    @Operation(summary = "鏌ヨ瑙掕壊淇℃伅鍒楄〃")
     @SaCheckPermission("system:role:list")
     @GetMapping("/list")
     public TableDataInfo<SysRole> list(SysRole role, PageQuery pageQuery) {
         return roleService.selectPageRoleList(role, pageQuery);
     }
 
-    @ApiOperation("瀵煎嚭瑙掕壊淇℃伅鍒楄〃")
+    @Operation(summary = "瀵煎嚭瑙掕壊淇℃伅鍒楄〃")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:role:export")
     @PostMapping("/export")
@@ -61,10 +65,10 @@
     /**
      * 鏍规嵁瑙掕壊缂栧彿鑾峰彇璇︾粏淇℃伅
      */
-    @ApiOperation("鏍规嵁瑙掕壊缂栧彿鑾峰彇璇︾粏淇℃伅")
+    @Operation(summary = "鏍规嵁瑙掕壊缂栧彿鑾峰彇璇︾粏淇℃伅")
     @SaCheckPermission("system:role:query")
     @GetMapping(value = "/{roleId}")
-    public R<SysRole> getInfo(@ApiParam("瑙掕壊ID") @PathVariable Long roleId) {
+    public R<SysRole> getInfo(@Parameter(name = "瑙掕壊ID") @PathVariable Long roleId) {
         roleService.checkRoleDataScope(roleId);
         return R.ok(roleService.selectRoleById(roleId));
     }
@@ -72,7 +76,7 @@
     /**
      * 鏂板瑙掕壊
      */
-    @ApiOperation("鏂板瑙掕壊")
+    @Operation(summary = "鏂板瑙掕壊")
     @SaCheckPermission("system:role:add")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
@@ -89,7 +93,7 @@
     /**
      * 淇敼淇濆瓨瑙掕壊
      */
-    @ApiOperation("淇敼淇濆瓨瑙掕壊")
+    @Operation(summary = "淇敼淇濆瓨瑙掕壊")
     @SaCheckPermission("system:role:edit")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -118,7 +122,7 @@
     /**
      * 淇敼淇濆瓨鏁版嵁鏉冮檺
      */
-    @ApiOperation("淇敼淇濆瓨鏁版嵁鏉冮檺")
+    @Operation(summary = "淇敼淇濆瓨鏁版嵁鏉冮檺")
     @SaCheckPermission("system:role:edit")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping("/dataScope")
@@ -131,7 +135,7 @@
     /**
      * 鐘舵�佷慨鏀�
      */
-    @ApiOperation("鐘舵�佷慨鏀�")
+    @Operation(summary = "鐘舵�佷慨鏀�")
     @SaCheckPermission("system:role:edit")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
@@ -144,18 +148,18 @@
     /**
      * 鍒犻櫎瑙掕壊
      */
-    @ApiOperation("鍒犻櫎瑙掕壊")
+    @Operation(summary = "鍒犻櫎瑙掕壊")
     @SaCheckPermission("system:role:remove")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.DELETE)
     @DeleteMapping("/{roleIds}")
-    public R<Void> remove(@ApiParam("瑙掕壊ID涓�") @PathVariable Long[] roleIds) {
+    public R<Void> remove(@Parameter(name = "瑙掕壊ID涓�") @PathVariable Long[] roleIds) {
         return toAjax(roleService.deleteRoleByIds(roleIds));
     }
 
     /**
      * 鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛�
      */
-    @ApiOperation("鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛�")
+    @Operation(summary = "鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛�")
     @SaCheckPermission("system:role:query")
     @GetMapping("/optionselect")
     public R<List<SysRole>> optionselect() {
@@ -165,7 +169,7 @@
     /**
      * 鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛�
      */
-    @ApiOperation("鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛�")
+    @Operation(summary = "鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛�")
     @SaCheckPermission("system:role:list")
     @GetMapping("/authUser/allocatedList")
     public TableDataInfo<SysUser> allocatedList(SysUser user, PageQuery pageQuery) {
@@ -175,7 +179,7 @@
     /**
      * 鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛�
      */
-    @ApiOperation("鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛�")
+    @Operation(summary = "鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛�")
     @SaCheckPermission("system:role:list")
     @GetMapping("/authUser/unallocatedList")
     public TableDataInfo<SysUser> unallocatedList(SysUser user, PageQuery pageQuery) {
@@ -185,7 +189,7 @@
     /**
      * 鍙栨秷鎺堟潈鐢ㄦ埛
      */
-    @ApiOperation("鍙栨秷鎺堟潈鐢ㄦ埛")
+    @Operation(summary = "鍙栨秷鎺堟潈鐢ㄦ埛")
     @SaCheckPermission("system:role:edit")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.GRANT)
     @PutMapping("/authUser/cancel")
@@ -196,10 +200,10 @@
     /**
      * 鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛
      */
-    @ApiOperation("鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛")
-    @ApiImplicitParams({
-        @ApiImplicitParam(name = "roleId", value = "瑙掕壊ID", paramType = "query", dataTypeClass = String.class),
-        @ApiImplicitParam(name = "userIds", value = "鐢ㄦ埛ID涓�", paramType = "query", dataTypeClass = String.class)
+    @Operation(summary = "鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛")
+    @Parameters({
+        @Parameter(name = "roleId", description = "瑙掕壊ID", in = ParameterIn.QUERY),
+        @Parameter(name = "userIds", description = "鐢ㄦ埛ID涓�", in = ParameterIn.QUERY)
     })
     @SaCheckPermission("system:role:edit")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.GRANT)
@@ -211,10 +215,10 @@
     /**
      * 鎵归噺閫夋嫨鐢ㄦ埛鎺堟潈
      */
-    @ApiOperation("鎵归噺閫夋嫨鐢ㄦ埛鎺堟潈")
-    @ApiImplicitParams({
-        @ApiImplicitParam(name = "roleId", value = "瑙掕壊ID", paramType = "query", dataTypeClass = String.class),
-        @ApiImplicitParam(name = "userIds", value = "鐢ㄦ埛ID涓�", paramType = "query", dataTypeClass = String.class)
+    @Operation(summary = "鎵归噺閫夋嫨鐢ㄦ埛鎺堟潈")
+    @Parameters({
+        @Parameter(name = "roleId", description = "瑙掕壊ID", in = ParameterIn.QUERY),
+        @Parameter(name = "userIds", description = "鐢ㄦ埛ID涓�", in = ParameterIn.QUERY)
     })
     @SaCheckPermission("system:role:edit")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.GRANT)
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 e618655..f40c659 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
@@ -26,7 +26,11 @@
 import com.ruoyi.system.service.ISysPostService;
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserService;
-import io.swagger.annotations.*;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -44,7 +48,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "鐢ㄦ埛淇℃伅鎺у埗鍣�", tags = {"鐢ㄦ埛淇℃伅绠$悊"})
+@Tag(name ="鐢ㄦ埛淇℃伅鎺у埗鍣�", description = "鐢ㄦ埛淇℃伅绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/user")
@@ -57,14 +61,14 @@
     /**
      * 鑾峰彇鐢ㄦ埛鍒楄〃
      */
-    @ApiOperation("鑾峰彇鐢ㄦ埛鍒楄〃")
+    @Operation(summary = "鑾峰彇鐢ㄦ埛鍒楄〃")
     @SaCheckPermission("system:user:list")
     @GetMapping("/list")
     public TableDataInfo<SysUser> list(SysUser user, PageQuery pageQuery) {
         return userService.selectPageUserList(user, pageQuery);
     }
 
-    @ApiOperation("瀵煎嚭鐢ㄦ埛鍒楄〃")
+    @Operation(summary = "瀵煎嚭鐢ㄦ埛鍒楄〃")
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:user:export")
     @PostMapping("/export")
@@ -82,9 +86,9 @@
         ExcelUtil.exportExcel(listVo, "鐢ㄦ埛鏁版嵁", SysUserExportVo.class, response);
     }
 
-    @ApiOperation("瀵煎叆鐢ㄦ埛鍒楄〃")
-    @ApiImplicitParams({
-        @ApiImplicitParam(name = "file", value = "瀵煎叆鏂囦欢", dataType = "java.io.File", required = true),
+    @Operation(summary = "瀵煎叆鐢ㄦ埛鍒楄〃")
+    @Parameters({
+        @Parameter(name = "file", description = "瀵煎叆鏂囦欢", required = true),
     })
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.IMPORT)
     @SaCheckPermission("system:user:import")
@@ -94,7 +98,7 @@
         return R.ok(result.getAnalysis());
     }
 
-    @ApiOperation("涓嬭浇瀵煎叆妯℃澘")
+    @Operation(summary = "涓嬭浇瀵煎叆妯℃澘")
     @PostMapping("/importTemplate")
     public void importTemplate(HttpServletResponse response) {
         ExcelUtil.exportExcel(new ArrayList<>(), "鐢ㄦ埛鏁版嵁", SysUserImportVo.class, response);
@@ -103,10 +107,10 @@
     /**
      * 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅
      */
-    @ApiOperation("鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅")
+    @Operation(summary = "鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅")
     @SaCheckPermission("system:user:query")
     @GetMapping(value = {"/", "/{userId}"})
-    public R<Map<String, Object>> getInfo(@ApiParam("鐢ㄦ埛ID") @PathVariable(value = "userId", required = false) Long userId) {
+    public R<Map<String, Object>> getInfo(@Parameter(name = "鐢ㄦ埛ID") @PathVariable(value = "userId", required = false) Long userId) {
         userService.checkUserDataScope(userId);
         Map<String, Object> ajax = new HashMap<>();
         List<SysRole> roles = roleService.selectRoleAll();
@@ -124,7 +128,7 @@
     /**
      * 鏂板鐢ㄦ埛
      */
-    @ApiOperation("鏂板鐢ㄦ埛")
+    @Operation(summary = "鏂板鐢ㄦ埛")
     @SaCheckPermission("system:user:add")
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
@@ -145,7 +149,7 @@
     /**
      * 淇敼鐢ㄦ埛
      */
-    @ApiOperation("淇敼鐢ㄦ埛")
+    @Operation(summary = "淇敼鐢ㄦ埛")
     @SaCheckPermission("system:user:edit")
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -165,11 +169,11 @@
     /**
      * 鍒犻櫎鐢ㄦ埛
      */
-    @ApiOperation("鍒犻櫎鐢ㄦ埛")
+    @Operation(summary = "鍒犻櫎鐢ㄦ埛")
     @SaCheckPermission("system:user:remove")
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.DELETE)
     @DeleteMapping("/{userIds}")
-    public R<Void> remove(@ApiParam("瑙掕壊ID涓�") @PathVariable Long[] userIds) {
+    public R<Void> remove(@Parameter(name = "瑙掕壊ID涓�") @PathVariable Long[] userIds) {
         if (ArrayUtil.contains(userIds, getUserId())) {
             return R.fail("褰撳墠鐢ㄦ埛涓嶈兘鍒犻櫎");
         }
@@ -179,7 +183,7 @@
     /**
      * 閲嶇疆瀵嗙爜
      */
-    @ApiOperation("閲嶇疆瀵嗙爜")
+    @Operation(summary = "閲嶇疆瀵嗙爜")
     @SaCheckPermission("system:user:resetPwd")
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping("/resetPwd")
@@ -193,7 +197,7 @@
     /**
      * 鐘舵�佷慨鏀�
      */
-    @ApiOperation("鐘舵�佷慨鏀�")
+    @Operation(summary = "鐘舵�佷慨鏀�")
     @SaCheckPermission("system:user:edit")
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
@@ -206,10 +210,10 @@
     /**
      * 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鎺堟潈瑙掕壊
      */
-    @ApiOperation("鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鎺堟潈瑙掕壊")
+    @Operation(summary = "鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鎺堟潈瑙掕壊")
     @SaCheckPermission("system:user:query")
     @GetMapping("/authRole/{userId}")
-    public R<Map<String, Object>> authRole(@ApiParam("鐢ㄦ埛ID") @PathVariable("userId") Long userId) {
+    public R<Map<String, Object>> authRole(@Parameter(name = "鐢ㄦ埛ID") @PathVariable("userId") Long userId) {
         SysUser user = userService.selectUserById(userId);
         List<SysRole> roles = roleService.selectRolesByUserId(userId);
         Map<String, Object> ajax = new HashMap<>();
@@ -221,10 +225,10 @@
     /**
      * 鐢ㄦ埛鎺堟潈瑙掕壊
      */
-    @ApiOperation("鐢ㄦ埛鎺堟潈瑙掕壊")
-    @ApiImplicitParams({
-        @ApiImplicitParam(name = "userId", value = "鐢ㄦ埛Id", paramType = "query", dataTypeClass = String.class),
-        @ApiImplicitParam(name = "roleIds", value = "瑙掕壊ID涓�", paramType = "query", dataTypeClass = String.class)
+    @Operation(summary = "鐢ㄦ埛鎺堟潈瑙掕壊")
+    @Parameters({
+        @Parameter(name = "userId", description = "鐢ㄦ埛Id", in = ParameterIn.QUERY),
+        @Parameter(name = "roleIds", description = "瑙掕壊ID涓�", in = ParameterIn.QUERY)
     })
     @SaCheckPermission("system:user:edit")
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.GRANT)
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index ceaaf95..017b5df 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -126,9 +126,8 @@
     # swagger 鏂囨。閰嶇疆
     - /favicon.ico
     - /doc.html
-    - /swagger-resources/**
-    - /webjars/**
-    - /*/api-docs
+    - /swagger-ui/**
+    - /*/api-docs/**
     # druid 鐩戞帶閰嶇疆
     - /druid/**
     # actuator 鐩戞帶閰嶇疆
@@ -183,46 +182,45 @@
 swagger:
   # 鏄惁寮�鍚痵wagger
   enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-  # 鏍囬
-  title: '鏍囬锛�${ruoyi.name}鍚庡彴绠$悊绯荤粺_鎺ュ彛鏂囨。'
-  # 鎻忚堪
-  description: '鎻忚堪锛氱敤浜庣鐞嗛泦鍥㈡棗涓嬪叕鍙哥殑浜哄憳淇℃伅,鍏蜂綋鍖呮嫭XXX,XXX妯″潡...'
-  # 鐗堟湰
-  version: '鐗堟湰鍙�: ${ruoyi-vue-plus.version}'
-  # 浣滆�呬俊鎭�
-  contact:
-    name: Lion Li
-    email: crazylionli@163.com
-    url: https://gitee.com/JavaLionLi/RuoYi-Vue-Plus
-  groups:
-    - name: 1.婕旂ず妗堜緥
-      basePackage: com.ruoyi.demo
-    - name: 2.绯荤粺妯″潡
-      basePackage: com.ruoyi.web
-    - name: 3.浠g爜鐢熸垚妯″潡
-      basePackage: com.ruoyi.generator
+  info:
+    # 鏍囬
+    title: '鏍囬锛�${ruoyi.name}鍚庡彴绠$悊绯荤粺_鎺ュ彛鏂囨。'
+    # 鎻忚堪
+    description: '鎻忚堪锛氱敤浜庣鐞嗛泦鍥㈡棗涓嬪叕鍙哥殑浜哄憳淇℃伅,鍏蜂綋鍖呮嫭XXX,XXX妯″潡...'
+    # 鐗堟湰
+    version: '鐗堟湰鍙�: ${ruoyi-vue-plus.version}'
+    # 浣滆�呬俊鎭�
+    contact:
+      name: Lion Li
+      email: crazylionli@163.com
+      url: https://gitee.com/JavaLionLi/RuoYi-Vue-Plus
+  components:
+    # 閴存潈鏂瑰紡閰嶇疆
+    security-schemes:
+      apiKey:
+        type: APIKEY
+        in: HEADER
+        name: ${sa-token.token-name}
 
-knife4j:
-  # 鏄惁寮�鍚疜nife4j澧炲己妯″紡
-  enable: true
-  # 鏄惁寮�鍚敓浜х幆澧冧繚鎶ょ瓥鐣�
-  production: @knife4j.production@
-  basic:
-    enable: true
-    username: ruoyi
-    password: 123456
-  # 鍓嶇Ui鐨勪釜鎬у寲閰嶇疆灞炴��
-  setting:
-    # 榛樿璇█
-    language: zh-CN
-    # 鏄惁鏄剧ずFooter
-    enableFooter: false
-    # 鏄惁寮�鍚姩鎬佸弬鏁拌皟璇曞姛鑳�
-    enableDynamicParameter: true
-    # 鏄惁鍦ㄦ瘡涓狣ebug璋冭瘯鏍忓悗鏄剧ず鍒锋柊鍙橀噺鎸夐挳
-    enableReloadCacheParameter: true
+springdoc:
+  swagger-ui:
+    # 淇敼Swagger UI璺緞
+    path: /doc.html
+    # 寮�鍚疭wagger UI鐣岄潰
+    enabled: true
+  api-docs:
+    # 淇敼api-docs璺緞
+    path: /v3/api-docs
+    # 寮�鍚痑pi-docs
+    enabled: true
+  #杩欓噷瀹氫箟浜嗕袱涓垎缁勶紝鍙畾涔夊涓紝涔熷彲浠ヤ笉瀹氫箟
+  group-configs:
+    - group: 婕旂ず妯″潡
+      packages-to-scan: com.ruoyi.demo
+    - group: 绯荤粺妯″潡
+      packages-to-scan: com.ruoyi.web
+    - group: 浠g爜鐢熸垚妯″潡
+      packages-to-scan: com.ruoyi.generator
 
 # 闃叉XSS鏀诲嚮
 xss:
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index 10fec54..e55dc50 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -126,13 +126,8 @@
         </dependency>
 
         <dependency>
-            <groupId>com.github.xiaoymin</groupId>
-            <artifactId>knife4j-spring-boot-starter</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-annotations</artifactId>
+            <groupId>org.springdoc</groupId>
+            <artifactId>springdoc-openapi-ui</artifactId>
         </dependency>
 
         <!--  鑷姩鐢熸垚YML閰嶇疆鍏宠仈JSON鏂囦欢  -->
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java
index d1ad296..1d12b4e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java
@@ -2,7 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -24,42 +24,42 @@
     /**
      * 鎼滅储鍊�
      */
-    @ApiModelProperty(value = "鎼滅储鍊�")
+    @Schema(name = "鎼滅储鍊�")
     @TableField(exist = false)
     private String searchValue;
 
     /**
      * 鍒涘缓鑰�
      */
-    @ApiModelProperty(value = "鍒涘缓鑰�")
+    @Schema(name = "鍒涘缓鑰�")
     @TableField(fill = FieldFill.INSERT)
     private String createBy;
 
     /**
      * 鍒涘缓鏃堕棿
      */
-    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @Schema(name = "鍒涘缓鏃堕棿")
     @TableField(fill = FieldFill.INSERT)
     private Date createTime;
 
     /**
      * 鏇存柊鑰�
      */
-    @ApiModelProperty(value = "鏇存柊鑰�")
+    @Schema(name = "鏇存柊鑰�")
     @TableField(fill = FieldFill.INSERT_UPDATE)
     private String updateBy;
 
     /**
      * 鏇存柊鏃堕棿
      */
-    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    @Schema(name = "鏇存柊鏃堕棿")
     @TableField(fill = FieldFill.INSERT_UPDATE)
     private Date updateTime;
 
     /**
      * 璇锋眰鍙傛暟
      */
-    @ApiModelProperty(value = "璇锋眰鍙傛暟")
+    @Schema(name = "璇锋眰鍙傛暟")
     @TableField(exist = false)
     private Map<String, Object> params = new HashMap<>();
 
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java
index 7a61237..533ca79 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java
@@ -5,7 +5,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.sql.SqlUtil;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -24,25 +24,25 @@
     /**
      * 鍒嗛〉澶у皬
      */
-    @ApiModelProperty("鍒嗛〉澶у皬")
+    @Schema(name = "鍒嗛〉澶у皬")
     private Integer pageSize;
 
     /**
      * 褰撳墠椤垫暟
      */
-    @ApiModelProperty("褰撳墠椤垫暟")
+    @Schema(name = "褰撳墠椤垫暟")
     private Integer pageNum;
 
     /**
      * 鎺掑簭鍒�
      */
-    @ApiModelProperty("鎺掑簭鍒�")
+    @Schema(name = "鎺掑簭鍒�")
     private String orderByColumn;
 
     /**
      * 鎺掑簭鐨勬柟鍚慸esc鎴栬�卆sc
      */
-    @ApiModelProperty(value = "鎺掑簭鐨勬柟鍚�", example = "asc,desc")
+    @Schema(name = "鎺掑簭鐨勬柟鍚�", example = "asc,desc")
     private String isAsc;
 
     /**
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java
index 7a24202..999974d 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java
@@ -1,7 +1,6 @@
 package com.ruoyi.common.core.domain;
 
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -14,7 +13,7 @@
  */
 @Data
 @NoArgsConstructor
-@ApiModel("璇锋眰鍝嶅簲瀵硅薄")
+@Schema(name = "璇锋眰鍝嶅簲瀵硅薄")
 public class R<T> implements Serializable {
     private static final long serialVersionUID = 1L;
 
@@ -28,13 +27,13 @@
      */
     public static final int FAIL = 500;
 
-    @ApiModelProperty("娑堟伅鐘舵�佺爜")
+    @Schema(name = "娑堟伅鐘舵�佺爜")
     private int code;
 
-    @ApiModelProperty("娑堟伅鍐呭")
+    @Schema(name = "娑堟伅鍐呭")
     private String msg;
 
-    @ApiModelProperty("鏁版嵁瀵硅薄")
+    @Schema(name = "鏁版嵁瀵硅薄")
     private T data;
 
     public static <T> R<T> ok() {
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java
index f44eacd..0d28291 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java
@@ -1,7 +1,7 @@
 package com.ruoyi.common.core.domain;
 
 import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -24,20 +24,20 @@
      * 鐖惰彍鍗曞悕绉�
      */
     @TableField(exist = false)
-    @ApiModelProperty(value = "鐖惰彍鍗曞悕绉�")
+    @Schema(name = "鐖惰彍鍗曞悕绉�")
     private String parentName;
 
     /**
      * 鐖惰彍鍗旾D
      */
-    @ApiModelProperty(value = "鐖惰彍鍗旾D")
+    @Schema(name = "鐖惰彍鍗旾D")
     private Long parentId;
 
     /**
      * 瀛愰儴闂�
      */
     @TableField(exist = false)
-    @ApiModelProperty(value = "瀛愰儴闂�")
+    @Schema(name = "瀛愰儴闂�")
     private List<T> children = new ArrayList<>();
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
index 2dc3bdc..fcf2e4a 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
@@ -4,8 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.domain.TreeEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -23,21 +22,21 @@
 @Data
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_dept")
-@ApiModel("閮ㄩ棬涓氬姟瀵硅薄")
+@Schema(name = "閮ㄩ棬涓氬姟瀵硅薄")
 public class SysDept extends TreeEntity<SysDept> {
     private static final long serialVersionUID = 1L;
 
     /**
      * 閮ㄩ棬ID
      */
-    @ApiModelProperty(value = "閮ㄩ棬id")
+    @Schema(name = "閮ㄩ棬id")
     @TableId(value = "dept_id")
     private Long deptId;
 
     /**
      * 閮ㄩ棬鍚嶇О
      */
-    @ApiModelProperty(value = "閮ㄩ棬鍚嶇О")
+    @Schema(name = "閮ㄩ棬鍚嶇О")
     @NotBlank(message = "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖")
     @Size(min = 0, max = 30, message = "閮ㄩ棬鍚嶇О闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
     private String deptName;
@@ -45,27 +44,27 @@
     /**
      * 鏄剧ず椤哄簭
      */
-    @ApiModelProperty(value = "鏄剧ず椤哄簭")
+    @Schema(name = "鏄剧ず椤哄簭")
     @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
     private Integer orderNum;
 
     /**
      * 璐熻矗浜�
      */
-    @ApiModelProperty(value = "璐熻矗浜�")
+    @Schema(name = "璐熻矗浜�")
     private String leader;
 
     /**
      * 鑱旂郴鐢佃瘽
      */
-    @ApiModelProperty(value = "鑱旂郴鐢佃瘽")
+    @Schema(name = "鑱旂郴鐢佃瘽")
     @Size(min = 0, max = 11, message = "鑱旂郴鐢佃瘽闀垮害涓嶈兘瓒呰繃11涓瓧绗�")
     private String phone;
 
     /**
      * 閭
      */
-    @ApiModelProperty(value = "閭")
+    @Schema(name = "閭")
     @Email(message = "閭鏍煎紡涓嶆纭�")
     @Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
     private String email;
@@ -73,20 +72,20 @@
     /**
      * 閮ㄩ棬鐘舵��:0姝e父,1鍋滅敤
      */
-    @ApiModelProperty(value = "閮ㄩ棬鐘舵��:0姝e父,1鍋滅敤")
+    @Schema(name = "閮ㄩ棬鐘舵��:0姝e父,1鍋滅敤")
     private String status;
 
     /**
      * 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�
      */
-    @ApiModelProperty(value = "鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�")
+    @Schema(name = "鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�")
     @TableLogic
     private String delFlag;
 
     /**
      * 绁栫骇鍒楄〃
      */
-    @ApiModelProperty(value = "绁栫骇鍒楄〃")
+    @Schema(name = "绁栫骇鍒楄〃")
     private String ancestors;
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
index c61c917..4b02138 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
@@ -8,8 +8,7 @@
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.convert.ExcelDictConvert;
 import com.ruoyi.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -26,13 +25,13 @@
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_dict_data")
 @ExcelIgnoreUnannotated
-@ApiModel("瀛楀吀鏁版嵁涓氬姟瀵硅薄")
+@Schema(name = "瀛楀吀鏁版嵁涓氬姟瀵硅薄")
 public class SysDictData extends BaseEntity {
 
     /**
      * 瀛楀吀缂栫爜
      */
-    @ApiModelProperty(value = "瀛楀吀缂栫爜")
+    @Schema(name = "瀛楀吀缂栫爜")
     @ExcelProperty(value = "瀛楀吀缂栫爜")
     @TableId(value = "dict_code")
     private Long dictCode;
@@ -40,14 +39,14 @@
     /**
      * 瀛楀吀鎺掑簭
      */
-    @ApiModelProperty(value = "瀛楀吀鎺掑簭")
+    @Schema(name = "瀛楀吀鎺掑簭")
     @ExcelProperty(value = "瀛楀吀鎺掑簭")
     private Integer dictSort;
 
     /**
      * 瀛楀吀鏍囩
      */
-    @ApiModelProperty(value = "瀛楀吀鏍囩")
+    @Schema(name = "瀛楀吀鏍囩")
     @ExcelProperty(value = "瀛楀吀鏍囩")
     @NotBlank(message = "瀛楀吀鏍囩涓嶈兘涓虹┖")
     @Size(min = 0, max = 100, message = "瀛楀吀鏍囩闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
@@ -56,7 +55,7 @@
     /**
      * 瀛楀吀閿��
      */
-    @ApiModelProperty(value = "瀛楀吀閿��")
+    @Schema(name = "瀛楀吀閿��")
     @ExcelProperty(value = "瀛楀吀閿��")
     @NotBlank(message = "瀛楀吀閿�间笉鑳戒负绌�")
     @Size(min = 0, max = 100, message = "瀛楀吀閿�奸暱搴︿笉鑳借秴杩�100涓瓧绗�")
@@ -65,7 +64,7 @@
     /**
      * 瀛楀吀绫诲瀷
      */
-    @ApiModelProperty(value = "瀛楀吀绫诲瀷")
+    @Schema(name = "瀛楀吀绫诲瀷")
     @ExcelProperty(value = "瀛楀吀绫诲瀷")
     @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖")
     @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
@@ -74,20 +73,20 @@
     /**
      * 鏍峰紡灞炴�э紙鍏朵粬鏍峰紡鎵╁睍锛�
      */
-    @ApiModelProperty(value = "鏍峰紡灞炴�э紙鍏朵粬鏍峰紡鎵╁睍锛�")
+    @Schema(name = "鏍峰紡灞炴�э紙鍏朵粬鏍峰紡鎵╁睍锛�")
     @Size(min = 0, max = 100, message = "鏍峰紡灞炴�ч暱搴︿笉鑳借秴杩�100涓瓧绗�")
     private String cssClass;
 
     /**
      * 琛ㄦ牸瀛楀吀鏍峰紡
      */
-    @ApiModelProperty(value = "琛ㄦ牸瀛楀吀鏍峰紡")
+    @Schema(name = "琛ㄦ牸瀛楀吀鏍峰紡")
     private String listClass;
 
     /**
      * 鏄惁榛樿锛圷鏄� N鍚︼級
      */
-    @ApiModelProperty(value = "鏄惁榛樿锛圷鏄� N鍚︼級")
+    @Schema(name = "鏄惁榛樿锛圷鏄� N鍚︼級")
     @ExcelProperty(value = "鏄惁榛樿", converter = ExcelDictConvert.class)
     @ExcelDictFormat(dictType = "sys_yes_no")
     private String isDefault;
@@ -95,7 +94,7 @@
     /**
      * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
      */
-    @ApiModelProperty(value = "鐘舵�侊紙0姝e父 1鍋滅敤锛�")
+    @Schema(name = "鐘舵�侊紙0姝e父 1鍋滅敤锛�")
     @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
     @ExcelDictFormat(dictType = "sys_normal_disable")
     private String status;
@@ -103,7 +102,7 @@
     /**
      * 澶囨敞
      */
-    @ApiModelProperty(value = "澶囨敞")
+    @Schema(name = "澶囨敞")
     private String remark;
 
     public boolean getDefault() {
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
index 942c2f9..095aba0 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
@@ -7,11 +7,9 @@
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.convert.ExcelDictConvert;
 import com.ruoyi.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.Pattern;
@@ -27,13 +25,13 @@
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_dict_type")
 @ExcelIgnoreUnannotated
-@ApiModel("瀛楀吀绫诲瀷涓氬姟瀵硅薄")
+@Schema(name = "瀛楀吀绫诲瀷涓氬姟瀵硅薄")
 public class SysDictType extends BaseEntity {
 
     /**
      * 瀛楀吀涓婚敭
      */
-    @ApiModelProperty(value = "瀛楀吀涓婚敭")
+    @Schema(name = "瀛楀吀涓婚敭")
     @ExcelProperty(value = "瀛楀吀涓婚敭")
     @TableId(value = "dict_id")
     private Long dictId;
@@ -41,7 +39,7 @@
     /**
      * 瀛楀吀鍚嶇О
      */
-    @ApiModelProperty(value = "瀛楀吀鍚嶇О")
+    @Schema(name = "瀛楀吀鍚嶇О")
     @ExcelProperty(value = "瀛楀吀鍚嶇О")
     @NotBlank(message = "瀛楀吀鍚嶇О涓嶈兘涓虹┖")
     @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷鍚嶇О闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
@@ -50,7 +48,7 @@
     /**
      * 瀛楀吀绫诲瀷
      */
-    @ApiModelProperty(value = "瀛楀吀绫诲瀷")
+    @Schema(name = "瀛楀吀绫诲瀷")
     @ExcelProperty(value = "瀛楀吀绫诲瀷")
     @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖")
     @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷绫诲瀷闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
@@ -60,7 +58,7 @@
     /**
      * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
      */
-    @ApiModelProperty(value = "鐘舵�侊紙0姝e父 1鍋滅敤锛�")
+    @Schema(name = "鐘舵�侊紙0姝e父 1鍋滅敤锛�")
     @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
     @ExcelDictFormat(dictType = "sys_normal_disable")
     private String status;
@@ -68,7 +66,7 @@
     /**
      * 澶囨敞
      */
-    @ApiModelProperty(value = "澶囨敞")
+    @Schema(name = "澶囨敞")
     private String remark;
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
index cf337fb..554bc3a 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
@@ -4,8 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.ruoyi.common.core.domain.TreeEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -22,20 +21,20 @@
 @Data
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_menu")
-@ApiModel("鑿滃崟鏉冮檺涓氬姟瀵硅薄")
+@Schema(name = "鑿滃崟鏉冮檺涓氬姟瀵硅薄")
 public class SysMenu extends TreeEntity<SysMenu> {
 
     /**
      * 鑿滃崟ID
      */
-    @ApiModelProperty(value = "鑿滃崟ID")
+    @Schema(name = "鑿滃崟ID")
     @TableId(value = "menu_id")
     private Long menuId;
 
     /**
      * 鑿滃崟鍚嶇О
      */
-    @ApiModelProperty(value = "鑿滃崟鍚嶇О")
+    @Schema(name = "鑿滃崟鍚嶇О")
     @NotBlank(message = "鑿滃崟鍚嶇О涓嶈兘涓虹┖")
     @Size(min = 0, max = 50, message = "鑿滃崟鍚嶇О闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
     private String menuName;
@@ -43,65 +42,65 @@
     /**
      * 鏄剧ず椤哄簭
      */
-    @ApiModelProperty(value = "鏄剧ず椤哄簭")
+    @Schema(name = "鏄剧ず椤哄簭")
     @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
     private Integer orderNum;
 
     /**
      * 璺敱鍦板潃
      */
-    @ApiModelProperty(value = "璺敱鍦板潃")
+    @Schema(name = "璺敱鍦板潃")
     @Size(min = 0, max = 200, message = "璺敱鍦板潃涓嶈兘瓒呰繃200涓瓧绗�")
     private String path;
 
     /**
      * 缁勪欢璺緞
      */
-    @ApiModelProperty(value = "缁勪欢璺緞")
+    @Schema(name = "缁勪欢璺緞")
     @Size(min = 0, max = 200, message = "缁勪欢璺緞涓嶈兘瓒呰繃255涓瓧绗�")
     private String component;
 
     /**
      * 璺敱鍙傛暟
      */
-    @ApiModelProperty(value = "璺敱鍙傛暟")
+    @Schema(name = "璺敱鍙傛暟")
     private String queryParam;
 
     /**
      * 鏄惁涓哄閾撅紙0鏄� 1鍚︼級
      */
-    @ApiModelProperty(value = "鏄惁涓哄閾撅紙0鏄� 1鍚︼級")
+    @Schema(name = "鏄惁涓哄閾撅紙0鏄� 1鍚︼級")
     private String isFrame;
 
     /**
      * 鏄惁缂撳瓨锛�0缂撳瓨 1涓嶇紦瀛橈級
      */
-    @ApiModelProperty(value = "鏄惁缂撳瓨锛�0缂撳瓨 1涓嶇紦瀛橈級")
+    @Schema(name = "鏄惁缂撳瓨锛�0缂撳瓨 1涓嶇紦瀛橈級")
     private String isCache;
 
     /**
      * 绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛�
      */
-    @ApiModelProperty(value = "绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛�")
+    @Schema(name = "绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛�")
     @NotBlank(message = "鑿滃崟绫诲瀷涓嶈兘涓虹┖")
     private String menuType;
 
     /**
      * 鏄剧ず鐘舵�侊紙0鏄剧ず 1闅愯棌锛�
      */
-    @ApiModelProperty(value = "鏄剧ず鐘舵�侊紙0鏄剧ず 1闅愯棌锛�")
+    @Schema(name = "鏄剧ず鐘舵�侊紙0鏄剧ず 1闅愯棌锛�")
     private String visible;
 
     /**
      * 鑿滃崟鐘舵�侊紙0鏄剧ず 1闅愯棌锛�
      */
-    @ApiModelProperty(value = "鑿滃崟鐘舵�侊紙0鏄剧ず 1闅愯棌锛�")
+    @Schema(name = "鑿滃崟鐘舵�侊紙0鏄剧ず 1闅愯棌锛�")
     private String status;
 
     /**
      * 鏉冮檺瀛楃涓�
      */
-    @ApiModelProperty(value = "鏉冮檺瀛楃涓�")
+    @Schema(name = "鏉冮檺瀛楃涓�")
     @JsonInclude(JsonInclude.Include.NON_NULL)
     @Size(min = 0, max = 100, message = "鏉冮檺鏍囪瘑闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
     private String perms;
@@ -109,13 +108,13 @@
     /**
      * 鑿滃崟鍥炬爣
      */
-    @ApiModelProperty(value = "鑿滃崟鍥炬爣")
+    @Schema(name = "鑿滃崟鍥炬爣")
     private String icon;
 
     /**
      * 澶囨敞
      */
-    @ApiModelProperty(value = "澶囨敞")
+    @Schema(name = "澶囨敞")
     private String remark;
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
index 8048157..3955a59 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
@@ -10,7 +10,7 @@
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.convert.ExcelDictConvert;
 import com.ruoyi.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -35,7 +35,7 @@
     /**
      * 瑙掕壊ID
      */
-    @ApiModelProperty(value = "瑙掕壊ID")
+    @Schema(name = "瑙掕壊ID")
     @ExcelProperty(value = "瑙掕壊搴忓彿")
     @TableId(value = "role_id")
     private Long roleId;
@@ -43,7 +43,7 @@
     /**
      * 瑙掕壊鍚嶇О
      */
-    @ApiModelProperty(value = "瑙掕壊鍚嶇О")
+    @Schema(name = "瑙掕壊鍚嶇О")
     @ExcelProperty(value = "瑙掕壊鍚嶇О")
     @NotBlank(message = "瑙掕壊鍚嶇О涓嶈兘涓虹┖")
     @Size(min = 0, max = 30, message = "瑙掕壊鍚嶇О闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
@@ -52,7 +52,7 @@
     /**
      * 瑙掕壊鏉冮檺
      */
-    @ApiModelProperty(value = "瑙掕壊鏉冮檺")
+    @Schema(name = "瑙掕壊鏉冮檺")
     @ExcelProperty(value = "瑙掕壊鏉冮檺")
     @NotBlank(message = "鏉冮檺瀛楃涓嶈兘涓虹┖")
     @Size(min = 0, max = 100, message = "鏉冮檺瀛楃闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
@@ -61,7 +61,7 @@
     /**
      * 瑙掕壊鎺掑簭
      */
-    @ApiModelProperty(value = "瑙掕壊鎺掑簭")
+    @Schema(name = "瑙掕壊鎺掑簭")
     @ExcelProperty(value = "瑙掕壊鎺掑簭")
     @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
     private Integer roleSort;
@@ -69,7 +69,7 @@
     /**
      * 鏁版嵁鑼冨洿锛�1锛氭墍鏈夋暟鎹潈闄愶紱2锛氳嚜瀹氫箟鏁版嵁鏉冮檺锛�3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺锛�4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄愶紱5锛氫粎鏈汉鏁版嵁鏉冮檺锛�
      */
-    @ApiModelProperty(value = "鏁版嵁鑼冨洿锛�1锛氭墍鏈夋暟鎹潈闄愶紱2锛氳嚜瀹氫箟鏁版嵁鏉冮檺锛�3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺锛�4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄愶紱5锛氫粎鏈汉鏁版嵁鏉冮檺锛�")
+    @Schema(name = "鏁版嵁鑼冨洿锛�1锛氭墍鏈夋暟鎹潈闄愶紱2锛氳嚜瀹氫箟鏁版嵁鏉冮檺锛�3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺锛�4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄愶紱5锛氫粎鏈汉鏁版嵁鏉冮檺锛�")
     @ExcelProperty(value = "鏁版嵁鑼冨洿", converter = ExcelDictConvert.class)
     @ExcelDictFormat(readConverterExp = "1=鎵�鏈夋暟鎹潈闄�,2=鑷畾涔夋暟鎹潈闄�,3=鏈儴闂ㄦ暟鎹潈闄�,4=鏈儴闂ㄥ強浠ヤ笅鏁版嵁鏉冮檺,5=浠呮湰浜烘暟鎹潈闄�")
     private String dataScope;
@@ -77,19 +77,19 @@
     /**
      * 鑿滃崟鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙 0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀猴級
      */
-    @ApiModelProperty(value = "鑿滃崟鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙 0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀猴級")
+    @Schema(name = "鑿滃崟鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙 0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀猴級")
     private Boolean menuCheckStrictly;
 
     /**
      * 閮ㄩ棬鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀� 锛�
      */
-    @ApiModelProperty(value = "閮ㄩ棬鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀� 锛�")
+    @Schema(name = "閮ㄩ棬鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀� 锛�")
     private Boolean deptCheckStrictly;
 
     /**
      * 瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�
      */
-    @ApiModelProperty(value = "瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�")
+    @Schema(name = "瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�")
     @ExcelProperty(value = "瑙掕壊鐘舵��", converter = ExcelDictConvert.class)
     @ExcelDictFormat(dictType = "sys_common_status")
     private String status;
@@ -97,34 +97,34 @@
     /**
      * 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�
      */
-    @ApiModelProperty(value = "鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�")
+    @Schema(name = "鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�")
     @TableLogic
     private String delFlag;
 
     /**
      * 澶囨敞
      */
-    @ApiModelProperty(value = "澶囨敞")
+    @Schema(name = "澶囨敞")
     private String remark;
 
     /**
      * 鐢ㄦ埛鏄惁瀛樺湪姝よ鑹叉爣璇� 榛樿涓嶅瓨鍦�
      */
-    @ApiModelProperty(value = "鐢ㄦ埛鏄惁瀛樺湪姝よ鑹叉爣璇� 榛樿涓嶅瓨鍦�")
+    @Schema(name = "鐢ㄦ埛鏄惁瀛樺湪姝よ鑹叉爣璇� 榛樿涓嶅瓨鍦�")
     @TableField(exist = false)
     private boolean flag = false;
 
     /**
      * 鑿滃崟缁�
      */
-    @ApiModelProperty(value = "鑿滃崟缁�")
+    @Schema(name = "鑿滃崟缁�")
     @TableField(exist = false)
     private Long[] menuIds;
 
     /**
      * 閮ㄩ棬缁勶紙鏁版嵁鏉冮檺锛�
      */
-    @ApiModelProperty(value = "閮ㄩ棬缁勶紙鏁版嵁鏉冮檺锛�")
+    @Schema(name = "閮ㄩ棬缁勶紙鏁版嵁鏉冮檺锛�")
     @TableField(exist = false)
     private Long[] deptIds;
 
@@ -132,7 +132,7 @@
         this.roleId = roleId;
     }
 
-    @ApiModelProperty(value = "鏄惁绠$悊鍛�")
+    @Schema(name = "鏄惁绠$悊鍛�")
     public boolean isAdmin() {
         return UserConstants.ADMIN_ID.equals(this.roleId);
     }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index 9aa75f7..3a35916 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -1,15 +1,12 @@
 package com.ruoyi.common.core.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ruoyi.common.annotation.Sensitive;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.common.enums.SensitiveStrategy;
 import com.ruoyi.common.xss.Xss;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -30,26 +27,26 @@
 @NoArgsConstructor
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_user")
-@ApiModel("鐢ㄦ埛淇℃伅涓氬姟瀵硅薄")
+@Schema(name = "鐢ㄦ埛淇℃伅涓氬姟瀵硅薄")
 public class SysUser extends BaseEntity {
 
     /**
      * 鐢ㄦ埛ID
      */
-    @ApiModelProperty(value = "鐢ㄦ埛ID")
+    @Schema(name = "鐢ㄦ埛ID")
     @TableId(value = "user_id")
     private Long userId;
 
     /**
      * 閮ㄩ棬ID
      */
-    @ApiModelProperty(value = "閮ㄩ棬ID")
+    @Schema(name = "閮ㄩ棬ID")
     private Long deptId;
 
     /**
      * 鐢ㄦ埛璐﹀彿
      */
-    @ApiModelProperty(value = "鐢ㄦ埛璐﹀彿")
+    @Schema(name = "鐢ㄦ埛璐﹀彿")
     @Xss(message = "鐢ㄦ埛璐﹀彿涓嶈兘鍖呭惈鑴氭湰瀛楃")
     @NotBlank(message = "鐢ㄦ埛璐﹀彿涓嶈兘涓虹┖")
     @Size(min = 0, max = 30, message = "鐢ㄦ埛璐﹀彿闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
@@ -58,7 +55,7 @@
     /**
      * 鐢ㄦ埛鏄电О
      */
-    @ApiModelProperty(value = "鐢ㄦ埛鏄电О")
+    @Schema(name = "鐢ㄦ埛鏄电О")
     @Xss(message = "鐢ㄦ埛鏄电О涓嶈兘鍖呭惈鑴氭湰瀛楃")
     @Size(min = 0, max = 30, message = "鐢ㄦ埛鏄电О闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
     private String nickName;
@@ -66,14 +63,14 @@
     /**
      * 鐢ㄦ埛绫诲瀷锛坰ys_user绯荤粺鐢ㄦ埛锛�
      */
-    @ApiModelProperty(value = "鐢ㄦ埛绫诲瀷")
+    @Schema(name = "鐢ㄦ埛绫诲瀷")
     private String userType;
 
     /**
      * 鐢ㄦ埛閭
      */
     @Sensitive(strategy = SensitiveStrategy.EMAIL)
-    @ApiModelProperty(value = "鐢ㄦ埛閭")
+    @Schema(name = "鐢ㄦ埛閭")
     @Email(message = "閭鏍煎紡涓嶆纭�")
     @Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
     private String email;
@@ -82,25 +79,25 @@
      * 鎵嬫満鍙风爜
      */
     @Sensitive(strategy = SensitiveStrategy.PHONE)
-    @ApiModelProperty(value = "鎵嬫満鍙风爜")
+    @Schema(name = "鎵嬫満鍙风爜")
     private String phonenumber;
 
     /**
      * 鐢ㄦ埛鎬у埆
      */
-    @ApiModelProperty(value = "鐢ㄦ埛鎬у埆")
+    @Schema(name = "鐢ㄦ埛鎬у埆")
     private String sex;
 
     /**
      * 鐢ㄦ埛澶村儚
      */
-    @ApiModelProperty(value = "鐢ㄦ埛澶村儚")
+    @Schema(name = "鐢ㄦ埛澶村儚")
     private String avatar;
 
     /**
      * 瀵嗙爜
      */
-    @ApiModelProperty(value = "瀵嗙爜")
+    @Schema(name = "瀵嗙爜")
     @TableField(
         insertStrategy = FieldStrategy.NOT_EMPTY,
         updateStrategy = FieldStrategy.NOT_EMPTY,
@@ -111,66 +108,66 @@
     /**
      * 甯愬彿鐘舵�侊紙0姝e父 1鍋滅敤锛�
      */
-    @ApiModelProperty(value = "甯愬彿鐘舵�侊紙0姝e父 1鍋滅敤锛�")
+    @Schema(name = "甯愬彿鐘舵�侊紙0姝e父 1鍋滅敤锛�")
     private String status;
 
     /**
      * 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�
      */
-    @ApiModelProperty(value = "鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�")
+    @Schema(name = "鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�")
     @TableLogic
     private String delFlag;
 
     /**
      * 鏈�鍚庣櫥褰旾P
      */
-    @ApiModelProperty(value = "鏈�鍚庣櫥褰旾P")
+    @Schema(name = "鏈�鍚庣櫥褰旾P")
     private String loginIp;
 
     /**
      * 鏈�鍚庣櫥褰曟椂闂�
      */
-    @ApiModelProperty(value = "鏈�鍚庣櫥褰曟椂闂�")
+    @Schema(name = "鏈�鍚庣櫥褰曟椂闂�")
     private Date loginDate;
 
     /**
      * 澶囨敞
      */
-    @ApiModelProperty(value = "澶囨敞")
+    @Schema(name = "澶囨敞")
     private String remark;
 
     /**
      * 閮ㄩ棬瀵硅薄
      */
-    @ApiModelProperty(value = "閮ㄩ棬瀵硅薄")
+    @Schema(name = "閮ㄩ棬瀵硅薄")
     @TableField(exist = false)
     private SysDept dept;
 
     /**
      * 瑙掕壊瀵硅薄
      */
-    @ApiModelProperty(value = "瑙掕壊瀵硅薄")
+    @Schema(name = "瑙掕壊瀵硅薄")
     @TableField(exist = false)
     private List<SysRole> roles;
 
     /**
      * 瑙掕壊缁�
      */
-    @ApiModelProperty(value = "瑙掕壊缁�")
+    @Schema(name = "瑙掕壊缁�")
     @TableField(exist = false)
     private Long[] roleIds;
 
     /**
      * 宀椾綅缁�
      */
-    @ApiModelProperty(value = "宀椾綅缁�")
+    @Schema(name = "宀椾綅缁�")
     @TableField(exist = false)
     private Long[] postIds;
 
     /**
      * 鏁版嵁鏉冮檺 褰撳墠瑙掕壊ID
      */
-    @ApiModelProperty(value = "瑙掕壊ID")
+    @Schema(name = "瑙掕壊ID")
     @TableField(exist = false)
     private Long roleId;
 
@@ -178,7 +175,7 @@
         this.userId = userId;
     }
 
-    @ApiModelProperty(value = "鏄惁绠$悊鍛�")
+    @Schema(name = "鏄惁绠$悊鍛�")
     public boolean isAdmin() {
         return UserConstants.ADMIN_ID.equals(this.userId);
     }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
index f13de97..18c37a9 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
@@ -1,8 +1,7 @@
 package com.ruoyi.common.core.domain.model;
 
 import com.ruoyi.common.constant.UserConstants;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import org.hibernate.validator.constraints.Length;
 
@@ -15,7 +14,7 @@
  */
 
 @Data
-@ApiModel("鐢ㄦ埛鐧诲綍瀵硅薄")
+@Schema(name = "鐢ㄦ埛鐧诲綍瀵硅薄")
 public class LoginBody {
 
     /**
@@ -23,7 +22,7 @@
      */
     @NotBlank(message = "{user.username.not.blank}")
     @Length(min = UserConstants.USERNAME_MIN_LENGTH, max = UserConstants.USERNAME_MAX_LENGTH, message = "{user.username.length.valid}")
-    @ApiModelProperty(value = "鐢ㄦ埛鍚�")
+    @Schema(name = "鐢ㄦ埛鍚�")
     private String username;
 
     /**
@@ -31,19 +30,19 @@
      */
     @NotBlank(message = "{user.password.not.blank}")
     @Length(min = UserConstants.PASSWORD_MIN_LENGTH, max = UserConstants.PASSWORD_MAX_LENGTH, message = "{user.password.length.valid}")
-    @ApiModelProperty(value = "鐢ㄦ埛瀵嗙爜")
+    @Schema(name = "鐢ㄦ埛瀵嗙爜")
     private String password;
 
     /**
      * 楠岃瘉鐮�
      */
-    @ApiModelProperty(value = "楠岃瘉鐮�")
+    @Schema(name = "楠岃瘉鐮�")
     private String code;
 
     /**
      * 鍞竴鏍囪瘑
      */
-    @ApiModelProperty(value = "鍞竴鏍囪瘑")
+    @Schema(name = "鍞竴鏍囪瘑")
     private String uuid;
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java
index bd9b84c..37f52a7 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java
@@ -1,7 +1,6 @@
 package com.ruoyi.common.core.domain.model;
 
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -12,10 +11,10 @@
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@ApiModel("鐢ㄦ埛娉ㄥ唽瀵硅薄")
+@Schema(name = "鐢ㄦ埛娉ㄥ唽瀵硅薄")
 public class RegisterBody extends LoginBody {
 
-    @ApiModelProperty(value = "鐢ㄦ埛绫诲瀷")
+    @Schema(name = "鐢ㄦ埛绫诲瀷")
     private String userType;
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java
index f3ef445..d89a8c1 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java
@@ -1,7 +1,6 @@
 package com.ruoyi.common.core.domain.model;
 
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
@@ -13,21 +12,21 @@
  */
 
 @Data
-@ApiModel("鐭俊鐧诲綍瀵硅薄")
+@Schema(name = "鐭俊鐧诲綍瀵硅薄")
 public class SmsLoginBody {
 
     /**
      * 鐢ㄦ埛鍚�
      */
     @NotBlank(message = "{user.phonenumber.not.blank}")
-    @ApiModelProperty(value = "鐢ㄦ埛鎵嬫満鍙�")
+    @Schema(name = "鐢ㄦ埛鎵嬫満鍙�")
     private String phonenumber;
 
     /**
      * 鐢ㄦ埛瀵嗙爜
      */
     @NotBlank(message = "{sms.code.not.blank}")
-    @ApiModelProperty(value = "鐭俊楠岃瘉鐮�")
+    @Schema(name = "鐭俊楠岃瘉鐮�")
     private String smsCode;
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java
index 48353e3..b44175a 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java
@@ -2,11 +2,9 @@
 
 import cn.hutool.http.HttpStatus;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.util.List;
@@ -19,32 +17,32 @@
 
 @Data
 @NoArgsConstructor
-@ApiModel("鍒嗛〉鍝嶅簲瀵硅薄")
+@Schema(name = "鍒嗛〉鍝嶅簲瀵硅薄")
 public class TableDataInfo<T> implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * 鎬昏褰曟暟
      */
-    @ApiModelProperty("鎬昏褰曟暟")
+    @Schema(name = "鎬昏褰曟暟")
     private long total;
 
     /**
      * 鍒楄〃鏁版嵁
      */
-    @ApiModelProperty("鍒楄〃鏁版嵁")
+    @Schema(name = "鍒楄〃鏁版嵁")
     private List<T> rows;
 
     /**
      * 娑堟伅鐘舵�佺爜
      */
-    @ApiModelProperty("娑堟伅鐘舵�佺爜")
+    @Schema(name = "娑堟伅鐘舵�佺爜")
     private int code;
 
     /**
      * 娑堟伅鍐呭
      */
-    @ApiModelProperty("娑堟伅鍐呭")
+    @Schema(name = "娑堟伅鍐呭")
     private String msg;
 
     /**
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 6dabe51..c88baec 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
@@ -2,9 +2,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.utils.email.MailUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,27 +20,27 @@
  * @author Michelle.Chung
  */
 @Validated
-@Api(value = "閭欢鍙戦�佹渚�", tags = {"閭欢鍙戦�佹渚�"})
+@Tag(name ="閭欢鍙戦�佹渚�", description = "閭欢鍙戦�佹渚�")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/demo/mail")
 public class MailController {
 
-    @ApiOperation("鍙戦�侀偖浠�")
+    @Operation(summary = "鍙戦�侀偖浠�")
     @GetMapping("/sendSimpleMessage")
-    public R<Void> sendSimpleMessage(@ApiParam("鎺ユ敹浜�") String to,
-                                     @ApiParam("鏍囬") String subject,
-                                     @ApiParam("鍐呭") String text) {
+    public R<Void> sendSimpleMessage(@Parameter(name = "鎺ユ敹浜�") String to,
+                                     @Parameter(name = "鏍囬") String subject,
+                                     @Parameter(name = "鍐呭") String text) {
         MailUtils.sendText(to, subject, text);
         return R.ok();
     }
 
-    @ApiOperation("鍙戦�侀偖浠讹紙甯﹂檮浠讹級")
+    @Operation(summary = "鍙戦�侀偖浠讹紙甯﹂檮浠讹級")
     @GetMapping("/sendMessageWithAttachment")
-    public R<Void> sendMessageWithAttachment(@ApiParam("鎺ユ敹浜�") String to,
-                                             @ApiParam("鏍囬") String subject,
-                                             @ApiParam("鍐呭") String text,
-                                             @ApiParam("闄勪欢璺緞") String filePath) {
+    public R<Void> sendMessageWithAttachment(@Parameter(name = "鎺ユ敹浜�") String to,
+                                             @Parameter(name = "鏍囬") String subject,
+                                             @Parameter(name = "鍐呭") String text,
+                                             @Parameter(name = "闄勪欢璺緞") String filePath) {
         MailUtils.sendText(to, subject, text, new File(filePath));
         return R.ok();
     }
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 9fc9307..b80a9a8 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
@@ -2,8 +2,8 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.utils.redis.RedisUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.CachePut;
@@ -21,7 +21,7 @@
  */
 // 绫荤骇鍒� 缂撳瓨缁熶竴閰嶇疆
 //@CacheConfig(cacheNames = "redissonCacheMap")
-@Api(value = "spring-cache 婕旂ず妗堜緥", tags = {"spring-cache 婕旂ず妗堜緥"})
+@Tag(name ="spring-cache 婕旂ず妗堜緥", description = "spring-cache 婕旂ず妗堜緥")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/demo/cache")
@@ -41,7 +41,7 @@
      * <p>
      * cacheNames 涓洪厤缃枃浠跺唴 groupId
      */
-    @ApiOperation("娴嬭瘯 @Cacheable")
+    @Operation(summary = "娴嬭瘯 @Cacheable")
     @Cacheable(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null")
     @GetMapping("/test1")
     public R<String> test1(String key, String value) {
@@ -56,7 +56,7 @@
      * <p>
      * cacheNames 涓� 閰嶇疆鏂囦欢鍐� groupId
      */
-    @ApiOperation("娴嬭瘯 @CachePut")
+    @Operation(summary = "娴嬭瘯 @CachePut")
     @CachePut(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null")
     @GetMapping("/test2")
     public R<String> test2(String key, String value) {
@@ -71,7 +71,7 @@
      * <p>
      * cacheNames 涓� 閰嶇疆鏂囦欢鍐� groupId
      */
-    @ApiOperation("娴嬭瘯 @CacheEvict")
+    @Operation(summary = "娴嬭瘯 @CacheEvict")
     @CacheEvict(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null")
     @GetMapping("/test3")
     public R<String> test3(String key, String value) {
@@ -83,7 +83,7 @@
      * 鎵嬪姩璁剧疆杩囨湡鏃堕棿10绉�
      * 11绉掑悗鑾峰彇 鍒ゆ柇鏄惁鐩哥瓑
      */
-    @ApiOperation("娴嬭瘯璁剧疆杩囨湡鏃堕棿")
+    @Operation(summary = "娴嬭瘯璁剧疆杩囨湡鏃堕棿")
     @GetMapping("/test6")
     public R<Boolean> test6(String key, String value) {
         RedisUtils.setCacheObject(key, value);
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 c31925a..f9803c6 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
@@ -5,8 +5,8 @@
 import com.baomidou.lock.annotation.Lock4j;
 import com.baomidou.lock.executor.RedissonLockExecutor;
 import com.ruoyi.common.core.domain.R;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -21,7 +21,7 @@
  *
  * @author shenxinquan
  */
-@Api(value = "娴嬭瘯鍒嗗竷寮忛攣鐨勬牱渚�", tags = {"娴嬭瘯鍒嗗竷寮忛攣鐨勬牱渚�"})
+@Tag(name ="娴嬭瘯鍒嗗竷寮忛攣鐨勬牱渚�", description = "娴嬭瘯鍒嗗竷寮忛攣鐨勬牱渚�")
 @Slf4j
 @RestController
 @RequestMapping("/demo/redisLock")
@@ -33,7 +33,7 @@
     /**
      * 娴嬭瘯lock4j 娉ㄨВ
      */
-    @ApiOperation("娴嬭瘯lock4j 娉ㄨВ")
+    @Operation(summary = "娴嬭瘯lock4j 娉ㄨВ")
     @Lock4j(keys = {"#key"})
     @GetMapping("/testLock4j")
     public R<String> testLock4j(String key, String value) {
@@ -50,7 +50,7 @@
     /**
      * 娴嬭瘯lock4j 宸ュ叿
      */
-    @ApiOperation("娴嬭瘯lock4j 宸ュ叿")
+    @Operation(summary = "娴嬭瘯lock4j 宸ュ叿")
     @GetMapping("/testLock4jLockTemplate")
     public R<String> testLock4jLockTemplate(String key, String value) {
         final LockInfo lockInfo = lockTemplate.lock(key, 30000L, 5000L, RedissonLockExecutor.class);
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 99c3131..da8522b 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
@@ -2,9 +2,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.utils.redis.RedisUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -15,24 +15,24 @@
  *
  * @author Lion Li
  */
-@Api(value = "Redis鍙戝竷璁㈤槄 婕旂ず妗堜緥", tags = {"Redis鍙戝竷璁㈤槄"})
+@Tag(name ="Redis鍙戝竷璁㈤槄 婕旂ず妗堜緥", description = "Redis鍙戝竷璁㈤槄")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/demo/redis/pubsub")
 public class RedisPubSubController {
 
-    @ApiOperation("鍙戝竷娑堟伅")
+    @Operation(summary = "鍙戝竷娑堟伅")
     @GetMapping("/pub")
-    public R<Void> pub(@ApiParam("閫氶亾Key") String key, @ApiParam("鍙戦�佸唴瀹�") String value) {
+    public R<Void> pub(@Parameter(name = "閫氶亾Key") String key, @Parameter(name = "鍙戦�佸唴瀹�") String value) {
         RedisUtils.publish(key, value, consumer -> {
             System.out.println("鍙戝竷閫氶亾 => " + key + ", 鍙戦�佸�� => " + value);
         });
         return R.ok("鎿嶄綔鎴愬姛");
     }
 
-    @ApiOperation("璁㈤槄娑堟伅")
+    @Operation(summary = "璁㈤槄娑堟伅")
     @GetMapping("/sub")
-    public R<Void> sub(@ApiParam("閫氶亾Key") String key) {
+    public R<Void> sub(@Parameter(name = "閫氶亾Key") String key) {
         RedisUtils.subscribe(key, String.class, msg -> {
             System.out.println("璁㈤槄閫氶亾 => " + key + ", 鎺ユ敹鍊� => " + msg);
         });
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 c7f48e5..80cf073 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
@@ -3,8 +3,8 @@
 import com.ruoyi.common.annotation.RateLimiter;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.enums.LimitType;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -16,7 +16,7 @@
  *
  * @author Lion Li
  */
-@Api(value = "娴嬭瘯鍒嗗竷寮忛檺娴佹牱渚�", tags = {"娴嬭瘯鍒嗗竷寮忛檺娴佹牱渚�"})
+@Tag(name ="娴嬭瘯鍒嗗竷寮忛檺娴佹牱渚�", description = "娴嬭瘯鍒嗗竷寮忛檺娴佹牱渚�")
 @Slf4j
 @RestController
 @RequestMapping("/demo/rateLimiter")
@@ -26,7 +26,7 @@
      * 娴嬭瘯鍏ㄥ眬闄愭祦
      * 鍏ㄥ眬褰卞搷
      */
-    @ApiOperation("娴嬭瘯鍏ㄥ眬闄愭祦")
+    @Operation(summary = "娴嬭瘯鍏ㄥ眬闄愭祦")
     @RateLimiter(count = 2, time = 10)
     @GetMapping("/test")
     public R<String> test(String value) {
@@ -37,7 +37,7 @@
      * 娴嬭瘯璇锋眰IP闄愭祦
      * 鍚屼竴IP璇锋眰鍙楀奖鍝�
      */
-    @ApiOperation("娴嬭瘯璇锋眰IP闄愭祦")
+    @Operation(summary = "娴嬭瘯璇锋眰IP闄愭祦")
     @RateLimiter(count = 2, time = 10, limitType = LimitType.IP)
     @GetMapping("/testip")
     public R<String> testip(String value) {
@@ -48,7 +48,7 @@
      * 娴嬭瘯闆嗙兢瀹炰緥闄愭祦
      * 鍚姩涓や釜鍚庣鏈嶅姟浜掍笉褰卞搷
      */
-    @ApiOperation("娴嬭瘯闆嗙兢瀹炰緥闄愭祦")
+    @Operation(summary = "娴嬭瘯闆嗙兢瀹炰緥闄愭祦")
     @RateLimiter(count = 2, time = 10, limitType = LimitType.CLUSTER)
     @GetMapping("/testcluster")
     public R<String> testcluster(String value) {
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 b920786..c9e51b1 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
@@ -4,9 +4,9 @@
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.sms.config.properties.SmsProperties;
 import com.ruoyi.sms.core.SmsTemplate;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -24,7 +24,7 @@
  * @version 4.2.0
  */
 @Validated
-@Api(value = "鐭俊婕旂ず妗堜緥", tags = {"鐭俊婕旂ず妗堜緥"})
+@Tag(name ="鐭俊婕旂ず妗堜緥", description = "鐭俊婕旂ず妗堜緥")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/demo/sms")
@@ -34,10 +34,10 @@
 //    private final SmsTemplate smsTemplate; // 鍙互浣跨敤spring娉ㄥ叆
 //    private final AliyunSmsTemplate smsTemplate; // 涔熷彲浠ユ敞鍏ユ煇涓巶瀹剁殑妯℃澘宸ュ叿
 
-    @ApiOperation("鍙戦�佺煭淇liyun")
+    @Operation(summary = "鍙戦�佺煭淇liyun")
     @GetMapping("/sendAliyun")
-    public R<Object> sendAliyun(@ApiParam("鐢佃瘽鍙�") String phones,
-                                     @ApiParam("妯℃澘ID") String templateId) {
+    public R<Object> sendAliyun(@Parameter(name = "鐢佃瘽鍙�") String phones,
+                                     @Parameter(name = "妯℃澘ID") String templateId) {
         if (!smsProperties.getEnabled()) {
             return R.fail("褰撳墠绯荤粺娌℃湁寮�鍚煭淇″姛鑳斤紒");
         }
@@ -51,10 +51,10 @@
         return R.ok(send);
     }
 
-    @ApiOperation("鍙戦�佺煭淇encent")
+    @Operation(summary = "鍙戦�佺煭淇encent")
     @GetMapping("/sendTencent")
-    public R<Object> sendTencent(@ApiParam("鐢佃瘽鍙�") String phones,
-                                             @ApiParam("妯℃澘ID") String templateId) {
+    public R<Object> sendTencent(@Parameter(name = "鐢佃瘽鍙�") String phones,
+                                             @Parameter(name = "妯℃澘ID") String templateId) {
         if (!smsProperties.getEnabled()) {
             return R.fail("褰撳墠绯荤粺娌℃湁寮�鍚煭淇″姛鑳斤紒");
         }
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 e50ce03..c538e2c 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
@@ -1,24 +1,23 @@
 package com.ruoyi.demo.controller;
 
 import com.ruoyi.common.core.domain.R;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestPart;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.File;
-
 /**
  * swagger3 鐢ㄦ硶绀轰緥
  *
  * @author Lion Li
  */
-@Api(value = "婕旂ずswagger3鎺у埗鍣�", tags = {"婕旂ずswagger3鎺ュ彛"})
+@Tag(name ="婕旂ずswagger3鎺у埗鍣�", description = "婕旂ずswagger3鎺ュ彛")
 @RestController
 @RequestMapping("/swagger/demo")
 public class Swagger3DemoController {
@@ -27,9 +26,9 @@
      * 涓婁紶璇锋眰
      * 蹇呴』浣跨敤 @RequestPart 娉ㄨВ鏍囨敞涓烘枃浠�
      */
-    @ApiOperation(value = "閫氱敤涓婁紶璇锋眰")
-    @ApiImplicitParams({
-        @ApiImplicitParam(name = "file", value = "鏂囦欢", paramType = "query", dataTypeClass = File.class, required = true)
+    @Operation(summary = "閫氱敤涓婁紶璇锋眰")
+    @Parameters({
+        @Parameter(name = "file", description = "鏂囦欢", in = ParameterIn.QUERY, required = true)
     })
     @PostMapping(value = "/upload")
     public R<String> upload(@RequestPart("file") MultipartFile file) {
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 aa1f064..1824ae4 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,8 +5,8 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.demo.domain.TestDemo;
 import com.ruoyi.demo.mapper.TestDemoMapper;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+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;
@@ -22,7 +22,7 @@
  * @author Lion Li
  * @date 2021-05-30
  */
-@Api(value = "娴嬭瘯鎵归噺鏂规硶", tags = {"娴嬭瘯鎵归噺鏂规硶"})
+@Tag(name ="娴嬭瘯鎵归噺鏂规硶", description = "娴嬭瘯鎵归噺鏂规硶")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/demo/batch")
@@ -38,7 +38,7 @@
      * <p>
      * 3.5.0 鐗堟湰 澧炲姞 rewriteBatchedStatements=true 鎵瑰鐞嗗弬鏁� 浣� MP 鍘熺敓鎵瑰鐞嗗彲浠ヨ揪鍒板悓鏍风殑閫熷害
      */
-    @ApiOperation(value = "鏂板鎵归噺鏂规硶")
+    @Operation(summary = "鏂板鎵归噺鏂规硶")
     @PostMapping("/add")
 //    @DS("slave")
     public R<Void> add() {
@@ -58,7 +58,7 @@
      * <p>
      * 3.5.0 鐗堟湰 澧炲姞 rewriteBatchedStatements=true 鎵瑰鐞嗗弬鏁� 浣� MP 鍘熺敓鎵瑰鐞嗗彲浠ヨ揪鍒板悓鏍风殑閫熷害
      */
-    @ApiOperation(value = "鏂板鎴栨洿鏂版壒閲忔柟娉�")
+    @Operation(summary = "鏂板鎴栨洿鏂版壒閲忔柟娉�")
     @PostMapping("/addOrUpdate")
 //    @DS("slave")
     public R<Void> addOrUpdate() {
@@ -84,7 +84,7 @@
     /**
      * 鍒犻櫎鎵归噺鏂规硶
      */
-    @ApiOperation(value = "鍒犻櫎鎵归噺鏂规硶")
+    @Operation(summary = "鍒犻櫎鎵归噺鏂规硶")
     @DeleteMapping()
 //    @DS("slave")
     public R<Void> remove() {
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 9f00c07..d63c317 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
@@ -5,8 +5,8 @@
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
@@ -20,7 +20,11 @@
 import com.ruoyi.demo.domain.bo.TestDemoImportVo;
 import com.ruoyi.demo.domain.vo.TestDemoVo;
 import com.ruoyi.demo.service.ITestDemoService;
-import io.swagger.annotations.*;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -29,7 +33,6 @@
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
-import java.io.File;
 import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
@@ -41,7 +44,7 @@
  * @date 2021-07-26
  */
 @Validated
-@Api(value = "娴嬭瘯鍗曡〃鎺у埗鍣�", tags = {"娴嬭瘯鍗曡〃绠$悊"})
+@Tag(name ="娴嬭瘯鍗曡〃鎺у埗鍣�", description = "娴嬭瘯鍗曡〃绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/demo/demo")
@@ -52,7 +55,7 @@
     /**
      * 鏌ヨ娴嬭瘯鍗曡〃鍒楄〃
      */
-    @ApiOperation("鏌ヨ娴嬭瘯鍗曡〃鍒楄〃")
+    @Operation(summary = "鏌ヨ娴嬭瘯鍗曡〃鍒楄〃")
     @SaCheckPermission("demo:demo:list")
     @GetMapping("/list")
     public TableDataInfo<TestDemoVo> list(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) {
@@ -62,16 +65,16 @@
     /**
      * 鑷畾涔夊垎椤垫煡璇�
      */
-    @ApiOperation("鑷畾涔夊垎椤垫煡璇�")
+    @Operation(summary = "鑷畾涔夊垎椤垫煡璇�")
     @SaCheckPermission("demo:demo:list")
     @GetMapping("/page")
     public TableDataInfo<TestDemoVo> page(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) {
         return iTestDemoService.customPageList(bo, pageQuery);
     }
 
-    @ApiOperation("瀵煎叆娴嬭瘯-鏍¢獙")
-    @ApiImplicitParams({
-        @ApiImplicitParam(name = "file", value = "瀵煎叆鏂囦欢", paramType = "query", dataTypeClass = File.class, required = true),
+    @Operation(summary = "瀵煎叆娴嬭瘯-鏍¢獙")
+    @Parameters({
+        @Parameter(name = "file", description = "瀵煎叆鏂囦欢", in = ParameterIn.QUERY, required = true),
     })
     @Log(title = "娴嬭瘯鍗曡〃", businessType = BusinessType.IMPORT)
     @SaCheckPermission("demo:demo:import")
@@ -87,7 +90,7 @@
     /**
      * 瀵煎嚭娴嬭瘯鍗曡〃鍒楄〃
      */
-    @ApiOperation("瀵煎嚭娴嬭瘯鍗曡〃鍒楄〃")
+    @Operation(summary = "瀵煎嚭娴嬭瘯鍗曡〃鍒楄〃")
     @SaCheckPermission("demo:demo:export")
     @Log(title = "娴嬭瘯鍗曡〃", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
@@ -103,10 +106,10 @@
     /**
      * 鑾峰彇娴嬭瘯鍗曡〃璇︾粏淇℃伅
      */
-    @ApiOperation("鑾峰彇娴嬭瘯鍗曡〃璇︾粏淇℃伅")
+    @Operation(summary = "鑾峰彇娴嬭瘯鍗曡〃璇︾粏淇℃伅")
     @SaCheckPermission("demo:demo:query")
     @GetMapping("/{id}")
-    public R<TestDemoVo> getInfo(@ApiParam("娴嬭瘯ID")
+    public R<TestDemoVo> getInfo(@Parameter(name = "娴嬭瘯ID")
                                           @NotNull(message = "涓婚敭涓嶈兘涓虹┖")
                                           @PathVariable("id") Long id) {
         return R.ok(iTestDemoService.queryById(id));
@@ -115,7 +118,7 @@
     /**
      * 鏂板娴嬭瘯鍗曡〃
      */
-    @ApiOperation("鏂板娴嬭瘯鍗曡〃")
+    @Operation(summary = "鏂板娴嬭瘯鍗曡〃")
     @SaCheckPermission("demo:demo:add")
     @Log(title = "娴嬭瘯鍗曡〃", businessType = BusinessType.INSERT)
     @RepeatSubmit(interval = 2, timeUnit = TimeUnit.SECONDS, message = "{repeat.submit.message}")
@@ -130,7 +133,7 @@
     /**
      * 淇敼娴嬭瘯鍗曡〃
      */
-    @ApiOperation("淇敼娴嬭瘯鍗曡〃")
+    @Operation(summary = "淇敼娴嬭瘯鍗曡〃")
     @SaCheckPermission("demo:demo:edit")
     @Log(title = "娴嬭瘯鍗曡〃", businessType = BusinessType.UPDATE)
     @RepeatSubmit
@@ -142,11 +145,11 @@
     /**
      * 鍒犻櫎娴嬭瘯鍗曡〃
      */
-    @ApiOperation("鍒犻櫎娴嬭瘯鍗曡〃")
+    @Operation(summary = "鍒犻櫎娴嬭瘯鍗曡〃")
     @SaCheckPermission("demo:demo:remove")
     @Log(title = "娴嬭瘯鍗曡〃", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
-    public R<Void> remove(@ApiParam("娴嬭瘯ID涓�")
+    public R<Void> remove(@Parameter(name = "娴嬭瘯ID涓�")
                                    @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
                                    @PathVariable Long[] ids) {
         return toAjax(iTestDemoService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
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 a318b46..cc67ca4 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
@@ -2,8 +2,8 @@
 
 import cn.hutool.core.collection.CollUtil;
 import com.ruoyi.common.utils.poi.ExcelUtil;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -21,7 +21,7 @@
  *
  * @author Lion Li
  */
-@Api(value = "娴嬭瘯Excel鍔熻兘", tags = {"娴嬭瘯Excel鍔熻兘"})
+@Tag(name ="娴嬭瘯Excel鍔熻兘", description = "娴嬭瘯Excel鍔熻兘")
 @RestController
 @RequestMapping("/demo/excel")
 public class TestExcelController {
@@ -29,7 +29,7 @@
     /**
      * 鍗曞垪琛ㄥ鏁版嵁
      */
-    @ApiOperation(value = "鍗曞垪琛ㄥ鏁版嵁")
+    @Operation(summary = "鍗曞垪琛ㄥ鏁版嵁")
     @GetMapping("/exportTemplateOne")
     public void exportTemplateOne(HttpServletResponse response) {
         Map<String,String> map = new HashMap<>();
@@ -49,7 +49,7 @@
     /**
      * 澶氬垪琛ㄥ鏁版嵁
      */
-    @ApiOperation(value = "澶氬垪琛ㄥ鏁版嵁")
+    @Operation(summary = "澶氬垪琛ㄥ鏁版嵁")
     @GetMapping("/exportTemplateMuliti")
     public void exportTemplateMuliti(HttpServletResponse response) {
         Map<String,String> map = new HashMap<>();
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 9b3bffc..6c76866 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
@@ -2,9 +2,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.utils.MessageUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.Data;
 import org.hibernate.validator.constraints.Range;
 import org.springframework.validation.annotation.Validated;
@@ -22,7 +22,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "娴嬭瘯鍥介檯鍖栨帶鍒跺櫒", tags = {"娴嬭瘯鍥介檯鍖栫鐞�"})
+@Tag(name ="娴嬭瘯鍥介檯鍖栨帶鍒跺櫒", description = "娴嬭瘯鍥介檯鍖栫鐞�")
 @RestController
 @RequestMapping("/demo/i18n")
 public class TestI18nController {
@@ -33,9 +33,9 @@
      * <p>
      * 娴嬭瘯浣跨敤 user.register.success
      */
-    @ApiOperation("閫氳繃code鑾峰彇鍥介檯鍖栧唴瀹�")
+    @Operation(summary = "閫氳繃code鑾峰彇鍥介檯鍖栧唴瀹�")
     @GetMapping()
-    public R<Void> get(@ApiParam("鍥介檯鍖朿ode") String code) {
+    public R<Void> get(@Parameter(name = "鍥介檯鍖朿ode") String code) {
         return R.ok(MessageUtils.message(code));
     }
 
@@ -45,7 +45,7 @@
      * <p>
      * 娴嬭瘯浣跨敤 not.null
      */
-    @ApiOperation("Validator 鏍¢獙鍥介檯鍖�")
+    @Operation(summary = "Validator 鏍¢獙鍥介檯鍖�")
     @GetMapping("/test1")
     public R<Void> test1(@NotBlank(message = "{not.null}") String str) {
         return R.ok(str);
@@ -57,7 +57,7 @@
      * <p>
      * 娴嬭瘯浣跨敤 not.null
      */
-    @ApiOperation("Bean 鏍¢獙鍥介檯鍖�")
+    @Operation(summary = "Bean 鏍¢獙鍥介檯鍖�")
     @GetMapping("/test2")
     public R<TestI18nBo> test2(@Validated TestI18nBo bo) {
         return R.ok(bo);
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 1f34f9c..54a1913 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,8 +4,8 @@
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.enums.SensitiveStrategy;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+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;
@@ -21,7 +21,7 @@
  * @version 3.6.0
  * @see com.ruoyi.common.core.service.SensitiveService
  */
-@Api(value = "娴嬭瘯鏁版嵁鑴辨晱鎺у埗鍣�", tags = {"娴嬭瘯鏁版嵁鑴辨晱绠$悊"})
+@Tag(name ="娴嬭瘯鏁版嵁鑴辨晱鎺у埗鍣�", description = "娴嬭瘯鏁版嵁鑴辨晱绠$悊")
 @RestController
 @RequestMapping("/demo/sensitive")
 public class TestSensitiveController extends BaseController {
@@ -29,7 +29,7 @@
     /**
      * 娴嬭瘯鏁版嵁鑴辨晱
      */
-    @ApiOperation("鏌ヨ娴嬭瘯鍗曡〃鍒楄〃")
+    @Operation(summary = "鏌ヨ娴嬭瘯鍗曡〃鍒楄〃")
     @GetMapping("/test")
     public R<TestSensitive> test() {
         TestSensitive testSensitive = new TestSensitive();
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 64f36c9..4f0b4af 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
@@ -13,9 +13,9 @@
 import com.ruoyi.demo.domain.bo.TestTreeBo;
 import com.ruoyi.demo.domain.vo.TestTreeVo;
 import com.ruoyi.demo.service.ITestTreeService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -33,7 +33,7 @@
  * @date 2021-07-26
  */
 @Validated
-@Api(value = "娴嬭瘯鏍戣〃鎺у埗鍣�", tags = {"娴嬭瘯鏍戣〃绠$悊"})
+@Tag(name ="娴嬭瘯鏍戣〃鎺у埗鍣�", description = "娴嬭瘯鏍戣〃绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/demo/tree")
@@ -44,7 +44,7 @@
     /**
      * 鏌ヨ娴嬭瘯鏍戣〃鍒楄〃
      */
-    @ApiOperation("鏌ヨ娴嬭瘯鏍戣〃鍒楄〃")
+    @Operation(summary = "鏌ヨ娴嬭瘯鏍戣〃鍒楄〃")
     @SaCheckPermission("demo:tree:list")
     @GetMapping("/list")
     public R<List<TestTreeVo>> list(@Validated(QueryGroup.class) TestTreeBo bo) {
@@ -55,7 +55,7 @@
     /**
      * 瀵煎嚭娴嬭瘯鏍戣〃鍒楄〃
      */
-    @ApiOperation("瀵煎嚭娴嬭瘯鏍戣〃鍒楄〃")
+    @Operation(summary = "瀵煎嚭娴嬭瘯鏍戣〃鍒楄〃")
     @SaCheckPermission("demo:tree:export")
     @Log(title = "娴嬭瘯鏍戣〃", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
@@ -67,10 +67,10 @@
     /**
      * 鑾峰彇娴嬭瘯鏍戣〃璇︾粏淇℃伅
      */
-    @ApiOperation("鑾峰彇娴嬭瘯鏍戣〃璇︾粏淇℃伅")
+    @Operation(summary = "鑾峰彇娴嬭瘯鏍戣〃璇︾粏淇℃伅")
     @SaCheckPermission("demo:tree:query")
     @GetMapping("/{id}")
-    public R<TestTreeVo> getInfo(@ApiParam("娴嬭瘯鏍慖D")
+    public R<TestTreeVo> getInfo(@Parameter(name = "娴嬭瘯鏍慖D")
                                           @NotNull(message = "涓婚敭涓嶈兘涓虹┖")
                                           @PathVariable("id") Long id) {
         return R.ok(iTestTreeService.queryById(id));
@@ -79,7 +79,7 @@
     /**
      * 鏂板娴嬭瘯鏍戣〃
      */
-    @ApiOperation("鏂板娴嬭瘯鏍戣〃")
+    @Operation(summary = "鏂板娴嬭瘯鏍戣〃")
     @SaCheckPermission("demo:tree:add")
     @Log(title = "娴嬭瘯鏍戣〃", businessType = BusinessType.INSERT)
     @RepeatSubmit
@@ -91,7 +91,7 @@
     /**
      * 淇敼娴嬭瘯鏍戣〃
      */
-    @ApiOperation("淇敼娴嬭瘯鏍戣〃")
+    @Operation(summary = "淇敼娴嬭瘯鏍戣〃")
     @SaCheckPermission("demo:tree:edit")
     @Log(title = "娴嬭瘯鏍戣〃", businessType = BusinessType.UPDATE)
     @RepeatSubmit
@@ -103,11 +103,11 @@
     /**
      * 鍒犻櫎娴嬭瘯鏍戣〃
      */
-    @ApiOperation("鍒犻櫎娴嬭瘯鏍戣〃")
+    @Operation(summary = "鍒犻櫎娴嬭瘯鏍戣〃")
     @SaCheckPermission("demo:tree:remove")
     @Log(title = "娴嬭瘯鏍戣〃", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
-    public R<Void> remove(@ApiParam("娴嬭瘯鏍慖D涓�")
+    public R<Void> remove(@Parameter(name = "娴嬭瘯鏍慖D涓�")
                                    @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
                                    @PathVariable Long[] ids) {
         return toAjax(iTestTreeService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
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 532c499..d41f87e 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
@@ -2,9 +2,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.utils.redis.QueueUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -23,17 +23,17 @@
  * @version 3.6.0
  */
 @Slf4j
-@Api(value = "鏈夌晫闃熷垪 婕旂ず妗堜緥", tags = {"鏈夌晫闃熷垪"})
+@Tag(name ="鏈夌晫闃熷垪 婕旂ず妗堜緥", description = "鏈夌晫闃熷垪")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/demo/queue/bounded")
 public class BoundedQueueController {
 
 
-    @ApiOperation("娣诲姞闃熷垪鏁版嵁")
+    @Operation(summary = "娣诲姞闃熷垪鏁版嵁")
     @GetMapping("/add")
-    public R<Void> add(@ApiParam("闃熷垪鍚�") String queueName,
-                                @ApiParam("瀹归噺") int capacity) {
+    public R<Void> add(@Parameter(name = "闃熷垪鍚�") String queueName,
+                                @Parameter(name = "瀹归噺") int capacity) {
         // 鐢ㄥ畬浜嗕竴瀹氳閿�姣� 鍚﹀垯浼氫竴鐩村瓨鍦�
         boolean b = QueueUtils.destroyBoundedQueueObject(queueName);
         log.info("閫氶亾: {} , 鍒犻櫎: {}", queueName, b);
@@ -56,9 +56,9 @@
         return R.ok("鎿嶄綔鎴愬姛");
     }
 
-    @ApiOperation("鍒犻櫎闃熷垪鏁版嵁")
+    @Operation(summary = "鍒犻櫎闃熷垪鏁版嵁")
     @GetMapping("/remove")
-    public R<Void> remove(@ApiParam("闃熷垪鍚�") String queueName) {
+    public R<Void> remove(@Parameter(name = "闃熷垪鍚�") String queueName) {
         String data = "data-" + 5;
         if (QueueUtils.removeBoundedQueueObject(queueName, data)) {
             log.info("閫氶亾: {} , 鍒犻櫎鏁版嵁: {}", queueName, data);
@@ -68,9 +68,9 @@
         return R.ok("鎿嶄綔鎴愬姛");
     }
 
-    @ApiOperation("鑾峰彇闃熷垪鏁版嵁")
+    @Operation(summary = "鑾峰彇闃熷垪鏁版嵁")
     @GetMapping("/get")
-    public R<Void> get(@ApiParam("闃熷垪鍚�") String queueName) {
+    public R<Void> get(@Parameter(name = "闃熷垪鍚�") String queueName) {
         String data;
         do {
             data = QueueUtils.getBoundedQueueObject(queueName);
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 f877753..5958824 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,9 +2,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.utils.redis.QueueUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -26,15 +26,15 @@
  * @version 3.6.0
  */
 @Slf4j
-@Api(value = "寤惰繜闃熷垪 婕旂ず妗堜緥", tags = {"寤惰繜闃熷垪"})
+@Tag(name ="寤惰繜闃熷垪 婕旂ず妗堜緥", description = "寤惰繜闃熷垪")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/demo/queue/delayed")
 public class DelayedQueueController {
 
-    @ApiOperation("璁㈤槄闃熷垪")
+    @Operation(summary = "璁㈤槄闃熷垪")
     @GetMapping("/subscribe")
-    public R<Void> subscribe(@ApiParam("闃熷垪鍚�") String queueName) {
+    public R<Void> subscribe(@Parameter(name = "闃熷垪鍚�") String queueName) {
         log.info("閫氶亾: {} 鐩戝惉涓�......", queueName);
         // 椤圭洰鍒濆鍖栬缃竴娆″嵆鍙�
         QueueUtils.subscribeBlockingQueue(queueName, (String orderNum) -> {
@@ -44,21 +44,21 @@
         return R.ok("鎿嶄綔鎴愬姛");
     }
 
-    @ApiOperation("娣诲姞闃熷垪鏁版嵁")
+    @Operation(summary = "娣诲姞闃熷垪鏁版嵁")
     @GetMapping("/add")
-    public R<Void> add(@ApiParam("闃熷垪鍚�") String queueName,
-                                @ApiParam("璁㈠崟鍙�") String orderNum,
-                                @ApiParam("寤惰繜鏃堕棿(绉�)") Long time) {
+    public R<Void> add(@Parameter(name = "闃熷垪鍚�") String queueName,
+                                @Parameter(name = "璁㈠崟鍙�") String orderNum,
+                                @Parameter(name = "寤惰繜鏃堕棿(绉�)") Long time) {
         QueueUtils.addDelayedQueueObject(queueName, orderNum, time, TimeUnit.SECONDS);
         // 瑙傚療鍙戦�佹椂闂�
         log.info("閫氶亾: {} , 鍙戦�佹暟鎹�: {}", queueName, orderNum);
         return R.ok("鎿嶄綔鎴愬姛");
     }
 
-    @ApiOperation("鍒犻櫎闃熷垪鏁版嵁")
+    @Operation(summary = "鍒犻櫎闃熷垪鏁版嵁")
     @GetMapping("/remove")
-    public R<Void> remove(@ApiParam("闃熷垪鍚�") String queueName,
-                                   @ApiParam("璁㈠崟鍙�") String orderNum) {
+    public R<Void> remove(@Parameter(name = "闃熷垪鍚�") String queueName,
+                                   @Parameter(name = "璁㈠崟鍙�") String orderNum) {
         if (QueueUtils.removeDelayedQueueObject(queueName, orderNum)) {
             log.info("閫氶亾: {} , 鍒犻櫎鏁版嵁: {}", queueName, orderNum);
         } else {
@@ -67,9 +67,9 @@
         return R.ok("鎿嶄綔鎴愬姛");
     }
 
-    @ApiOperation("閿�姣侀槦鍒�")
+    @Operation(summary = "閿�姣侀槦鍒�")
     @GetMapping("/destroy")
-    public R<Void> destroy(@ApiParam("闃熷垪鍚�") String queueName) {
+    public R<Void> destroy(@Parameter(name = "闃熷垪鍚�") String queueName) {
         // 鐢ㄥ畬浜嗕竴瀹氳閿�姣� 鍚﹀垯浼氫竴鐩村瓨鍦�
         QueueUtils.destroyDelayedQueue(queueName);
         return R.ok("鎿嶄綔鎴愬姛");
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 baec184..6d11e15 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,9 +3,9 @@
 import cn.hutool.core.util.RandomUtil;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.utils.redis.QueueUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -24,15 +24,15 @@
  * @version 3.6.0
  */
 @Slf4j
-@Api(value = "浼樺厛闃熷垪 婕旂ず妗堜緥", tags = {"浼樺厛闃熷垪"})
+@Tag(name ="浼樺厛闃熷垪 婕旂ず妗堜緥", description = "浼樺厛闃熷垪")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/demo/queue/priority")
 public class PriorityQueueController {
 
-    @ApiOperation("娣诲姞闃熷垪鏁版嵁")
+    @Operation(summary = "娣诲姞闃熷垪鏁版嵁")
     @GetMapping("/add")
-    public R<Void> add(@ApiParam("闃熷垪鍚�") String queueName) {
+    public R<Void> add(@Parameter(name = "闃熷垪鍚�") String queueName) {
         // 鐢ㄥ畬浜嗕竴瀹氳閿�姣� 鍚﹀垯浼氫竴鐩村瓨鍦�
         boolean b = QueueUtils.destroyPriorityQueueObject(queueName);
         log.info("閫氶亾: {} , 鍒犻櫎: {}", queueName, b);
@@ -58,11 +58,11 @@
         return R.ok("鎿嶄綔鎴愬姛");
     }
 
-    @ApiOperation("鍒犻櫎闃熷垪鏁版嵁")
+    @Operation(summary = "鍒犻櫎闃熷垪鏁版嵁")
     @GetMapping("/remove")
-    public R<Void> remove(@ApiParam("闃熷垪鍚�") String queueName,
-                                   @ApiParam("瀵硅薄鍚�") String name,
-                                   @ApiParam("鎺掑簭鍙�") Integer orderNum) {
+    public R<Void> remove(@Parameter(name = "闃熷垪鍚�") String queueName,
+                                   @Parameter(name = "瀵硅薄鍚�") String name,
+                                   @Parameter(name = "鎺掑簭鍙�") Integer orderNum) {
         PriorityDemo data = new PriorityDemo();
         data.setName(name);
         data.setOrderNum(orderNum);
@@ -74,9 +74,9 @@
         return R.ok("鎿嶄綔鎴愬姛");
     }
 
-    @ApiOperation("鑾峰彇闃熷垪鏁版嵁")
+    @Operation(summary = "鑾峰彇闃熷垪鏁版嵁")
     @GetMapping("/get")
-    public R<Void> get(@ApiParam("闃熷垪鍚�") String queueName) {
+    public R<Void> get(@Parameter(name = "闃熷垪鍚�") String queueName) {
         PriorityDemo data;
         do {
             data = QueueUtils.getPriorityQueueObject(queueName);
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java
index 61c10ab..e569466 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java
@@ -3,8 +3,7 @@
 import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -20,48 +19,48 @@
 
 @Data
 @EqualsAndHashCode(callSuper = true)
-@ApiModel("娴嬭瘯鍗曡〃涓氬姟瀵硅薄")
+@Schema(name = "娴嬭瘯鍗曡〃涓氬姟瀵硅薄")
 public class TestDemoBo extends BaseEntity {
 
     /**
      * 涓婚敭
      */
-    @ApiModelProperty("涓婚敭")
+    @Schema(name = "涓婚敭")
     @NotNull(message = "涓婚敭涓嶈兘涓虹┖", groups = {EditGroup.class})
     private Long id;
 
     /**
      * 閮ㄩ棬id
      */
-    @ApiModelProperty("閮ㄩ棬id")
+    @Schema(name = "閮ㄩ棬id")
     @NotNull(message = "閮ㄩ棬id涓嶈兘涓虹┖", groups = {AddGroup.class, EditGroup.class})
     private Long deptId;
 
     /**
      * 鐢ㄦ埛id
      */
-    @ApiModelProperty("鐢ㄦ埛id")
+    @Schema(name = "鐢ㄦ埛id")
     @NotNull(message = "鐢ㄦ埛id涓嶈兘涓虹┖", groups = {AddGroup.class, EditGroup.class})
     private Long userId;
 
     /**
      * 鎺掑簭鍙�
      */
-    @ApiModelProperty("鎺掑簭鍙�")
+    @Schema(name = "鎺掑簭鍙�")
     @NotNull(message = "鎺掑簭鍙蜂笉鑳戒负绌�", groups = {AddGroup.class, EditGroup.class})
     private Integer orderNum;
 
     /**
      * key閿�
      */
-    @ApiModelProperty("key閿�")
+    @Schema(name = "key閿�")
     @NotBlank(message = "key閿笉鑳戒负绌�", groups = {AddGroup.class, EditGroup.class})
     private String testKey;
 
     /**
      * 鍊�
      */
-    @ApiModelProperty("鍊�")
+    @Schema(name = "鍊�")
     @NotBlank(message = "鍊间笉鑳戒负绌�", groups = {AddGroup.class, EditGroup.class})
     private String value;
 
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java
index 7185514..269188a 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java
@@ -1,8 +1,7 @@
 package com.ruoyi.demo.domain.bo;
 
 import com.alibaba.excel.annotation.ExcelProperty;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
@@ -15,13 +14,13 @@
  * @date 2021-07-26
  */
 @Data
-@ApiModel("娴嬭瘯鍗曡〃涓氬姟瀵硅薄")
+@Schema(name = "娴嬭瘯鍗曡〃涓氬姟瀵硅薄")
 public class TestDemoImportVo {
 
     /**
      * 閮ㄩ棬id
      */
-    @ApiModelProperty("閮ㄩ棬id")
+    @Schema(name = "閮ㄩ棬id")
     @NotNull(message = "閮ㄩ棬id涓嶈兘涓虹┖")
     @ExcelProperty(value = "閮ㄩ棬id")
     private Long deptId;
@@ -29,7 +28,7 @@
     /**
      * 鐢ㄦ埛id
      */
-    @ApiModelProperty("鐢ㄦ埛id")
+    @Schema(name = "鐢ㄦ埛id")
     @NotNull(message = "鐢ㄦ埛id涓嶈兘涓虹┖")
     @ExcelProperty(value = "鐢ㄦ埛id")
     private Long userId;
@@ -37,7 +36,7 @@
     /**
      * 鎺掑簭鍙�
      */
-    @ApiModelProperty("鎺掑簭鍙�")
+    @Schema(name = "鎺掑簭鍙�")
     @NotNull(message = "鎺掑簭鍙蜂笉鑳戒负绌�")
     @ExcelProperty(value = "鎺掑簭鍙�")
     private Long orderNum;
@@ -45,7 +44,7 @@
     /**
      * key閿�
      */
-    @ApiModelProperty("key閿�")
+    @Schema(name = "key閿�")
     @NotBlank(message = "key閿笉鑳戒负绌�")
     @ExcelProperty(value = "key閿�")
     private String testKey;
@@ -53,7 +52,7 @@
     /**
      * 鍊�
      */
-    @ApiModelProperty("鍊�")
+    @Schema(name = "鍊�")
     @NotBlank(message = "鍊间笉鑳戒负绌�")
     @ExcelProperty(value = "鍊�")
     private String value;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java
index 211a79f..a4f9143 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java
@@ -3,8 +3,7 @@
 import com.ruoyi.common.core.domain.TreeEntity;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -20,34 +19,34 @@
 
 @Data
 @EqualsAndHashCode(callSuper = true)
-@ApiModel("娴嬭瘯鏍戣〃涓氬姟瀵硅薄")
+@Schema(name = "娴嬭瘯鏍戣〃涓氬姟瀵硅薄")
 public class TestTreeBo extends TreeEntity<TestTreeBo> {
 
     /**
      * 涓婚敭
      */
-    @ApiModelProperty("涓婚敭")
+    @Schema(name = "涓婚敭")
     @NotNull(message = "涓婚敭涓嶈兘涓虹┖", groups = {EditGroup.class})
     private Long id;
 
     /**
      * 閮ㄩ棬id
      */
-    @ApiModelProperty("閮ㄩ棬id")
+    @Schema(name = "閮ㄩ棬id")
     @NotNull(message = "閮ㄩ棬id涓嶈兘涓虹┖", groups = {AddGroup.class, EditGroup.class})
     private Long deptId;
 
     /**
      * 鐢ㄦ埛id
      */
-    @ApiModelProperty("鐢ㄦ埛id")
+    @Schema(name = "鐢ㄦ埛id")
     @NotNull(message = "鐢ㄦ埛id涓嶈兘涓虹┖", groups = {AddGroup.class, EditGroup.class})
     private Long userId;
 
     /**
      * 鏍戣妭鐐瑰悕
      */
-    @ApiModelProperty("鏍戣妭鐐瑰悕")
+    @Schema(name = "鏍戣妭鐐瑰悕")
     @NotBlank(message = "鏍戣妭鐐瑰悕涓嶈兘涓虹┖", groups = {AddGroup.class, EditGroup.class})
     private String treeName;
 
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java
index 1e89650..561d208 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java
@@ -2,8 +2,7 @@
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.util.Date;
@@ -16,7 +15,7 @@
  * @date 2021-07-26
  */
 @Data
-@ApiModel("娴嬭瘯鍗曡〃瑙嗗浘瀵硅薄")
+@Schema(name = "娴嬭瘯鍗曡〃瑙嗗浘瀵硅薄")
 @ExcelIgnoreUnannotated
 public class TestDemoVo {
 
@@ -26,70 +25,70 @@
      * 涓婚敭
      */
     @ExcelProperty(value = "涓婚敭")
-    @ApiModelProperty("涓婚敭")
+    @Schema(name = "涓婚敭")
     private Long id;
 
     /**
      * 閮ㄩ棬id
      */
     @ExcelProperty(value = "閮ㄩ棬id")
-    @ApiModelProperty("閮ㄩ棬id")
+    @Schema(name = "閮ㄩ棬id")
     private Long deptId;
 
     /**
      * 鐢ㄦ埛id
      */
     @ExcelProperty(value = "鐢ㄦ埛id")
-    @ApiModelProperty("鐢ㄦ埛id")
+    @Schema(name = "鐢ㄦ埛id")
     private Long userId;
 
     /**
      * 鎺掑簭鍙�
      */
     @ExcelProperty(value = "鎺掑簭鍙�")
-    @ApiModelProperty("鎺掑簭鍙�")
+    @Schema(name = "鎺掑簭鍙�")
     private Integer orderNum;
 
     /**
      * key閿�
      */
     @ExcelProperty(value = "key閿�")
-    @ApiModelProperty("key閿�")
+    @Schema(name = "key閿�")
     private String testKey;
 
     /**
      * 鍊�
      */
     @ExcelProperty(value = "鍊�")
-    @ApiModelProperty("鍊�")
+    @Schema(name = "鍊�")
     private String value;
 
     /**
      * 鍒涘缓鏃堕棿
      */
     @ExcelProperty(value = "鍒涘缓鏃堕棿")
-    @ApiModelProperty("鍒涘缓鏃堕棿")
+    @Schema(name = "鍒涘缓鏃堕棿")
     private Date createTime;
 
     /**
      * 鍒涘缓浜�
      */
     @ExcelProperty(value = "鍒涘缓浜�")
-    @ApiModelProperty("鍒涘缓浜�")
+    @Schema(name = "鍒涘缓浜�")
     private String createBy;
 
     /**
      * 鏇存柊鏃堕棿
      */
     @ExcelProperty(value = "鏇存柊鏃堕棿")
-    @ApiModelProperty("鏇存柊鏃堕棿")
+    @Schema(name = "鏇存柊鏃堕棿")
     private Date updateTime;
 
     /**
      * 鏇存柊浜�
      */
     @ExcelProperty(value = "鏇存柊浜�")
-    @ApiModelProperty("鏇存柊浜�")
+    @Schema(name = "鏇存柊浜�")
     private String updateBy;
 
 
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java
index 309a0ae..f0eadfc 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java
@@ -2,8 +2,7 @@
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.util.Date;
@@ -16,7 +15,7 @@
  * @date 2021-07-26
  */
 @Data
-@ApiModel("娴嬭瘯鏍戣〃瑙嗗浘瀵硅薄")
+@Schema(name = "娴嬭瘯鏍戣〃瑙嗗浘瀵硅薄")
 @ExcelIgnoreUnannotated
 public class TestTreeVo {
 
@@ -25,42 +24,42 @@
     /**
      * 涓婚敭
      */
-    @ApiModelProperty("涓婚敭")
+    @Schema(name = "涓婚敭")
     private Long id;
 
     /**
      * 鐖秈d
      */
     @ExcelProperty(value = "鐖秈d")
-    @ApiModelProperty("鐖秈d")
+    @Schema(name = "鐖秈d")
     private Long parentId;
 
     /**
      * 閮ㄩ棬id
      */
     @ExcelProperty(value = "閮ㄩ棬id")
-    @ApiModelProperty("閮ㄩ棬id")
+    @Schema(name = "閮ㄩ棬id")
     private Long deptId;
 
     /**
      * 鐢ㄦ埛id
      */
     @ExcelProperty(value = "鐢ㄦ埛id")
-    @ApiModelProperty("鐢ㄦ埛id")
+    @Schema(name = "鐢ㄦ埛id")
     private Long userId;
 
     /**
      * 鏍戣妭鐐瑰悕
      */
     @ExcelProperty(value = "鏍戣妭鐐瑰悕")
-    @ApiModelProperty("鏍戣妭鐐瑰悕")
+    @Schema(name = "鏍戣妭鐐瑰悕")
     private String treeName;
 
     /**
      * 鍒涘缓鏃堕棿
      */
     @ExcelProperty(value = "鍒涘缓鏃堕棿")
-    @ApiModelProperty("鍒涘缓鏃堕棿")
+    @Schema(name = "鍒涘缓鏃堕棿")
     private Date createTime;
 
 
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 2424981..c677378 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,33 +1,15 @@
 package com.ruoyi.framework.config;
 
-import cn.dev33.satoken.config.SaTokenConfig;
-import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
-import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.framework.config.properties.SwaggerProperties;
-import io.swagger.models.auth.In;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
 import lombok.RequiredArgsConstructor;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
+import org.springdoc.core.SpringDocConfiguration;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.util.ReflectionUtils;
-import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.*;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spi.service.contexts.SecurityContext;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider;
-import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
-
-import javax.annotation.PostConstruct;
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
 
 /**
  * Swagger 鏂囨。閰嶇疆
@@ -36,125 +18,36 @@
  */
 @RequiredArgsConstructor
 @Configuration
-@EnableKnife4j
+@AutoConfigureBefore(SpringDocConfiguration.class)
+@ConditionalOnProperty(name = "swagger.enabled", havingValue = "true", matchIfMissing = true)
 public class SwaggerConfig {
 
     private final SwaggerProperties swaggerProperties;
-    private final SaTokenConfig saTokenConfig;
-    private final OpenApiExtensionResolver openApiExtensionResolver;
 
-    /**
-     * 鐢ㄤ簬閫傞厤springboot 2.6
-     */
     @Bean
-    @SuppressWarnings("all")
-    public BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {
-        return new BeanPostProcessor() {
-            @Override
-            public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
-                if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) {
-                    customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
-                }
-                return bean;
-            }
+    @ConditionalOnMissingBean(OpenAPI.class)
+    public OpenAPI openApi() {
+        OpenAPI openApi = new OpenAPI();
+        // 鏂囨。鍩烘湰淇℃伅
+        SwaggerProperties.InfoProperties infoProperties = swaggerProperties.getInfo();
+        Info info = convertInfo(infoProperties);
+        openApi.info(info);
+        // 鎵╁睍鏂囨。淇℃伅
+        openApi.externalDocs(swaggerProperties.getExternalDocs());
+        openApi.tags(swaggerProperties.getTags());
+        openApi.paths(swaggerProperties.getPaths());
+        openApi.components(swaggerProperties.getComponents());
 
-            private <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings) {
-                mappings.removeIf(mapping -> mapping.getPatternParser() != null);
-            }
-
-            private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {
-                try {
-                    Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
-                    field.setAccessible(true);
-                    return (List<RequestMappingInfoHandlerMapping>) field.get(bean);
-                } catch (IllegalArgumentException | IllegalAccessException e) {
-                    throw new IllegalStateException(e);
-                }
-            }
-        };
+        return openApi;
     }
 
-    /**
-     * 鍒涘缓API
-     */
-    @PostConstruct
-    public void createRestApi() {
-        for (SwaggerProperties.Groups group : swaggerProperties.getGroups()) {
-            String basePackage = group.getBasePackage();
-            Docket docket = new Docket(DocumentationType.OAS_30)
-                .enable(swaggerProperties.getEnabled())
-                // 鐢ㄦ潵鍒涘缓璇PI鐨勫熀鏈俊鎭紝灞曠ず鍦ㄦ枃妗g殑椤甸潰涓紙鑷畾涔夊睍绀虹殑淇℃伅锛�
-                .apiInfo(apiInfo())
-                // 璁剧疆鍝簺鎺ュ彛鏆撮湶缁橲wagger灞曠ず
-                .select()
-                // 鎵弿鎵�鏈夋湁娉ㄨВ鐨刟pi锛岀敤杩欑鏂瑰紡鏇寸伒娲�
-                //.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
-                // 鎵弿鎸囧畾鍖呬腑鐨剆wagger娉ㄨВ
-                .apis(RequestHandlerSelectors.basePackage(basePackage))
-                // 鎵弿鎵�鏈� .apis(RequestHandlerSelectors.any())
-                .paths(PathSelectors.any())
-                .build()
-                .groupName(group.getName())
-                // 璁剧疆瀹夊叏妯″紡锛宻wagger鍙互璁剧疆璁块棶token
-                .securitySchemes(securitySchemes())
-                .securityContexts(securityContexts())
-                .extensions(openApiExtensionResolver.buildExtensions(group.getName()))
-                .pathMapping(swaggerProperties.getPathMapping());
-            String beanName = StringUtils.substringAfterLast(basePackage, ".") + "Docket";
-            SpringUtils.registerBean(beanName, docket);
-        }
-    }
-
-    /**
-     * 瀹夊叏妯″紡锛岃繖閲屾寚瀹歵oken閫氳繃Authorization澶磋姹傚ご浼犻��
-     */
-    private List<SecurityScheme> securitySchemes() {
-        List<SecurityScheme> apiKeyList = new ArrayList<>();
-        String header = saTokenConfig.getTokenName();
-        apiKeyList.add(new ApiKey(header, header, In.HEADER.toValue()));
-        return apiKeyList;
-    }
-
-    /**
-     * 瀹夊叏涓婁笅鏂�
-     */
-    private List<SecurityContext> securityContexts() {
-        List<SecurityContext> securityContexts = new ArrayList<>();
-        securityContexts.add(
-            SecurityContext.builder()
-                .securityReferences(defaultAuth())
-                .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
-                .build());
-        return securityContexts;
-    }
-
-    /**
-     * 榛樿鐨勫畨鍏ㄤ笂寮曠敤
-     */
-    private List<SecurityReference> defaultAuth() {
-        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
-        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
-        authorizationScopes[0] = authorizationScope;
-        List<SecurityReference> securityReferences = new ArrayList<>();
-        securityReferences.add(new SecurityReference(saTokenConfig.getTokenName(), authorizationScopes));
-        return securityReferences;
-    }
-
-    /**
-     * 娣诲姞鎽樿淇℃伅
-     */
-    private ApiInfo apiInfo() {
-        // 鐢ˋpiInfoBuilder杩涜瀹氬埗
-        SwaggerProperties.Contact contact = swaggerProperties.getContact();
-        return new ApiInfoBuilder()
-            // 璁剧疆鏍囬
-            .title(swaggerProperties.getTitle())
-            // 鎻忚堪
-            .description(swaggerProperties.getDescription())
-            // 浣滆�呬俊鎭�
-            .contact(new Contact(contact.getName(), contact.getUrl(), contact.getEmail()))
-            // 鐗堟湰
-            .version(swaggerProperties.getVersion())
-            .build();
+    private Info convertInfo(SwaggerProperties.InfoProperties infoProperties) {
+        Info info = new Info();
+        info.setTitle(infoProperties.getTitle());
+        info.setDescription(infoProperties.getDescription());
+        info.setContact(infoProperties.getContact());
+        info.setLicense(infoProperties.getLicense());
+        info.setVersion(infoProperties.getVersion());
+        return info;
     }
 }
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SwaggerProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SwaggerProperties.java
index 7293e1e..736d70a 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SwaggerProperties.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SwaggerProperties.java
@@ -1,8 +1,14 @@
 package com.ruoyi.framework.config.properties;
 
+import io.swagger.v3.oas.models.Components;
+import io.swagger.v3.oas.models.ExternalDocumentation;
+import io.swagger.v3.oas.models.Paths;
+import io.swagger.v3.oas.models.info.Contact;
+import io.swagger.v3.oas.models.info.License;
+import io.swagger.v3.oas.models.tags.Tag;
 import lombok.Data;
-import lombok.NoArgsConstructor;
 import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.context.properties.NestedConfigurationProperty;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -18,74 +24,77 @@
 public class SwaggerProperties {
 
     /**
-     * 鏂囨。寮�鍏�
+     * 鏄惁寮�鍚� openApi 鏂囨。
      */
-    private Boolean enabled;
+    private Boolean enabled = true;
 
     /**
-     * 璁剧疆璇锋眰鐨勭粺涓�鍓嶇紑
+     * 鏂囨。鍩烘湰淇℃伅
      */
-    private String pathMapping;
+    @NestedConfigurationProperty
+    private InfoProperties info = new InfoProperties();
 
     /**
-     * 鏍囧ご
+     * 鎵╁睍鏂囨。鍦板潃
      */
-    private String title;
+    @NestedConfigurationProperty
+    private ExternalDocumentation externalDocs;
 
     /**
-     * 鎻忚堪
+     * 鏍囩
      */
-    private String description;
+    private List<Tag> tags = null;
 
     /**
-     * 椤圭洰鐗堟湰
+     * 璺緞
      */
-    private String version;
+    @NestedConfigurationProperty
+    private Paths paths = null;
 
     /**
-     * 鑱旂郴鏂瑰紡
+     * 缁勪欢
      */
-    private Contact contact;
+    @NestedConfigurationProperty
+    private Components components = null;
 
     /**
-     * 缁勯厤缃�
+     * <p>
+     * 鏂囨。鐨勫熀纭�灞炴�т俊鎭�
+     * </p>
+     *
+     * @see io.swagger.v3.oas.models.info.Info
+     *
+     * 涓轰簡 springboot 鑷姩鐢熶骇閰嶇疆鎻愮ず淇℃伅锛屾墍浠ヨ繖閲屽鍒朵竴涓被鍑烘潵
      */
-    private List<Groups> groups;
-
     @Data
-    @NoArgsConstructor
-    public static class Contact {
+    public static class InfoProperties {
 
         /**
-         * 鑱旂郴浜�
+         * 鏍囬
          */
-        private String name;
+        private String title = null;
 
         /**
-         * 鑱旂郴浜簎rl
+         * 鎻忚堪
          */
-        private String url;
+        private String description = null;
 
         /**
-         * 鑱旂郴浜篹mail
+         * 鑱旂郴浜轰俊鎭�
          */
-        private String email;
-
-    }
-
-    @Data
-    @NoArgsConstructor
-    public static class Groups {
+        @NestedConfigurationProperty
+        private Contact contact = null;
 
         /**
-         * 缁勫悕
+         * 璁稿彲璇�
          */
-        private String name;
+        @NestedConfigurationProperty
+        private License license = null;
 
         /**
-         * 鍩虹鍖呰矾寰�
+         * 鐗堟湰
          */
-        private String basePackage;
+        private String version = null;
 
     }
 
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 e9e61e7..d003ca8 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
@@ -12,8 +12,8 @@
 import com.ruoyi.generator.domain.GenTable;
 import com.ruoyi.generator.domain.GenTableColumn;
 import com.ruoyi.generator.service.IGenTableService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -30,7 +30,7 @@
  * @author Lion Li
  */
 @Validated
-@Api(value = "浠g爜鐢熸垚", tags = {"浠g爜鐢熸垚绠$悊"})
+@Tag(name = "浠g爜鐢熸垚", description = "浠g爜鐢熸垚绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/tool/gen")
@@ -41,7 +41,7 @@
     /**
      * 鏌ヨ浠g爜鐢熸垚鍒楄〃
      */
-    @ApiOperation("鏌ヨ浠g爜鐢熸垚鍒楄〃")
+    @Operation(summary = "鏌ヨ浠g爜鐢熸垚鍒楄〃")
     @SaCheckPermission("tool:gen:list")
     @GetMapping("/list")
     public TableDataInfo<GenTable> genList(GenTable genTable, PageQuery pageQuery) {
@@ -51,7 +51,7 @@
     /**
      * 淇敼浠g爜鐢熸垚涓氬姟
      */
-    @ApiOperation("淇敼浠g爜鐢熸垚涓氬姟")
+    @Operation(summary = "淇敼浠g爜鐢熸垚涓氬姟")
     @SaCheckPermission("tool:gen:query")
     @GetMapping(value = "/{tableId}")
     public R<Map<String, Object>> getInfo(@PathVariable Long tableId) {
@@ -68,7 +68,7 @@
     /**
      * 鏌ヨ鏁版嵁搴撳垪琛�
      */
-    @ApiOperation("鏌ヨ鏁版嵁搴撳垪琛�")
+    @Operation(summary = "鏌ヨ鏁版嵁搴撳垪琛�")
     @SaCheckPermission("tool:gen:list")
     @GetMapping("/db/list")
     public TableDataInfo<GenTable> dataList(GenTable genTable, PageQuery pageQuery) {
@@ -78,7 +78,7 @@
     /**
      * 鏌ヨ鏁版嵁琛ㄥ瓧娈靛垪琛�
      */
-    @ApiOperation("鏌ヨ鏁版嵁琛ㄥ瓧娈靛垪琛�")
+    @Operation(summary = "鏌ヨ鏁版嵁琛ㄥ瓧娈靛垪琛�")
     @SaCheckPermission("tool:gen:list")
     @GetMapping(value = "/column/{tableId}")
     public TableDataInfo<GenTableColumn> columnList(Long tableId) {
@@ -92,7 +92,7 @@
     /**
      * 瀵煎叆琛ㄧ粨鏋勶紙淇濆瓨锛�
      */
-    @ApiOperation("瀵煎叆琛ㄧ粨鏋勶紙淇濆瓨锛�")
+    @Operation(summary = "瀵煎叆琛ㄧ粨鏋勶紙淇濆瓨锛�")
     @SaCheckPermission("tool:gen:import")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.IMPORT)
     @PostMapping("/importTable")
@@ -107,7 +107,7 @@
     /**
      * 淇敼淇濆瓨浠g爜鐢熸垚涓氬姟
      */
-    @ApiOperation("淇敼淇濆瓨浠g爜鐢熸垚涓氬姟")
+    @Operation(summary = "淇敼淇濆瓨浠g爜鐢熸垚涓氬姟")
     @SaCheckPermission("tool:gen:edit")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -120,7 +120,7 @@
     /**
      * 鍒犻櫎浠g爜鐢熸垚
      */
-    @ApiOperation("鍒犻櫎浠g爜鐢熸垚")
+    @Operation(summary = "鍒犻櫎浠g爜鐢熸垚")
     @SaCheckPermission("tool:gen:remove")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.DELETE)
     @DeleteMapping("/{tableIds}")
@@ -132,7 +132,7 @@
     /**
      * 棰勮浠g爜
      */
-    @ApiOperation("棰勮浠g爜")
+    @Operation(summary = "棰勮浠g爜")
     @SaCheckPermission("tool:gen:preview")
     @GetMapping("/preview/{tableId}")
     public R<Map<String, String>> preview(@PathVariable("tableId") Long tableId) throws IOException {
@@ -143,7 +143,7 @@
     /**
      * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級
      */
-    @ApiOperation("鐢熸垚浠g爜锛堜笅杞芥柟寮忥級")
+    @Operation(summary = "鐢熸垚浠g爜锛堜笅杞芥柟寮忥級")
     @SaCheckPermission("tool:gen:code")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE)
     @GetMapping("/download/{tableName}")
@@ -155,7 +155,7 @@
     /**
      * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛�
      */
-    @ApiOperation("鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛�")
+    @Operation(summary = "鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛�")
     @SaCheckPermission("tool:gen:code")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE)
     @GetMapping("/genCode/{tableName}")
@@ -167,7 +167,7 @@
     /**
      * 鍚屾鏁版嵁搴�
      */
-    @ApiOperation("鍚屾鏁版嵁搴�")
+    @Operation(summary = "鍚屾鏁版嵁搴�")
     @SaCheckPermission("tool:gen:edit")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.UPDATE)
     @GetMapping("/synchDb/{tableName}")
@@ -179,7 +179,7 @@
     /**
      * 鎵归噺鐢熸垚浠g爜
      */
-    @ApiOperation("鎵归噺鐢熸垚浠g爜")
+    @Operation(summary = "鎵归噺鐢熸垚浠g爜")
     @SaCheckPermission("tool:gen:code")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE)
     @GetMapping("/batchGenCode")
diff --git a/ruoyi-generator/src/main/resources/vm/java/bo.java.vm b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm
index 13b9873..0d0af36 100644
--- a/ruoyi-generator/src/main/resources/vm/java/bo.java.vm
+++ b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm
@@ -33,7 +33,7 @@
 
 @Data
 @EqualsAndHashCode(callSuper = true)
-@ApiModel("${functionName}涓氬姟瀵硅薄")
+@Schema(name = "${functionName}涓氬姟瀵硅薄")
 public class ${ClassName}Bo extends ${Entity} {
 
 #foreach ($column in $columns)
@@ -49,14 +49,14 @@
 #set($Group="EditGroup.class")
 #end
 #if($column.isRequired == 1)
-    @ApiModelProperty(value = "$column.columnComment", required = true)
+    @Schema(name = "$column.columnComment", required = true)
 #if($column.javaType == 'String')
     @NotBlank(message = "$column.columnComment涓嶈兘涓虹┖", groups = { $Group })
 #else
     @NotNull(message = "$column.columnComment涓嶈兘涓虹┖", groups = { $Group })
 #end
 #else
-    @ApiModelProperty(value = "$column.columnComment")
+    @Schema(name = "$column.columnComment")
 #end
     private $column.javaType $column.javaField;
 
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 6b2fc65..9ea772f 100644
--- a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm
+++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm
@@ -27,9 +27,8 @@
 import com.ruoyi.common.core.page.TableDataInfo;
 #elseif($table.tree)
 #end
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 
 /**
  * ${functionName}Controller
@@ -38,7 +37,7 @@
  * @date ${datetime}
  */
 @Validated
-@Api(value = "${functionName}鎺у埗鍣�", tags = {"${functionName}绠$悊"})
+@Tag(name ="${functionName}鎺у埗鍣�", description = "${functionName}绠$悊")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/${moduleName}/${businessName}")
@@ -49,7 +48,7 @@
     /**
      * 鏌ヨ${functionName}鍒楄〃
      */
-    @ApiOperation("鏌ヨ${functionName}鍒楄〃")
+    @Operation(summary = "鏌ヨ${functionName}鍒楄〃")
     @SaCheckPermission("${permissionPrefix}:list")
     @GetMapping("/list")
 #if($table.crud || $table.sub)
@@ -66,7 +65,7 @@
     /**
      * 瀵煎嚭${functionName}鍒楄〃
      */
-    @ApiOperation("瀵煎嚭${functionName}鍒楄〃")
+    @Operation(summary = "瀵煎嚭${functionName}鍒楄〃")
     @SaCheckPermission("${permissionPrefix}:export")
     @Log(title = "${functionName}", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
@@ -78,10 +77,10 @@
     /**
      * 鑾峰彇${functionName}璇︾粏淇℃伅
      */
-    @ApiOperation("鑾峰彇${functionName}璇︾粏淇℃伅")
+    @Operation(summary = "鑾峰彇${functionName}璇︾粏淇℃伅")
     @SaCheckPermission("${permissionPrefix}:query")
     @GetMapping("/{${pkColumn.javaField}}")
-    public R<${ClassName}Vo> getInfo(@ApiParam("涓婚敭")
+    public R<${ClassName}Vo> getInfo(@Parameter(name = "涓婚敭")
                                      @NotNull(message = "涓婚敭涓嶈兘涓虹┖")
                                      @PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) {
         return R.ok(i${ClassName}Service.queryById(${pkColumn.javaField}));
@@ -90,7 +89,7 @@
     /**
      * 鏂板${functionName}
      */
-    @ApiOperation("鏂板${functionName}")
+    @Operation(summary = "鏂板${functionName}")
     @SaCheckPermission("${permissionPrefix}:add")
     @Log(title = "${functionName}", businessType = BusinessType.INSERT)
     @RepeatSubmit()
@@ -102,7 +101,7 @@
     /**
      * 淇敼${functionName}
      */
-    @ApiOperation("淇敼${functionName}")
+    @Operation(summary = "淇敼${functionName}")
     @SaCheckPermission("${permissionPrefix}:edit")
     @Log(title = "${functionName}", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
@@ -114,11 +113,11 @@
     /**
      * 鍒犻櫎${functionName}
      */
-    @ApiOperation("鍒犻櫎${functionName}")
+    @Operation(summary = "鍒犻櫎${functionName}")
     @SaCheckPermission("${permissionPrefix}:remove")
     @Log(title = "${functionName}", businessType = BusinessType.DELETE)
     @DeleteMapping("/{${pkColumn.javaField}s}")
-    public R<Void> remove(@ApiParam("涓婚敭涓�")
+    public R<Void> remove(@Parameter(name = "涓婚敭涓�")
                                        @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
                                        @PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) {
         return toAjax(i${ClassName}Service.deleteWithValidByIds(Arrays.asList(${pkColumn.javaField}s), true) ? 1 : 0);
diff --git a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm
index 216e90f..1fc974d 100644
--- a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm
+++ b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm
@@ -21,7 +21,7 @@
  * @date ${datetime}
  */
 @Data
-@ApiModel("${functionName}瑙嗗浘瀵硅薄")
+@Schema(name = "${functionName}瑙嗗浘瀵硅薄")
 @ExcelIgnoreUnannotated
 public class ${ClassName}Vo {
 
@@ -47,7 +47,7 @@
 #else
     @ExcelProperty(value = "${comment}")
 #end
-    @ApiModelProperty("$column.columnComment")
+    @Schema(name = "$column.columnComment")
     private $column.javaType $column.javaField;
 
 #end
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java
index 632c71a..b42eb3d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java
@@ -1,8 +1,7 @@
 package com.ruoyi.system.domain;
 
 import com.ruoyi.common.utils.StringUtils;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -13,31 +12,31 @@
  */
 @Data
 @NoArgsConstructor
-@ApiModel("缂撳瓨淇℃伅")
+@Schema(name = "缂撳瓨淇℃伅")
 public class SysCache {
 
     /**
      * 缂撳瓨鍚嶇О
      */
-    @ApiModelProperty(value = "缂撳瓨鍚嶇О")
+    @Schema(name = "缂撳瓨鍚嶇О")
     private String cacheName = "";
 
     /**
      * 缂撳瓨閿悕
      */
-    @ApiModelProperty(value = "缂撳瓨閿悕")
+    @Schema(name = "缂撳瓨閿悕")
     private String cacheKey = "";
 
     /**
      * 缂撳瓨鍐呭
      */
-    @ApiModelProperty(value = "缂撳瓨鍐呭")
+    @Schema(name = "缂撳瓨鍐呭")
     private String cacheValue = "";
 
     /**
      * 澶囨敞
      */
-    @ApiModelProperty(value = "澶囨敞")
+    @Schema(name = "澶囨敞")
     private String remark = "";
 
     public SysCache(String cacheName, String remark) {
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
index b1091b4..9462557 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
@@ -7,8 +7,7 @@
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.convert.ExcelDictConvert;
 import com.ruoyi.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -25,13 +24,13 @@
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_config")
 @ExcelIgnoreUnannotated
-@ApiModel("鍙傛暟閰嶇疆涓氬姟瀵硅薄")
+@Schema(name = "鍙傛暟閰嶇疆涓氬姟瀵硅薄")
 public class SysConfig extends BaseEntity {
 
     /**
      * 鍙傛暟涓婚敭
      */
-    @ApiModelProperty(value = "鍙傛暟涓婚敭")
+    @Schema(name = "鍙傛暟涓婚敭")
     @ExcelProperty(value = "鍙傛暟涓婚敭")
     @TableId(value = "config_id")
     private Long configId;
@@ -39,7 +38,7 @@
     /**
      * 鍙傛暟鍚嶇О
      */
-    @ApiModelProperty(value = "鍙傛暟鍚嶇О")
+    @Schema(name = "鍙傛暟鍚嶇О")
     @ExcelProperty(value = "鍙傛暟鍚嶇О")
     @NotBlank(message = "鍙傛暟鍚嶇О涓嶈兘涓虹┖")
     @Size(min = 0, max = 100, message = "鍙傛暟鍚嶇О涓嶈兘瓒呰繃100涓瓧绗�")
@@ -48,7 +47,7 @@
     /**
      * 鍙傛暟閿悕
      */
-    @ApiModelProperty(value = "鍙傛暟閿悕")
+    @Schema(name = "鍙傛暟閿悕")
     @ExcelProperty(value = "鍙傛暟閿悕")
     @NotBlank(message = "鍙傛暟閿悕闀垮害涓嶈兘涓虹┖")
     @Size(min = 0, max = 100, message = "鍙傛暟閿悕闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
@@ -57,7 +56,7 @@
     /**
      * 鍙傛暟閿��
      */
-    @ApiModelProperty(value = "鍙傛暟閿��")
+    @Schema(name = "鍙傛暟閿��")
     @ExcelProperty(value = "鍙傛暟閿��")
     @NotBlank(message = "鍙傛暟閿�间笉鑳戒负绌�")
     @Size(min = 0, max = 500, message = "鍙傛暟閿�奸暱搴︿笉鑳借秴杩�500涓瓧绗�")
@@ -66,7 +65,7 @@
     /**
      * 绯荤粺鍐呯疆锛圷鏄� N鍚︼級
      */
-    @ApiModelProperty(value = "绯荤粺鍐呯疆锛圷鏄� N鍚︼級")
+    @Schema(name = "绯荤粺鍐呯疆锛圷鏄� N鍚︼級")
     @ExcelProperty(value = "绯荤粺鍐呯疆", converter = ExcelDictConvert.class)
     @ExcelDictFormat(dictType = "sys_yes_no")
     private String configType;
@@ -74,7 +73,7 @@
     /**
      * 澶囨敞
      */
-    @ApiModelProperty(value = "澶囨敞")
+    @Schema(name = "澶囨敞")
     private String remark;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java
index de095ec..d878006 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java
@@ -7,8 +7,7 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.convert.ExcelDictConvert;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -25,14 +24,14 @@
 @Data
 @TableName("sys_logininfor")
 @ExcelIgnoreUnannotated
-@ApiModel("绯荤粺璁块棶璁板綍涓氬姟瀵硅薄")
+@Schema(name = "绯荤粺璁块棶璁板綍涓氬姟瀵硅薄")
 public class SysLogininfor implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * ID
      */
-    @ApiModelProperty(value = "璁块棶ID")
+    @Schema(name = "璁块棶ID")
     @ExcelProperty(value = "搴忓彿")
     @TableId(value = "info_id")
     private Long infoId;
@@ -40,14 +39,14 @@
     /**
      * 鐢ㄦ埛璐﹀彿
      */
-    @ApiModelProperty(value = "鐢ㄦ埛璐﹀彿")
+    @Schema(name = "鐢ㄦ埛璐﹀彿")
     @ExcelProperty(value = "鐢ㄦ埛璐﹀彿")
     private String userName;
 
     /**
      * 鐧诲綍鐘舵�� 0鎴愬姛 1澶辫触
      */
-    @ApiModelProperty(value = "鐧诲綍鐘舵�� 0鎴愬姛 1澶辫触")
+    @Schema(name = "鐧诲綍鐘舵�� 0鎴愬姛 1澶辫触")
     @ExcelProperty(value = "鐧诲綍鐘舵��", converter = ExcelDictConvert.class)
     @ExcelDictFormat(dictType = "sys_common_status")
     private String status;
@@ -55,49 +54,49 @@
     /**
      * 鐧诲綍IP鍦板潃
      */
-    @ApiModelProperty(value = "鐧诲綍IP鍦板潃")
+    @Schema(name = "鐧诲綍IP鍦板潃")
     @ExcelProperty(value = "鐧诲綍鍦板潃")
     private String ipaddr;
 
     /**
      * 鐧诲綍鍦扮偣
      */
-    @ApiModelProperty(value = "鐧诲綍鍦扮偣")
+    @Schema(name = "鐧诲綍鍦扮偣")
     @ExcelProperty(value = "鐧诲綍鍦扮偣")
     private String loginLocation;
 
     /**
      * 娴忚鍣ㄧ被鍨�
      */
-    @ApiModelProperty(value = "娴忚鍣ㄧ被鍨�")
+    @Schema(name = "娴忚鍣ㄧ被鍨�")
     @ExcelProperty(value = "娴忚鍣�")
     private String browser;
 
     /**
      * 鎿嶄綔绯荤粺
      */
-    @ApiModelProperty(value = "鎿嶄綔绯荤粺")
+    @Schema(name = "鎿嶄綔绯荤粺")
     @ExcelProperty(value = "鎿嶄綔绯荤粺")
     private String os;
 
     /**
      * 鎻愮ず娑堟伅
      */
-    @ApiModelProperty(value = "鎻愮ず娑堟伅")
+    @Schema(name = "鎻愮ず娑堟伅")
     @ExcelProperty(value = "鎻愮ず娑堟伅")
     private String msg;
 
     /**
      * 璁块棶鏃堕棿
      */
-    @ApiModelProperty(value = "璁块棶鏃堕棿")
+    @Schema(name = "璁块棶鏃堕棿")
     @ExcelProperty(value = "璁块棶鏃堕棿")
     private Date loginTime;
 
     /**
      * 璇锋眰鍙傛暟
      */
-    @ApiModelProperty(value = "璇锋眰鍙傛暟")
+    @Schema(name = "璇锋眰鍙傛暟")
     @TableField(exist = false)
     private Map<String, Object> params = new HashMap<>();
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java
index 2371bb7..36177c8 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java
@@ -4,7 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.common.xss.Xss;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -25,7 +25,7 @@
     /**
      * 鍏憡ID
      */
-    @ApiModelProperty(value = "鍏憡ID")
+    @Schema(name = "鍏憡ID")
     @TableId(value = "notice_id")
     private Long noticeId;
 
@@ -33,7 +33,7 @@
      * 鍏憡鏍囬
      */
     @Xss(message = "鍏憡鏍囬涓嶈兘鍖呭惈鑴氭湰瀛楃")
-    @ApiModelProperty(value = "鍏憡鏍囬")
+    @Schema(name = "鍏憡鏍囬")
     @NotBlank(message = "鍏憡鏍囬涓嶈兘涓虹┖")
     @Size(min = 0, max = 50, message = "鍏憡鏍囬涓嶈兘瓒呰繃50涓瓧绗�")
     private String noticeTitle;
@@ -41,25 +41,25 @@
     /**
      * 鍏憡绫诲瀷锛�1閫氱煡 2鍏憡锛�
      */
-    @ApiModelProperty(value = "鍏憡绫诲瀷锛�1閫氱煡 2鍏憡锛�")
+    @Schema(name = "鍏憡绫诲瀷锛�1閫氱煡 2鍏憡锛�")
     private String noticeType;
 
     /**
      * 鍏憡鍐呭
      */
-    @ApiModelProperty(value = "鍏憡鍐呭")
+    @Schema(name = "鍏憡鍐呭")
     private String noticeContent;
 
     /**
      * 鍏憡鐘舵�侊紙0姝e父 1鍏抽棴锛�
      */
-    @ApiModelProperty(value = "鍏憡鐘舵�侊紙0姝e父 1鍏抽棴锛�")
+    @Schema(name = "鍏憡鐘舵�侊紙0姝e父 1鍏抽棴锛�")
     private String status;
 
     /**
      * 澶囨敞
      */
-    @ApiModelProperty(value = "澶囨敞")
+    @Schema(name = "澶囨敞")
     private String remark;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java
index f6f3737..ebb3a4b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java
@@ -7,8 +7,7 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.convert.ExcelDictConvert;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -25,7 +24,7 @@
 @Data
 @TableName("sys_oper_log")
 @ExcelIgnoreUnannotated
-@ApiModel("鎿嶄綔鏃ュ織璁板綍涓氬姟瀵硅薄")
+@Schema(name = "鎿嶄綔鏃ュ織璁板綍涓氬姟瀵硅薄")
 public class SysOperLog implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -33,7 +32,7 @@
     /**
      * 鏃ュ織涓婚敭
      */
-    @ApiModelProperty(value = "鏃ュ織涓婚敭")
+    @Schema(name = "鏃ュ織涓婚敭")
     @ExcelProperty(value = "鏃ュ織涓婚敭")
     @TableId(value = "oper_id")
     private Long operId;
@@ -41,14 +40,14 @@
     /**
      * 鎿嶄綔妯″潡
      */
-    @ApiModelProperty(value = "鎿嶄綔妯″潡")
+    @Schema(name = "鎿嶄綔妯″潡")
     @ExcelProperty(value = "鎿嶄綔妯″潡")
     private String title;
 
     /**
      * 涓氬姟绫诲瀷锛�0鍏跺畠 1鏂板 2淇敼 3鍒犻櫎锛�
      */
-    @ApiModelProperty(value = "涓氬姟绫诲瀷锛�0鍏跺畠 1鏂板 2淇敼 3鍒犻櫎锛�")
+    @Schema(name = "涓氬姟绫诲瀷锛�0鍏跺畠 1鏂板 2淇敼 3鍒犻櫎锛�")
     @ExcelProperty(value = "涓氬姟绫诲瀷", converter = ExcelDictConvert.class)
     @ExcelDictFormat(dictType = "sys_oper_type")
     private Integer businessType;
@@ -56,28 +55,28 @@
     /**
      * 涓氬姟绫诲瀷鏁扮粍
      */
-    @ApiModelProperty(value = "涓氬姟绫诲瀷鏁扮粍")
+    @Schema(name = "涓氬姟绫诲瀷鏁扮粍")
     @TableField(exist = false)
     private Integer[] businessTypes;
 
     /**
      * 璇锋眰鏂规硶
      */
-    @ApiModelProperty(value = "璇锋眰鏂规硶")
+    @Schema(name = "璇锋眰鏂规硶")
     @ExcelProperty(value = "璇锋眰鏂规硶")
     private String method;
 
     /**
      * 璇锋眰鏂瑰紡
      */
-    @ApiModelProperty(value = "璇锋眰鏂瑰紡")
+    @Schema(name = "璇锋眰鏂瑰紡")
     @ExcelProperty(value = "璇锋眰鏂瑰紡")
     private String requestMethod;
 
     /**
      * 鎿嶄綔绫诲埆锛�0鍏跺畠 1鍚庡彴鐢ㄦ埛 2鎵嬫満绔敤鎴凤級
      */
-    @ApiModelProperty(value = "鎿嶄綔绫诲埆锛�0鍏跺畠 1鍚庡彴鐢ㄦ埛 2鎵嬫満绔敤鎴凤級")
+    @Schema(name = "鎿嶄綔绫诲埆锛�0鍏跺畠 1鍚庡彴鐢ㄦ埛 2鎵嬫満绔敤鎴凤級")
     @ExcelProperty(value = "鎿嶄綔绫诲埆", converter = ExcelDictConvert.class)
     @ExcelDictFormat(readConverterExp = "0=鍏跺畠,1=鍚庡彴鐢ㄦ埛,2=鎵嬫満绔敤鎴�")
     private Integer operatorType;
@@ -85,56 +84,56 @@
     /**
      * 鎿嶄綔浜哄憳
      */
-    @ApiModelProperty(value = "鎿嶄綔浜哄憳")
+    @Schema(name = "鎿嶄綔浜哄憳")
     @ExcelProperty(value = "鎿嶄綔浜哄憳")
     private String operName;
 
     /**
      * 閮ㄩ棬鍚嶇О
      */
-    @ApiModelProperty(value = "閮ㄩ棬鍚嶇О")
+    @Schema(name = "閮ㄩ棬鍚嶇О")
     @ExcelProperty(value = "閮ㄩ棬鍚嶇О")
     private String deptName;
 
     /**
      * 璇锋眰url
      */
-    @ApiModelProperty(value = "璇锋眰url")
+    @Schema(name = "璇锋眰url")
     @ExcelProperty(value = "璇锋眰鍦板潃")
     private String operUrl;
 
     /**
      * 鎿嶄綔鍦板潃
      */
-    @ApiModelProperty(value = "鎿嶄綔鍦板潃")
+    @Schema(name = "鎿嶄綔鍦板潃")
     @ExcelProperty(value = "鎿嶄綔鍦板潃")
     private String operIp;
 
     /**
      * 鎿嶄綔鍦扮偣
      */
-    @ApiModelProperty(value = "鎿嶄綔鍦扮偣")
+    @Schema(name = "鎿嶄綔鍦扮偣")
     @ExcelProperty(value = "鎿嶄綔鍦扮偣")
     private String operLocation;
 
     /**
      * 璇锋眰鍙傛暟
      */
-    @ApiModelProperty(value = "璇锋眰鍙傛暟")
+    @Schema(name = "璇锋眰鍙傛暟")
     @ExcelProperty(value = "璇锋眰鍙傛暟")
     private String operParam;
 
     /**
      * 杩斿洖鍙傛暟
      */
-    @ApiModelProperty(value = "杩斿洖鍙傛暟")
+    @Schema(name = "杩斿洖鍙傛暟")
     @ExcelProperty(value = "杩斿洖鍙傛暟")
     private String jsonResult;
 
     /**
      * 鎿嶄綔鐘舵�侊紙0姝e父 1寮傚父锛�
      */
-    @ApiModelProperty(value = "鎿嶄綔鐘舵�侊紙0姝e父 1寮傚父锛�")
+    @Schema(name = "鎿嶄綔鐘舵�侊紙0姝e父 1寮傚父锛�")
     @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
     @ExcelDictFormat(dictType = "sys_common_status")
     private Integer status;
@@ -142,21 +141,21 @@
     /**
      * 閿欒娑堟伅
      */
-    @ApiModelProperty(value = "閿欒娑堟伅")
+    @Schema(name = "閿欒娑堟伅")
     @ExcelProperty(value = "閿欒娑堟伅")
     private String errorMsg;
 
     /**
      * 鎿嶄綔鏃堕棿
      */
-    @ApiModelProperty(value = "鎿嶄綔鏃堕棿")
+    @Schema(name = "鎿嶄綔鏃堕棿")
     @ExcelProperty(value = "鎿嶄綔鏃堕棿")
     private Date operTime;
 
     /**
      * 璇锋眰鍙傛暟
      */
-    @ApiModelProperty(value = "璇锋眰鍙傛暟")
+    @Schema(name = "璇锋眰鍙傛暟")
     @TableField(exist = false)
     private Map<String, Object> params = new HashMap<>();
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java
index d0c968e..f479a88 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java
@@ -8,8 +8,7 @@
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.convert.ExcelDictConvert;
 import com.ruoyi.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -27,13 +26,13 @@
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_post")
 @ExcelIgnoreUnannotated
-@ApiModel("宀椾綅淇℃伅涓氬姟瀵硅薄")
+@Schema(name = "宀椾綅淇℃伅涓氬姟瀵硅薄")
 public class SysPost extends BaseEntity {
 
     /**
      * 宀椾綅搴忓彿
      */
-    @ApiModelProperty(value = "宀椾綅搴忓彿")
+    @Schema(name = "宀椾綅搴忓彿")
     @ExcelProperty(value = "宀椾綅搴忓彿")
     @TableId(value = "post_id")
     private Long postId;
@@ -41,7 +40,7 @@
     /**
      * 宀椾綅缂栫爜
      */
-    @ApiModelProperty(value = "宀椾綅缂栫爜")
+    @Schema(name = "宀椾綅缂栫爜")
     @ExcelProperty(value = "宀椾綅缂栫爜")
     @NotBlank(message = "宀椾綅缂栫爜涓嶈兘涓虹┖")
     @Size(min = 0, max = 64, message = "宀椾綅缂栫爜闀垮害涓嶈兘瓒呰繃64涓瓧绗�")
@@ -50,7 +49,7 @@
     /**
      * 宀椾綅鍚嶇О
      */
-    @ApiModelProperty(value = "宀椾綅鍚嶇О")
+    @Schema(name = "宀椾綅鍚嶇О")
     @ExcelProperty(value = "宀椾綅鍚嶇О")
     @NotBlank(message = "宀椾綅鍚嶇О涓嶈兘涓虹┖")
     @Size(min = 0, max = 50, message = "宀椾綅鍚嶇О闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
@@ -59,7 +58,7 @@
     /**
      * 宀椾綅鎺掑簭
      */
-    @ApiModelProperty(value = "宀椾綅鎺掑簭")
+    @Schema(name = "宀椾綅鎺掑簭")
     @ExcelProperty(value = "宀椾綅鎺掑簭")
     @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
     private Integer postSort;
@@ -67,7 +66,7 @@
     /**
      * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
      */
-    @ApiModelProperty(value = "鐘舵�侊紙0姝e父 1鍋滅敤锛�")
+    @Schema(name = "鐘舵�侊紙0姝e父 1鍋滅敤锛�")
     @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
     @ExcelDictFormat(dictType = "sys_common_status")
     private String status;
@@ -75,13 +74,13 @@
     /**
      * 澶囨敞
      */
-    @ApiModelProperty(value = "澶囨敞")
+    @Schema(name = "澶囨敞")
     private String remark;
 
     /**
      * 鐢ㄦ埛鏄惁瀛樺湪姝ゅ矖浣嶆爣璇� 榛樿涓嶅瓨鍦�
      */
-    @ApiModelProperty(value = "鐢ㄦ埛鏄惁瀛樺湪姝ゅ矖浣嶆爣璇� 榛樿涓嶅瓨鍦�")
+    @Schema(name = "鐢ㄦ埛鏄惁瀛樺湪姝ゅ矖浣嶆爣璇� 榛樿涓嶅瓨鍦�")
     @TableField(exist = false)
     private boolean flag = false;
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java
index c3043c2..a0497c8 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java
@@ -3,8 +3,7 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 /**
@@ -15,20 +14,20 @@
 
 @Data
 @TableName("sys_role_dept")
-@ApiModel("瑙掕壊鍜岄儴闂ㄥ叧鑱�")
+@Schema(name = "瑙掕壊鍜岄儴闂ㄥ叧鑱�")
 public class SysRoleDept {
 
     /**
      * 瑙掕壊ID
      */
     @TableId(type = IdType.INPUT)
-    @ApiModelProperty(value = "瑙掕壊ID")
+    @Schema(name = "瑙掕壊ID")
     private Long roleId;
 
     /**
      * 閮ㄩ棬ID
      */
-    @ApiModelProperty(value = "閮ㄩ棬ID")
+    @Schema(name = "閮ㄩ棬ID")
     private Long deptId;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java
index f3e4dd7..5c99a0e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java
@@ -3,8 +3,7 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 /**
@@ -15,20 +14,20 @@
 
 @Data
 @TableName("sys_role_menu")
-@ApiModel("瑙掕壊鍜岃彍鍗曞叧鑱�")
+@Schema(name = "瑙掕壊鍜岃彍鍗曞叧鑱�")
 public class SysRoleMenu {
 
     /**
      * 瑙掕壊ID
      */
     @TableId(type = IdType.INPUT)
-    @ApiModelProperty(value = "瑙掕壊ID")
+    @Schema(name = "瑙掕壊ID")
     private Long roleId;
 
     /**
      * 鑿滃崟ID
      */
-    @ApiModelProperty(value = "瑙掕壊ID")
+    @Schema(name = "瑙掕壊ID")
     private Long menuId;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java
index 605d164..4473d3b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java
@@ -1,7 +1,6 @@
 package com.ruoyi.system.domain;
 
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 /**
@@ -11,55 +10,55 @@
  */
 
 @Data
-@ApiModel("褰撳墠鍦ㄧ嚎浼氳瘽涓氬姟瀵硅薄")
+@Schema(name = "褰撳墠鍦ㄧ嚎浼氳瘽涓氬姟瀵硅薄")
 public class SysUserOnline {
 
     /**
      * 浼氳瘽缂栧彿
      */
-    @ApiModelProperty(value = "浼氳瘽缂栧彿")
+    @Schema(name = "浼氳瘽缂栧彿")
     private String tokenId;
 
     /**
      * 閮ㄩ棬鍚嶇О
      */
-    @ApiModelProperty(value = "閮ㄩ棬鍚嶇О")
+    @Schema(name = "閮ㄩ棬鍚嶇О")
     private String deptName;
 
     /**
      * 鐢ㄦ埛鍚嶇О
      */
-    @ApiModelProperty(value = "鐢ㄦ埛鍚嶇О")
+    @Schema(name = "鐢ㄦ埛鍚嶇О")
     private String userName;
 
     /**
      * 鐧诲綍IP鍦板潃
      */
-    @ApiModelProperty(value = "鐧诲綍IP鍦板潃")
+    @Schema(name = "鐧诲綍IP鍦板潃")
     private String ipaddr;
 
     /**
      * 鐧诲綍鍦板潃
      */
-    @ApiModelProperty(value = "鐧诲綍鍦板潃")
+    @Schema(name = "鐧诲綍鍦板潃")
     private String loginLocation;
 
     /**
      * 娴忚鍣ㄧ被鍨�
      */
-    @ApiModelProperty(value = "娴忚鍣ㄧ被鍨�")
+    @Schema(name = "娴忚鍣ㄧ被鍨�")
     private String browser;
 
     /**
      * 鎿嶄綔绯荤粺
      */
-    @ApiModelProperty(value = "鎿嶄綔绯荤粺")
+    @Schema(name = "鎿嶄綔绯荤粺")
     private String os;
 
     /**
      * 鐧诲綍鏃堕棿
      */
-    @ApiModelProperty(value = "鐧诲綍鏃堕棿")
+    @Schema(name = "鐧诲綍鏃堕棿")
     private Long loginTime;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java
index 243e3c8..6a5f43c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java
@@ -3,8 +3,7 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 /**
@@ -15,20 +14,20 @@
 
 @Data
 @TableName("sys_user_post")
-@ApiModel("鐢ㄦ埛鍜屽矖浣嶅叧鑱�")
+@Schema(name = "鐢ㄦ埛鍜屽矖浣嶅叧鑱�")
 public class SysUserPost {
 
     /**
      * 鐢ㄦ埛ID
      */
     @TableId(type = IdType.INPUT)
-    @ApiModelProperty(value = "鐢ㄦ埛ID")
+    @Schema(name = "鐢ㄦ埛ID")
     private Long userId;
 
     /**
      * 宀椾綅ID
      */
-    @ApiModelProperty(value = "宀椾綅ID")
+    @Schema(name = "宀椾綅ID")
     private Long postId;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java
index 5fa712a..4be15f8 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java
@@ -3,8 +3,7 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 /**
@@ -15,20 +14,20 @@
 
 @Data
 @TableName("sys_user_role")
-@ApiModel("鐢ㄦ埛鍜岃鑹插叧鑱�")
+@Schema(name = "鐢ㄦ埛鍜岃鑹插叧鑱�")
 public class SysUserRole {
 
     /**
      * 鐢ㄦ埛ID
      */
     @TableId(type = IdType.INPUT)
-    @ApiModelProperty(value = "鐢ㄦ埛ID")
+    @Schema(name = "鐢ㄦ埛ID")
     private Long userId;
 
     /**
      * 瑙掕壊ID
      */
-    @ApiModelProperty(value = "瑙掕壊ID")
+    @Schema(name = "瑙掕壊ID")
     private Long roleId;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java
index c48ae5b..bc1d296 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java
@@ -1,8 +1,7 @@
 package com.ruoyi.system.domain.bo;
 
 import com.ruoyi.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -13,33 +12,33 @@
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@ApiModel("OSS瀵硅薄瀛樺偍鍒嗛〉鏌ヨ瀵硅薄")
+@Schema(name = "OSS瀵硅薄瀛樺偍鍒嗛〉鏌ヨ瀵硅薄")
 public class SysOssBo extends BaseEntity {
 
     /**
      * 鏂囦欢鍚�
      */
-    @ApiModelProperty("鏂囦欢鍚�")
+    @Schema(name = "鏂囦欢鍚�")
     private String fileName;
     /**
      * 鍘熷悕
      */
-    @ApiModelProperty("鍘熷悕")
+    @Schema(name = "鍘熷悕")
     private String originalName;
     /**
      * 鏂囦欢鍚庣紑鍚�
      */
-    @ApiModelProperty("鏂囦欢鍚庣紑鍚�")
+    @Schema(name = "鏂囦欢鍚庣紑鍚�")
     private String fileSuffix;
     /**
      * URL鍦板潃
      */
-    @ApiModelProperty("URL鍦板潃")
+    @Schema(name = "URL鍦板潃")
     private String url;
     /**
      * 鏈嶅姟鍟�
      */
-    @ApiModelProperty("鏈嶅姟鍟�")
+    @Schema(name = "鏈嶅姟鍟�")
     private String service;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java
index 5ac4e96..b45a378 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java
@@ -3,8 +3,7 @@
 import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -22,20 +21,20 @@
 
 @Data
 @EqualsAndHashCode(callSuper = true)
-@ApiModel("瀵硅薄瀛樺偍閰嶇疆涓氬姟瀵硅薄")
+@Schema(name = "瀵硅薄瀛樺偍閰嶇疆涓氬姟瀵硅薄")
 public class SysOssConfigBo extends BaseEntity {
 
     /**
      * 涓诲缓
      */
-    @ApiModelProperty(value = "涓诲缓", required = true)
+    @Schema(name = "涓诲缓", required = true)
     @NotNull(message = "涓诲缓涓嶈兘涓虹┖", groups = {EditGroup.class})
     private Long ossConfigId;
 
     /**
      * 閰嶇疆key
      */
-    @ApiModelProperty(value = "閰嶇疆key", required = true)
+    @Schema(name = "閰嶇疆key", required = true)
     @NotBlank(message = "閰嶇疆key涓嶈兘涓虹┖", groups = {AddGroup.class, EditGroup.class})
     @Size(min = 2, max = 100, message = "configKey闀垮害蹇呴』浠嬩簬2鍜�20 涔嬮棿")
     private String configKey;
@@ -43,7 +42,7 @@
     /**
      * accessKey
      */
-    @ApiModelProperty(value = "accessKey", required = true)
+    @Schema(name = "accessKey", required = true)
     @NotBlank(message = "accessKey涓嶈兘涓虹┖", groups = {AddGroup.class, EditGroup.class})
     @Size(min = 2, max = 100, message = "accessKey闀垮害蹇呴』浠嬩簬2鍜�100 涔嬮棿")
     private String accessKey;
@@ -51,7 +50,7 @@
     /**
      * 绉橀挜
      */
-    @ApiModelProperty(value = "secretKey", required = true)
+    @Schema(name = "secretKey", required = true)
     @NotBlank(message = "secretKey涓嶈兘涓虹┖", groups = {AddGroup.class, EditGroup.class})
     @Size(min = 2, max = 100, message = "secretKey闀垮害蹇呴』浠嬩簬2鍜�100 涔嬮棿")
     private String secretKey;
@@ -59,7 +58,7 @@
     /**
      * 妗跺悕绉�
      */
-    @ApiModelProperty(value = "妗跺悕绉�", required = true)
+    @Schema(name = "妗跺悕绉�", required = true)
     @NotBlank(message = "妗跺悕绉颁笉鑳戒负绌�", groups = {AddGroup.class, EditGroup.class})
     @Size(min = 2, max = 100, message = "bucketName闀垮害蹇呴』浠嬩簬2鍜�100涔嬮棿")
     private String bucketName;
@@ -67,13 +66,13 @@
     /**
      * 鍓嶇紑
      */
-    @ApiModelProperty(value = "鍓嶇紑")
+    @Schema(name = "鍓嶇紑")
     private String prefix;
 
     /**
      * 璁块棶绔欑偣
      */
-    @ApiModelProperty(value = "璁块棶绔欑偣", required = true)
+    @Schema(name = "璁块棶绔欑偣", required = true)
     @NotBlank(message = "璁块棶绔欑偣涓嶈兘涓虹┖", groups = {AddGroup.class, EditGroup.class})
     @Size(min = 2, max = 100, message = "endpoint闀垮害蹇呴』浠嬩簬2鍜�100涔嬮棿")
     private String endpoint;
@@ -81,37 +80,37 @@
     /**
      * 鑷畾涔夊煙鍚�
      */
-    @ApiModelProperty("鑷畾涔夊煙鍚�")
+    @Schema(name = "鑷畾涔夊煙鍚�")
     private String domain;
 
     /**
      * 鏄惁https锛圷=鏄�,N=鍚︼級
      */
-    @ApiModelProperty("鏄惁https锛圷=鏄�,N=鍚︼級")
+    @Schema(name = "鏄惁https锛圷=鏄�,N=鍚︼級")
     private String isHttps;
 
     /**
      * 鐘舵�侊紙0=姝e父,1=鍋滅敤锛�
      */
-    @ApiModelProperty("鐘舵�侊紙0=姝e父,1=鍋滅敤锛�")
+    @Schema(name = "鐘舵�侊紙0=姝e父,1=鍋滅敤锛�")
     private String status;
 
     /**
      * 鍩�
      */
-    @ApiModelProperty(value = "鍩�")
+    @Schema(name = "鍩�")
     private String region;
 
     /**
      * 鎵╁睍瀛楁
      */
-    @ApiModelProperty(value = "鎵╁睍瀛楁")
+    @Schema(name = "鎵╁睍瀛楁")
     private String ext1;
 
     /**
      * 澶囨敞
      */
-    @ApiModelProperty(value = "澶囨敞")
+    @Schema(name = "澶囨敞")
     private String remark;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java
index d3e1a35..3b864da 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java
@@ -1,8 +1,7 @@
 package com.ruoyi.system.domain.vo;
 
 import com.ruoyi.common.utils.StringUtils;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 /**
@@ -12,31 +11,31 @@
  */
 
 @Data
-@ApiModel("璺敱鏄剧ず淇℃伅")
+@Schema(name = "璺敱鏄剧ず淇℃伅")
 public class MetaVo {
 
     /**
      * 璁剧疆璇ヨ矾鐢卞湪渚ц竟鏍忓拰闈㈠寘灞戜腑灞曠ず鐨勫悕瀛�
      */
-    @ApiModelProperty(value = "璁剧疆璇ヨ矾鐢卞湪渚ц竟鏍忓拰闈㈠寘灞戜腑灞曠ず鐨勫悕瀛�")
+    @Schema(name = "璁剧疆璇ヨ矾鐢卞湪渚ц竟鏍忓拰闈㈠寘灞戜腑灞曠ず鐨勫悕瀛�")
     private String title;
 
     /**
      * 璁剧疆璇ヨ矾鐢辩殑鍥炬爣锛屽搴旇矾寰剆rc/assets/icons/svg
      */
-    @ApiModelProperty(value = "璁剧疆璇ヨ矾鐢辩殑鍥炬爣锛屽搴旇矾寰剆rc/assets/icons/svg")
+    @Schema(name = "璁剧疆璇ヨ矾鐢辩殑鍥炬爣锛屽搴旇矾寰剆rc/assets/icons/svg")
     private String icon;
 
     /**
      * 璁剧疆涓簍rue锛屽垯涓嶄細琚� <keep-alive>缂撳瓨
      */
-    @ApiModelProperty(value = "璁剧疆涓簍rue锛屽垯涓嶄細琚� <keep-alive>缂撳瓨")
+    @Schema(name = "璁剧疆涓簍rue锛屽垯涓嶄細琚� <keep-alive>缂撳瓨")
     private boolean noCache;
 
     /**
      * 鍐呴摼鍦板潃锛坔ttp(s)://寮�澶达級
      */
-    @ApiModelProperty(value = "鍐呴摼鍦板潃锛坔ttp(s)://寮�澶达級")
+    @Schema(name = "鍐呴摼鍦板潃锛坔ttp(s)://寮�澶达級")
     private String link;
 
     public MetaVo(String title, String icon) {
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java
index a451bb9..7f961a7 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java
@@ -1,8 +1,7 @@
 package com.ruoyi.system.domain.vo;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.util.List;
@@ -14,61 +13,61 @@
  */
 @Data
 @JsonInclude(JsonInclude.Include.NON_EMPTY)
-@ApiModel("璺敱閰嶇疆淇℃伅")
+@Schema(name = "璺敱閰嶇疆淇℃伅")
 public class RouterVo {
 
     /**
      * 璺敱鍚嶅瓧
      */
-    @ApiModelProperty(value = "璺敱鍚嶅瓧")
+    @Schema(name = "璺敱鍚嶅瓧")
     private String name;
 
     /**
      * 璺敱鍦板潃
      */
-    @ApiModelProperty(value = "璺敱鍦板潃")
+    @Schema(name = "璺敱鍦板潃")
     private String path;
 
     /**
      * 鏄惁闅愯棌璺敱锛屽綋璁剧疆 true 鐨勬椂鍊欒璺敱涓嶄細鍐嶄晶杈规爮鍑虹幇
      */
-    @ApiModelProperty(value = "鏄惁闅愯棌璺敱锛屽綋璁剧疆 true 鐨勬椂鍊欒璺敱涓嶄細鍐嶄晶杈规爮鍑虹幇")
+    @Schema(name = "鏄惁闅愯棌璺敱锛屽綋璁剧疆 true 鐨勬椂鍊欒璺敱涓嶄細鍐嶄晶杈规爮鍑虹幇")
     private boolean hidden;
 
     /**
      * 閲嶅畾鍚戝湴鍧�锛屽綋璁剧疆 noRedirect 鐨勬椂鍊欒璺敱鍦ㄩ潰鍖呭睉瀵艰埅涓笉鍙鐐瑰嚮
      */
-    @ApiModelProperty(value = "閲嶅畾鍚戝湴鍧�锛屽綋璁剧疆 noRedirect 鐨勬椂鍊欒璺敱鍦ㄩ潰鍖呭睉瀵艰埅涓笉鍙鐐瑰嚮")
+    @Schema(name = "閲嶅畾鍚戝湴鍧�锛屽綋璁剧疆 noRedirect 鐨勬椂鍊欒璺敱鍦ㄩ潰鍖呭睉瀵艰埅涓笉鍙鐐瑰嚮")
     private String redirect;
 
     /**
      * 缁勪欢鍦板潃
      */
-    @ApiModelProperty(value = "缁勪欢鍦板潃")
+    @Schema(name = "缁勪欢鍦板潃")
     private String component;
 
     /**
      * 璺敱鍙傛暟锛氬 {"id": 1, "name": "ry"}
      */
-    @ApiModelProperty(value = "璺敱鍙傛暟锛氬 {\"id\": 1, \"name\": \"ry\"}")
+    @Schema(name = "璺敱鍙傛暟锛氬 {\"id\": 1, \"name\": \"ry\"}")
     private String query;
 
     /**
      * 褰撲綘涓�涓矾鐢变笅闈㈢殑 children 澹版槑鐨勮矾鐢卞ぇ浜�1涓椂锛岃嚜鍔ㄤ細鍙樻垚宓屽鐨勬ā寮�--濡傜粍浠堕〉闈�
      */
-    @ApiModelProperty(value = "褰撲綘涓�涓矾鐢变笅闈㈢殑 children 澹版槑鐨勮矾鐢卞ぇ浜�1涓椂锛岃嚜鍔ㄤ細鍙樻垚宓屽鐨勬ā寮�--濡傜粍浠堕〉闈�")
+    @Schema(name = "褰撲綘涓�涓矾鐢变笅闈㈢殑 children 澹版槑鐨勮矾鐢卞ぇ浜�1涓椂锛岃嚜鍔ㄤ細鍙樻垚宓屽鐨勬ā寮�--濡傜粍浠堕〉闈�")
     private Boolean alwaysShow;
 
     /**
      * 鍏朵粬鍏冪礌
      */
-    @ApiModelProperty(value = "鍏朵粬鍏冪礌")
+    @Schema(name = "鍏朵粬鍏冪礌")
     private MetaVo meta;
 
     /**
      * 瀛愯矾鐢�
      */
-    @ApiModelProperty(value = "瀛愯矾鐢�")
+    @Schema(name = "瀛愯矾鐢�")
     private List<RouterVo> children;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java
index 20edaca..833dc3b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java
@@ -1,8 +1,7 @@
 package com.ruoyi.system.domain.vo;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 
@@ -14,7 +13,7 @@
  * @date 2021-08-13
  */
 @Data
-@ApiModel("瀵硅薄瀛樺偍閰嶇疆瑙嗗浘瀵硅薄")
+@Schema(name = "瀵硅薄瀛樺偍閰嶇疆瑙嗗浘瀵硅薄")
 @ExcelIgnoreUnannotated
 public class SysOssConfigVo {
 
@@ -23,79 +22,79 @@
     /**
      * 涓诲缓
      */
-    @ApiModelProperty("涓诲缓")
+    @Schema(name = "涓诲缓")
     private Long ossConfigId;
 
     /**
      * 閰嶇疆key
      */
-    @ApiModelProperty("閰嶇疆key")
+    @Schema(name = "閰嶇疆key")
     private String configKey;
 
     /**
      * accessKey
      */
-    @ApiModelProperty("accessKey")
+    @Schema(name = "accessKey")
     private String accessKey;
 
     /**
      * 绉橀挜
      */
-    @ApiModelProperty("secretKey")
+    @Schema(name = "secretKey")
     private String secretKey;
 
     /**
      * 妗跺悕绉�
      */
-    @ApiModelProperty("妗跺悕绉�")
+    @Schema(name = "妗跺悕绉�")
     private String bucketName;
 
     /**
      * 鍓嶇紑
      */
-    @ApiModelProperty("鍓嶇紑")
+    @Schema(name = "鍓嶇紑")
     private String prefix;
 
     /**
      * 璁块棶绔欑偣
      */
-    @ApiModelProperty("璁块棶绔欑偣")
+    @Schema(name = "璁块棶绔欑偣")
     private String endpoint;
 
     /**
      * 鑷畾涔夊煙鍚�
      */
-    @ApiModelProperty("鑷畾涔夊煙鍚�")
+    @Schema(name = "鑷畾涔夊煙鍚�")
     private String domain;
 
     /**
      * 鏄惁https锛圷=鏄�,N=鍚︼級
      */
-    @ApiModelProperty("鏄惁https锛圷=鏄�,N=鍚︼級")
+    @Schema(name = "鏄惁https锛圷=鏄�,N=鍚︼級")
     private String isHttps;
 
     /**
      * 鍩�
      */
-    @ApiModelProperty("鍩�")
+    @Schema(name = "鍩�")
     private String region;
 
     /**
      * 鐘舵�侊紙0=姝e父,1=鍋滅敤锛�
      */
-    @ApiModelProperty("鐘舵�侊紙0=姝e父,1=鍋滅敤锛�")
+    @Schema(name = "鐘舵�侊紙0=姝e父,1=鍋滅敤锛�")
     private String status;
 
     /**
      * 鎵╁睍瀛楁
      */
-    @ApiModelProperty("鎵╁睍瀛楁")
+    @Schema(name = "鎵╁睍瀛楁")
     private String ext1;
 
     /**
      * 澶囨敞
      */
-    @ApiModelProperty("澶囨敞")
+    @Schema(name = "澶囨敞")
     private String remark;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java
index eb2299e..b0b8da3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java
@@ -1,7 +1,6 @@
 package com.ruoyi.system.domain.vo;
 
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.util.Date;
@@ -12,7 +11,7 @@
  * @author Lion Li
  */
 @Data
-@ApiModel("OSS瀵硅薄瀛樺偍瑙嗗浘瀵硅薄")
+@Schema(name = "OSS瀵硅薄瀛樺偍瑙嗗浘瀵硅薄")
 public class SysOssVo {
 
     private static final long serialVersionUID = 1L;
@@ -20,49 +19,49 @@
     /**
      * 瀵硅薄瀛樺偍涓婚敭
      */
-    @ApiModelProperty("瀵硅薄瀛樺偍涓婚敭")
+    @Schema(name = "瀵硅薄瀛樺偍涓婚敭")
     private Long ossId;
 
     /**
      * 鏂囦欢鍚�
      */
-    @ApiModelProperty("鏂囦欢鍚�")
+    @Schema(name = "鏂囦欢鍚�")
     private String fileName;
 
     /**
      * 鍘熷悕
      */
-    @ApiModelProperty("鍘熷悕")
+    @Schema(name = "鍘熷悕")
     private String originalName;
 
     /**
      * 鏂囦欢鍚庣紑鍚�
      */
-    @ApiModelProperty("鏂囦欢鍚庣紑鍚�")
+    @Schema(name = "鏂囦欢鍚庣紑鍚�")
     private String fileSuffix;
 
     /**
      * URL鍦板潃
      */
-    @ApiModelProperty("URL鍦板潃")
+    @Schema(name = "URL鍦板潃")
     private String url;
 
     /**
      * 鍒涘缓鏃堕棿
      */
-    @ApiModelProperty("鍒涘缓鏃堕棿")
+    @Schema(name = "鍒涘缓鏃堕棿")
     private Date createTime;
 
     /**
      * 涓婁紶浜�
      */
-    @ApiModelProperty("涓婁紶浜�")
+    @Schema(name = "涓婁紶浜�")
     private String createBy;
 
     /**
      * 鏈嶅姟鍟�
      */
-    @ApiModelProperty("鏈嶅姟鍟�")
+    @Schema(name = "鏈嶅姟鍟�")
     private String service;
 
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java
index 98306f4..1ec3f9f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java
@@ -7,7 +7,6 @@
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.google.common.collect.Lists;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.domain.PageQuery;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -120,7 +119,7 @@
                 throw new ServiceException("绯荤粺鍐呯疆, 涓嶅彲鍒犻櫎!");
             }
         }
-        List<SysOssConfig> list = Lists.newArrayList();
+        List<SysOssConfig> list = CollUtil.newArrayList();
         for (Long configId : ids) {
             SysOssConfig config = baseMapper.selectById(configId);
             list.add(config);

--
Gitblit v1.9.3