Selaa lähdekoodia

fix: 1. 修复Milvus向量存储时索引越界 2. 移除无用首页

ageerle 2 kuukautta sitten
vanhempi
commit
0639a3ef16
100 muutettua tiedostoa jossa 3 lisäystä ja 5581 poistoa
  1. 1 1
      ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java
  2. 2 1
      ruoyi-admin/src/main/resources/application-dev.yml
  3. 0 46
      ruoyi-admin/src/main/resources/static/.gitignore
  4. 0 0
      ruoyi-admin/src/main/resources/static/.nojekyll
  5. 0 1
      ruoyi-admin/src/main/resources/static/CNAME
  6. 0 74
      ruoyi-admin/src/main/resources/static/README.md
  7. 0 32
      ruoyi-admin/src/main/resources/static/_coverpage.md
  8. 0 2
      ruoyi-admin/src/main/resources/static/_footer.md
  9. 0 9
      ruoyi-admin/src/main/resources/static/_navbar.md
  10. 0 16
      ruoyi-admin/src/main/resources/static/_sidebar.md
  11. 0 27
      ruoyi-admin/src/main/resources/static/common/add_group.md
  12. 0 7
      ruoyi-admin/src/main/resources/static/common/blacklist.md
  13. 0 18
      ruoyi-admin/src/main/resources/static/common/column.md
  14. 0 69
      ruoyi-admin/src/main/resources/static/common/contribution.md
  15. 0 13
      ruoyi-admin/src/main/resources/static/common/demo_system.md
  16. 0 37
      ruoyi-admin/src/main/resources/static/common/pr.md
  17. 0 80
      ruoyi-admin/src/main/resources/static/common/user_register.md
  18. 0 85
      ruoyi-admin/src/main/resources/static/common/video.md
  19. 0 74
      ruoyi-admin/src/main/resources/static/index.html
  20. 0 22
      ruoyi-admin/src/main/resources/static/plus-ui/_sidebar.md
  21. 0 234
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/common_func.md
  22. 0 55
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/component_use.md
  23. 0 4
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/content_copy.md
  24. 0 16
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dev_norm.md
  25. 0 4
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dict_use.md
  26. 0 4
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/exception_handling.md
  27. 0 4
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/icon_use.md
  28. 0 4
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/page_cache.md
  29. 0 4
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/param_use.md
  30. 0 4
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/permissions_use.md
  31. 0 65
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/request_process.md
  32. 0 82
      ruoyi-admin/src/main/resources/static/plus-ui/devdoc/router_use.md
  33. 0 53
      ruoyi-admin/src/main/resources/static/plus-ui/home.md
  34. 0 34
      ruoyi-admin/src/main/resources/static/questions/_sidebar.md
  35. 0 148
      ruoyi-admin/src/main/resources/static/questions/api_encrypt.md
  36. 0 10
      ruoyi-admin/src/main/resources/static/questions/bean_null.md
  37. 0 13
      ruoyi-admin/src/main/resources/static/questions/deploy_vue.md
  38. 0 41
      ruoyi-admin/src/main/resources/static/questions/domestic_databases.md
  39. 0 18
      ruoyi-admin/src/main/resources/static/questions/dubbo_ip.md
  40. 0 27
      ruoyi-admin/src/main/resources/static/questions/https_config.md
  41. 0 10
      ruoyi-admin/src/main/resources/static/questions/identify_fail.md
  42. 0 4
      ruoyi-admin/src/main/resources/static/questions/import_excel.md
  43. 0 12
      ruoyi-admin/src/main/resources/static/questions/jar_run_fail.md
  44. 0 3
      ruoyi-admin/src/main/resources/static/questions/jce_cannot.md
  45. 0 66
      ruoyi-admin/src/main/resources/static/questions/kinfe4j.md
  46. 0 69
      ruoyi-admin/src/main/resources/static/questions/login_step.md
  47. 0 4
      ruoyi-admin/src/main/resources/static/questions/lombok.md
  48. 0 35
      ruoyi-admin/src/main/resources/static/questions/nacos_naming_instance_metadata.md
  49. 0 15
      ruoyi-admin/src/main/resources/static/questions/nacos_read_fail.md
  50. 0 11
      ruoyi-admin/src/main/resources/static/questions/only_one_subscriber.md
  51. 0 40
      ruoyi-admin/src/main/resources/static/questions/parse_exception.md
  52. 0 15
      ruoyi-admin/src/main/resources/static/questions/permission_denied.md
  53. 0 11
      ruoyi-admin/src/main/resources/static/questions/read_metadata.md
  54. 0 8
      ruoyi-admin/src/main/resources/static/questions/sentinel_404.md
  55. 0 11
      ruoyi-admin/src/main/resources/static/questions/st_not_support.md
  56. 0 3
      ruoyi-admin/src/main/resources/static/questions/swagger.md
  57. 0 3
      ruoyi-admin/src/main/resources/static/questions/synchronous_update.md
  58. 0 20
      ruoyi-admin/src/main/resources/static/questions/use_druid.md
  59. 0 9
      ruoyi-admin/src/main/resources/static/questions/use_tomcat.md
  60. 0 70
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/_sidebar.md
  61. 0 1385
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/changlog.md
  62. 0 37
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/elk.md
  63. 0 26
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/es.md
  64. 0 9
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/kafka.md
  65. 0 20
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/maxkey.md
  66. 0 13
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/nacos.md
  67. 0 45
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/prometheus_grafana.md
  68. 0 10
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rabbitmq.md
  69. 0 9
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rocketmq.md
  70. 0 75
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/shardingproxy.md
  71. 0 41
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/skywalking.md
  72. 0 3
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/architecture_diagram.md
  73. 0 27
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/collaboration.md
  74. 0 88
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/doc.md
  75. 0 31
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/i18n.md
  76. 0 19
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/inner_authentication.md
  77. 0 39
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/new_module.md
  78. 0 33
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_package_name.md
  79. 0 25
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_url.md
  80. 0 85
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/client.md
  81. 0 86
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/code_generate.md
  82. 0 250
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/export.md
  83. 0 202
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/import.md
  84. 0 124
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/oss.md
  85. 0 29
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/page.md
  86. 0 158
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/param_check.md
  87. 0 144
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions.md
  88. 0 178
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions_control.md
  89. 0 26
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/router_release.md
  90. 0 68
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/social.md
  91. 0 121
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/tenant.md
  92. 0 85
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/user.md
  93. 0 12
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/about_join.md
  94. 0 19
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/key.md
  95. 0 6
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/test.md
  96. 0 45
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/transaction.md
  97. 0 39
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/api_encrypt.md
  98. 0 45
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md
  99. 0 38
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/encrypt.md
  100. 0 29
      ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/idempotent.md

+ 1 - 1
ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java

@@ -20,7 +20,7 @@ public class IndexController {
      */
     @GetMapping("/")
     public String index() {
-        return "index.html";
+        return "RuoYi-AI 启动成功!";
     }
 
     @GetMapping("/success")

+ 2 - 1
ruoyi-admin/src/main/resources/application-dev.yml

@@ -27,7 +27,8 @@ spring:
           driverClassName: com.mysql.cj.jdbc.Driver
           url: jdbc:mysql://43.139.70.230:3306/ruoyi-ai?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
           username: ruoyi-ai
-          password: xx
+          password: eCaZ278N62k6fhYj
+
 
       hikari:
         # 最大连接池数量

+ 0 - 46
ruoyi-admin/src/main/resources/static/.gitignore

@@ -1,46 +0,0 @@
-######################################################################
-# Build Tools
-
-.gradle
-/build/
-!gradle/wrapper/gradle-wrapper.jar
-
-target/
-!.mvn/wrapper/maven-wrapper.jar
-
-######################################################################
-# IDE
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### JRebel ###
-rebel.xml
-
-### NetBeans ###
-nbproject/private/
-build/*
-nbbuild/
-nbdist/
-.nb-gradle/
-
-######################################################################
-# Others
-*.log
-*.xml.versionsBackup
-*.swp
-
-!*/build/*.java
-!*/build/*.html
-!*/build/*.xml

+ 0 - 0
ruoyi-admin/src/main/resources/static/.nojekyll


+ 0 - 1
ruoyi-admin/src/main/resources/static/CNAME

@@ -1 +0,0 @@
-plus-doc.dromara.org

+ 0 - 74
ruoyi-admin/src/main/resources/static/README.md

@@ -1,74 +0,0 @@
-# 框架介绍
-- - -
-- `RuoYi-Vue-Plus` 分布式集群框架 [文档跳转](/ruoyi-vue-plus/home.md)
-- `RuoYi-Cloud-Plus` 微服务框架 [文档跳转](/ruoyi-cloud-plus/home.md)
-- `plus-ui` 统一 Vue3 前端项目 [文档跳转](/plus-ui/home.md)
-- `plus-doc` 统一文档项目
-
-## 特别赞助
-
-<a href="https://gitee.com/dromara/MaxKey"><img src="https://foruda.gitee.com/images/1700187453544179968/7342304a_1766278.png" width="400px" height="100px"></a>
-<a href="http://ccflow.org/?frm=ryPlus"><img src="https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png" width="400px" height="100px"></a>
-<br>
-<a href="http://www.shuduokeji.com"><img src="https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg" width="400px" height="100px"></a>
-<a href="https://www.jnpfsoft.com/index.html?from=plus-doc"><img src="https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png" width="400px" height="100px"></a>
-<br>
-<a href="https://item.jd.com/13928958.html?from=plus-doc"><img src="https://foruda.gitee.com/images/1723791569938403230/769e98da_1766278.jpeg" width="400px" height="100px"></a>
-
-[如何成为赞助商 加群联系作者详谈](/common/add_group.md)
-
-## 代码地址
-
-| 介绍         | 项目名              | 项目地址                                                                                                                   | 注意事项                       |
-|------------|:-----------------|------------------------------------------------------------------------------------------------------------------------|----------------------------|
-| 🔥 分布式集群框架 | RuoYi-Vue-Plus   | - [Gitee](https://gitee.com/dromara/RuoYi-Vue-Plus)<br> - [GitHub](https://github.com/dromara/RuoYi-Vue-Plus)    | 重写RuoYi-Vue全方位升级(不兼容原框架)   |
-| 🔥 微服务框架   | RuoYi-Cloud-Plus | - [Gitee](https://gitee.com/dromara/RuoYi-Cloud-Plus)<br>- [GitHub](https://github.com/dromara/RuoYi-Cloud-Plus) | 重写RuoYi-Cloud全方位升级(不兼容原框架) |
-| 🔥 统一前端项目  | plus-ui          | - [Gitee](https://gitee.com/JavaLionLi/plus-ui)<br>- [GitHub](https://github.com/JavaLionLi/plus-ui)                   | Vue与Cloud项目通用前端            |
-| 🔥 统一文档项目  | plus-doc         | - [Gitee](https://gitee.com/dromara/plus-doc)<br>- [GitHub](https://github.com/dromara/plus-doc)                  | 通用文档                       |
-
-
-## 业务功能
-
-| 功能    | 介绍                                    |
-|-------|---------------------------------------|
-| 租户管理  | 配置系统租户,支持 SaaS 场景下的多租户功能。             |
-| 用户管理  | 用户是系统操作者,该功能主要完成系统用户配置。               |
-| 部门管理  | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。       |
-| 岗位管理  | 配置系统用户所属担任职务。                         |
-| 菜单管理  | 配置系统菜单,操作权限,按钮权限标识等。                  |
-| 角色管理  | 角色菜单权限分配、设置角色按机构进行数据范围权限划分。           |
-| 字典管理  | 对系统中经常使用的一些较为固定的数据进行维护。               |
-| 参数管理  | 对系统动态配置常用参数。                          |
-| 通知公告  | 系统通知公告信息发布维护。                         |
-| 操作日志  | 系统正常操作日志记录和查询;系统异常信息日志记录和查询。          |
-| 登录日志  | 系统登录日志记录查询包含登录异常。                     |
-| 文件管理  | 系统文件上传、下载等管理。                         |
-| 定时任务  | 在线(添加、修改、删除)任务调度包含执行结果日志。             |
-| 代码生成  | 前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 |
-| 系统接口  | 根据业务代码自动生成相关的api接口文档。                 |
-| 服务监控  | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等。  |
-| 缓存监控  | 对系统的缓存信息查询,命令统计等。                     |
-| 在线构建器 | 拖动表单元素生成相应的HTML代码。                    |
-| 使用案例  | 系统的一些功能案例                             |
-
-## 关注作者
-
-作者博客: [https://lionli.blog.csdn.net/?type=blog](https://lionli.blog.csdn.net/?type=blog)
-
-公众号: **<狮子领域 程序圈>**
-<br>
-![输入图片说明](https://foruda.gitee.com/images/1678975769377570440/507062df_1766278.png "屏幕截图")
-
-## 捐献作者
-
-**作者为兼职做开源,平时还需要工作,如果帮到了您可以请作者吃个盒饭**
-<br>
-<img src="https://foruda.gitee.com/images/1725259663554875162/bd86a165_1766278.png" width="300px" height="450px" /><img src="https://foruda.gitee.com/images/1725259708005620620/22833e19_1766278.jpeg" width="300px" height="450px" />
-
-## Dromara 全家福
-
-社区仓库地址: [dromara开源社区](https://gitee.com/organizations/dromara/projects)
-
-![输入图片说明](https://foruda.gitee.com/images/1706071866226295002/68cffcf6_1766278.png "屏幕截图")
-
-

+ 0 - 32
ruoyi-admin/src/main/resources/static/_coverpage.md

@@ -1,32 +0,0 @@
-<!-- _coverpage.md -->
-<html>
-<img src="./static/image/logo2.png" width="260px" height="260px">
-<div style="display: flex; align-content:center; justify-content: center;">
-<div >
-<div style="font-weight: bold; font-size: 40px;">百搭AI</div>
-<!-- <div style="font-weight: bold; font-size: 40px;margin-bottom: 30px;">多租户权限管理系统</div> -->
-
-[![码云Gitee](https://gitee.com/ageerle/ruoyi-ai/badge/star.svg?theme=blue)](https://gitee.com/ageerle/ruoyi-ai)
-[![GitHub](https://img.shields.io/github/stars/ageerle/ruoyi-ai.svg?style=social&label=Stars)](https://github.com/dromara/RuoYi-Vue-Plus)
-[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/ageerle/ruoyi-ai/blob/master/LICENSE)
-<br>
-[![ruoyi-ai](https://img.shields.io/badge/ruoyi-ai-5.2.2-success.svg)](https://gitee.com/ageerle/ruoyi-ai)
-[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2-blue.svg)]()
-
-</div>
-<div>
-
-</div>
-
-</div>
-</html>
-
-> 百搭AI是一个整合了多种大语言模型API的开源平台,实现了AI对话、绘图、声音克隆和私有知识库等功能。
->
-> 平台配备管理后台,支持微信支付、微信公众号、微信多开、Stripe国际支付和百度文本审核等运营功能。
->
-> 项目采用Java+Vue+Vben5技术栈构建,遵循MIT License,允许二次开发并用于商业销售。
-
-Copyright ©  2023-2024 版权所有:ageerle@163.com 备案号:<a href="https://beian.miit.gov.cn/">鄂ICP备2023007672号</a>
-
-[开始使用 Let's Go](/README.md)

+ 0 - 2
ruoyi-admin/src/main/resources/static/_footer.md

@@ -1,2 +0,0 @@
-<!-- _footer.md 页脚配置 -->
-对文档有疑问?欢迎您帮助我们 [完善此文档](https://gitee.com/JavaLionLi/plus-doc) !

+ 0 - 9
ruoyi-admin/src/main/resources/static/_navbar.md

@@ -1,9 +0,0 @@
-<!-- _navbar.md -->
-
-* [文档导航](/README.md)
-* [Vue版本](/ruoyi-vue-plus/home.md)
-* [Cloud版本](/ruoyi-cloud-plus/home.md)
-* [前端文档](/plus-ui/home.md)
-* [常见问题](/questions/lombok.md)
-* [视频教程](/common/video.md)
-* [演示系统](/common/demo_system.md)

+ 0 - 16
ruoyi-admin/src/main/resources/static/_sidebar.md

@@ -1,16 +0,0 @@
-<!-- _sidebar.md -->
-- **特别赞助**
-- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus)
-- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com)
-- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc)
-
-- **开始**
-  - [框架介绍](/README.md)
-  - [演示系统](/common/demo_system.md)
-  - [官方视频教程](/common/video.md)
-  - [粉丝专栏](/common/column.md)
-  - [参与贡献项目](/common/contribution.md)
-  - [如何提交PR](/common/pr.md)
-  - [如何加群](/common/add_group.md)
-  - [使用者登记](/common/user_register.md)
-  - [黑名单](/common/blacklist.md)

+ 0 - 27
ruoyi-admin/src/main/resources/static/common/add_group.md

@@ -1,27 +0,0 @@
-# 加群方式
-- - -
-### 交流群(不提供任何问题解答 纯交流)
-
-**加 <小助手> 微信备注 <加群>**<br>
-**视频课程咨询或其他问题咨询请查看下方信息(小助手是机器人)**
-
-<img src="https://foruda.gitee.com/images/1680762410689884638/60b546ca_1766278.png" width="300" height="300">
-
-### VIP群(付费加群 提供问题解答、技术支持、技术分享)
-
-首先感谢 `RuoYi` 提供分享开源 框架基于 `RuoYi` 重写大部分功能实现<br>
-项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可<br>
-VIP群是作者提供的私人服务 不代表着项目收费
-
-> 问问题等于做习题 听作者解答问题等于习题讲解<br>
-> 一个人接触的问题有限 一群人接触的问题无限 早进群早接触更多的问题(每天99+)<br>
-> 承诺: 看见必回复 让你感受作者有多话痨<br>
-
-两种途径:
-1. 购买官方视频进群 [官方视频](/common/video.md)
-2. 扫描下方二维码付款进群(无视频)
-
-支付后申请加群即可 QQ群号 : **<637757165>**<br>
-
-**加群扫码**<br>
-<img src="https://foruda.gitee.com/images/1725259839682556495/2897bc86_1766278.png" width="300px" height="450px" /><img src="https://foruda.gitee.com/images/1725259806547656944/f870a5c7_1766278.jpeg" width="300px" height="450px" />

+ 0 - 7
ruoyi-admin/src/main/resources/static/common/blacklist.md

@@ -1,7 +0,0 @@
-# 黑名单
-- - -
-
-地址: https://github.com/QNAV/RuoYi-X-Plus
-<br>
-上榜缘由 使用本框架二次开源并未有任何声明与标注 将所有代码的作者名全都改成了自己 剽窃本框架代码
-

+ 0 - 18
ruoyi-admin/src/main/resources/static/common/column.md

@@ -1,18 +0,0 @@
-# 粉丝专栏
-- - -
-**由上到下 从易到难**
-
-> 粉丝整理 欢迎投稿
-
-| 作者            | 文档地址                                                          | 说明                 |
-|---------------|---------------------------------------------------------------|--------------------|
-| 抓蛙师           | https://www.bilibili.com/video/BV1TG41157Ef/                  | 学会问问题(小白必看)        |
-| 抓蛙师           | https://www.bilibili.com/video/BV1mr4y1j75M                   | Vue框架基础视频专栏(新人必看)  |
-| 抓蛙师           | https://www.bilibili.com/video/BV1Na411u7eC                   | Vue框架改造视频专栏(新人必看)  |
-| 抓蛙师           | https://www.bilibili.com/video/BV1te4y1D7hi                   | 小程序鉴权与uniapp联动     |
-| 抓蛙师           | https://www.bilibili.com/video/BV1zt4y137UP                   | 公众号集成              |
-| mayuanfei     | https://note.youdao.com/s/XpvKnxAb                            | 入门专栏(新人必看)         |
-| 程序猿一枚_        | https://blog.csdn.net/zhaozhiqiang1981/category_12221291.html | 玩转RuoYi-Cloud-Plus |
-| 程序猿一枚_        | https://www.bilibili.com/video/BV1yA411r7ji/                  | Cloud环境搭建以及进阶开发    |
-| MichelleChung | https://blog.csdn.net/michelle_zhong/category_11109741.html   | 源码解析专栏(进阶必看)       |
-| MichelleChung | https://blog.csdn.net/michelle_zhong/category_12058476.html   | Cloud源码解析专栏        |

+ 0 - 69
ruoyi-admin/src/main/resources/static/common/contribution.md

@@ -1,69 +0,0 @@
-# 参与贡献的方式
-- - -
-参与贡献开源的方式有很多种 听作者来介绍
-
-## 为开源项目点一个Star
-
-> Star的多少关系到项目能否被更多人看到
-<br>
-同时Star也是作者前进的动力(作者每天都在盯着Star 涨了会开心 跌了会失落)
-<br>
-<br>
-> 大家在寻找开源项目的时候, 大多数情况也是会先看Star比较多的项目
-<br>
-所以请给您觉得好的开源项目点一个小小的Star, 让好的项目能够被更多人看到
-<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678934493115487351/0c45121e_1766278.png "屏幕截图")
-<br>
-<font size="4">Vue版本: [Gitee我要点Star](https://gitee.com/dromara/RuoYi-Vue-Plus/stargazers) [Github我要点Star](https://github.com/dromara/RuoYi-Vue-Plus)</font>
-<br>
-<font size="4">Cloud版本: [Gitee我要点Star](https://gitee.com/dromara/RuoYi-Cloud-Plus/stargazers) [Github我要点Star](https://github.com/dromara/RuoYi-Cloud-Plus)</font>
-
-## 为社区处理问题
-
-> Issue是社区的交流地 大家会在这里提出自己的问题 或者是项目的功能异常
-
-> 提问的规范在Issue的模板里已经写好了 按照模板填写有助于作者或者其他社区人员快速有效的回答问题
-![输入图片说明](https://foruda.gitee.com/images/1678935068341532603/4b9d7af9_1766278.png "屏幕截图")
-
-> 为提出问题的小伙伴答疑 可以有效降的帮助别人<br>
-> 而且可以降低社区人员的精力分散 使精力全部投入到项目设计研发中
-![输入图片说明](https://foruda.gitee.com/images/1678935380481365514/dddc9ce9_1766278.png "屏幕截图")
-
-## 改进社区文档
-
-> 大家都知道 我们程序员都不擅长写作<br>
-> 有时候作者把文档写完了也不知道用户是什么感觉 是否能看懂<br>
-
-> 所以参与社区文档建设绝对是一件意义重大的事情<br>
-> 大家可以在Issue提出观后感 觉得哪看不懂 觉得哪应该详细说明<br>
-> 当然了 大家也可以对文档进行改进后提交PR修改申请
-
-<font size="6">文档仓库: [plus-doc](https://gitee.com/JavaLionLi/plus-doc) 👈点他点他</font>
-![输入图片说明](https://foruda.gitee.com/images/1678935992827063291/d7c4dc5b_1766278.png "屏幕截图")
-
-## 贡献代码
-
-> 想参与贡献代码的小伙伴 重点来了: 作者会经常在Issue里发布需求认领<br>
-> 觉得自己能做的可以在Issue里跟作者讨论 如需求还不够清晰 或者做的过程中遇到了什么问题
-
-<img src="https://foruda.gitee.com/images/1678936513184771725/f26349dd_1766278.png" width="550px" height="450px" />
-
-> 需求确定了以后就可以开始专注的写代码了<br>
-> 但在开始写代码之前 一定要先看一下如何正确的提交PR
-
-<font size="4">一点要仔细看: [如何提交PR](/common/pr.md) 👈点他点他</font>
-
-## 如何成为项目成员
-
-> 1.对框架有重大贡献者(由作者与团队成员判定)<br>
-> 2.完成社区发布的两项复杂任务<br>
-> 3.持续完成社区发布的简单任务若干(作者会关注到)<br>
-> 4.持续为社区优化文档或处理issue若干(作者会关注到)<br>
-
-## 项目成员待遇
-
-> 1.可免费进入vip收费群<br>
-> 2.每年还会发放IDEA正版授权<br>
-

+ 0 - 13
ruoyi-admin/src/main/resources/static/common/demo_system.md

@@ -1,13 +0,0 @@
-# 系统演示(请大家不要乱改数据 影响他人体验 谢谢配合)
-- - -
-**感谢 `孤舟烟雨` 贡献的演示服务器**
-
-**1核2G 小服务器 经不起压测 请理性操作 违者直接封IP**
-
-> 访问地址: [http://43.138.9.96/](http://43.138.9.96/)
-
-> 登录账户 admin/admin123
-
-> Admin监控中心 ruoyi/123456
-
-> 任务调度中心 admin/123456

+ 0 - 37
ruoyi-admin/src/main/resources/static/common/pr.md

@@ -1,37 +0,0 @@
-# 如何提交PR贡献代码
-- - -
-### 步骤一 Fork项目到自己仓库
-
-![输入图片说明](https://foruda.gitee.com/images/1673427084798343408/142a55d0_1766278.png "屏幕截图")
-
-### 步骤二 基于dev分支 新建一个此PR功能点的专属分支
-
-![输入图片说明](https://foruda.gitee.com/images/1673427220695789412/14c4f4ff_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1673427193964585607/16ea99d9_1766278.png "屏幕截图")
-
-### 步骤三 使用Git工具 将自己仓库的项目拉去到本地做代码编写
-
-![输入图片说明](https://foruda.gitee.com/images/1673427313201488937/f2df59bf_1766278.png "屏幕截图")
-
-### 步骤四 使用Idea打开项目 切换到新建的功能分支
-
-![输入图片说明](https://foruda.gitee.com/images/1673427394686229310/c479a5a5_1766278.png "屏幕截图")
-
-### 步骤五 将编写好的代码 提交到自己的远程仓库
-
-![输入图片说明](https://foruda.gitee.com/images/1673427519150795591/d88c2bc9_1766278.png "屏幕截图")
-
-### 步骤六 创建PR申请(此操作在自己仓库或者要PR的仓库都可以)
-
-![输入图片说明](https://foruda.gitee.com/images/1673427616155043776/fe2ce097_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1673427865031025513/0f58a137_1766278.png "屏幕截图")
-
-### 步骤七 等待作者评审 按要求更改 直到没有问题后被作者合并
-
-![输入图片说明](https://foruda.gitee.com/images/1673428029932524584/93234628_1766278.png "屏幕截图")
-
-### 评审期间 如需对PR内容做更改 直接在新功能分支提交代码即可
-### 无需重复提交PR申请 这边会自动比对两个分支的差异
-
-![输入图片说明](https://foruda.gitee.com/images/1673428054139366497/4ecb6e98_1766278.png "屏幕截图")
-

+ 0 - 80
ruoyi-admin/src/main/resources/static/common/user_register.md

@@ -1,80 +0,0 @@
-# 使用者登记
-- - -
-**使用此开源项目的公司或者组织**
-> Vue版本登记地址: https://gitee.com/dromara/RuoYi-Vue-Plus/issues/I4QP39
-
-> Cloud版本登记地址: https://gitee.com/dromara/RuoYi-Cloud-Plus/issues/I4VJ7G
-
-| 公司名               | 官网                             | LOGO                                                                                                           |
-|-------------------|:-------------------------------|----------------------------------------------------------------------------------------------------------------|
-| 中国联通(长春分公司)       | http://www.10010.com           | <img src="https://foruda.gitee.com/images/1679554727740431371/bd179d0f_1766278.png" width="300" height="200">  |
-| 中国电信(湖南分公司)       | http://www.189.cn/hn/          | <img src="https://foruda.gitee.com/images/1699838764871886313/61b44b7d_1766278.png" width="300" height="200">  |
-| 南京感知信息技术有限公司    | https://njgzxx.cn/             | <img src="https://foruda.gitee.com/images/1725589695335847776/10bb2088_1766278.png" width="400" height="200">  |
-| 陕西骏景索道运营管理有限公司  | https://www.junjingsuodao.com/    | <img src="https://foruda.gitee.com/images/1724394959451680041/24ac17ff_7408092.png" width="300" height="200">  |
-| 悠码科技有限公司           | https://orise.trytowish.cn/    | <img src="https://foruda.gitee.com/images/1722916054523975884/686ee49e_8929785.png" width="200" height="200">  |
-| 苏州龙的信息系统股份有限公司   | http://www.longdayinfo.com/         | <img src="https://foruda.gitee.com/images/1721182313605689705/f676882a_2113976.png" width="400" height="200">  |
-| 北京数通智达科技有限公司   | http://www.bzdtech.com/         | <img src="https://foruda.gitee.com/images/1717744899576682096/7d6cf41f_1766278.png" width="400" height="200">  |
-| 广州六六七七科技有限公司   | https://artiversehub.ai/         | <img src="https://foruda.gitee.com/images/1716976454631958575/44abbb05_1766278.png" width="300" height="200">  |
-| 宁波三品软件科技有限公司   | http://nbsanpin.com/         | <img src="https://foruda.gitee.com/images/1715845257022437822/1a096edc_14415359.png" width="300" height="200"> |
-| 北京御一科技信息技术有限公司 | https://www.yudoctor.com | <img src="https://foruda.gitee.com/images/1715157943995574211/09aa2229_1766278.png" width="400" height="200">  |
-| 成都卡恩特医疗科技有限公司 | http://www.scknot.com | <img src="https://foruda.gitee.com/images/1711091474880818044/96ddef90_1766278.png" width="400" height="200">  |
-| 无锡科艾思科技有限公司 | https://www.kyoeis.com | <img src="https://foruda.gitee.com/images/1710929131545545232/a87f838e_1766278.png" width="400" height="200">  |
-| 深圳市海联天下科技有限公司       | www.sealinkin.com          | <img src="https://foruda.gitee.com/images/1709870697911145583/453db298_1766278.png" width="400" height="200">  |
-| 上海非定义旅游服务有限公司       | http://www.anonymity.love/          | <img src="https://foruda.gitee.com/images/1706165274431234456/f4be93d3_1766278.png" width="400" height="200">  |
-| 重庆威爱云科技有限公司       | https://www.51vive.com          | <img src="https://foruda.gitee.com/images/1700460635019084607/f073724d_1766278.png" width="400" height="200">  |
-| 中城智联(成都)创新科技有限公司       | http://www.zc-zl.com/          | <img src="https://foruda.gitee.com/images/1699841115050735040/0d6893d1_1766278.png" width="300" height="200">  |
-| 浙江海亮股份有限公司       | https://www.hailiangstock.com          | <img src="https://foruda.gitee.com/images/1699841174631804104/fd3466fd_1766278.png" width="300" height="200">  |
-| 河北雄安山禾咨询工程有限公司       | https://shanheqei.club/          | <img src="https://foruda.gitee.com/images/1699855302878416881/6bfdb2d5_1766278.png" width="300" height="200">  |
-| 数舵(河北雄安)信息科技有限公司 | http://www.shuduokeji.com  | <img src="https://foruda.gitee.com/images/1698888517162767014/8a2840ff_1766278.png" width="400" height="200">  |
-| 南昌鼎欣科技股份有限公司 | https://www.openzt.com           | <img src="https://foruda.gitee.com/images/1697701810520579719/4da9666e_1766278.png" width="400" height="200">  |
-| 东莞市码载网络科技有限公司 | https://www.codeload.top           | <img src="https://foruda.gitee.com/images/1697618746817506398/57af2eaa_10583761.png" width="400" height="200"> |
-| 北京农信通科技有限责任公司 | http://www.nxt.com.cn           | <img src="https://foruda.gitee.com/images/1696428611360166577/72e7f7c4_971517.png" width="400" height="200">   |
-| 中康腾华网络科技(重庆)有限公司 | https://www.zkthwlkj.com/   | <img src="https://foruda.gitee.com/images/1695112845600729239/a16e34e2_1766278.png" width="200" height="100">  |
-| 杭州码恒信息科技有限公司      | http://www.mh-barcode.com/     | <img src="https://foruda.gitee.com/images/1690881482450489558/2d689bc1_1766278.png" width="400" height="200">  |
-| 南京晶益科技有限公司        | https://www.nanjingjingyi.com/ | <img src="https://foruda.gitee.com/images/1689576488369281878/bec504ce_1766278.png" width="400" height="200">  | 
-| 合肥智享亿云科技有限公司      | http://www.izxyy.com           | <img src="https://foruda.gitee.com/images/1685096398913604988/e6c16816_1766278.png" width="300" height="200">  |
-| 锡简科技              | https://www.xj-fast.com        | <img src="https://foruda.gitee.com/images/1683858424104223718/172f2c2e_1766278.png" width="300" height="200">  |
-| 福建亘前科技有限公司        | https://genqian.top            | <img src="https://foruda.gitee.com/images/1683170298723703161/891feff4_1766278.png" width="400" height="200">  |
-| 北京联宇信通科技有限公司      | http://www.lyxtkj.com/         | <img src="https://foruda.gitee.com/images/1680068618387237935/5e195ad8_1766278.png" width="400" height="200">  |
-| 厦门市熵时光科技有限公司      | https://www.xetsoft.com        | <img src="https://foruda.gitee.com/images/1672299365177532128/f0e78c26_1766278.png" width="400" height="200">  |
-| 广州润沁教育科技有限公司      | https://www.ca163.net          | <img src="https://foruda.gitee.com/images/1678976000893686992/1acbda54_1766278.png" width="400" height="200">  |
-| 广东乐善智能装备股份有限公司    | https://www.china-leshan.com/  | <img src="https://foruda.gitee.com/images/1672299473733272899/2065e28c_1766278.png" width="400" height="200">  |
-| 数字江西科技有限公司        | https://www.digitaljx.com/     | <img src="https://foruda.gitee.com/images/1660527156328976445/屏幕截图.png" width="300" height="200">              |
-| 上海极锐星瀚传感技术有限公司    | http://www.jrsensing.com/      | <img src="https://foruda.gitee.com/images/1669694597446652604/6997f99a_1766278.png" width="400" height="100">  |
-| 北京数影互联科技有限公司      | http://www.dataflying.top/     | <img src="https://foruda.gitee.com/images/1686118090145603656/46dbe579_1766278.png" width="200" height="100">  |
-| 广州创服信息科技有限公司      | https://www.cfkjcloud.com      | <img src="https://foruda.gitee.com/images/1678975960889135530/85fa904f_1766278.png" width="400" height="200">  |
-| 茂名云智科技有限公司        | http://www.winzkj.com          | <img src="https://foruda.gitee.com/images/1678975967691323451/6343e6b7_1766278.png" width="400" height="200">  |
-| 成都时光旅迹科技有限公司      | https://www.ttmup.com/         | <img src="https://foruda.gitee.com/images/1678975973935607983/a0f8dce2_1766278.png" width="400" height="200">  |
-| 成都炫影全息科技有限公司      | http://xyqxgs.com              | <img src="https://foruda.gitee.com/images/1678975979873588062/e34db081_1766278.png" width="400" height="200">  |
-| 中山厚德快速模具有限公司      | http://hordrt.com              | <img src="https://foruda.gitee.com/images/1678975986213675141/7436dcb9_1766278.png" width="400" height="200">  |
-| 深圳市深南夙星科技有限公司     | http://www.szsnsx.com/         | <img src="https://foruda.gitee.com/images/1678975994674685698/a2c05a6e_1766278.png" width="400" height="200">  |
-| 陕西华恒军创信息科技有限公司    | http://hhjc.cc                 | <img src="https://foruda.gitee.com/images/1678976006389002991/3786a1bc_1766278.png" width="400" height="200">  |
-| 河南小牛信息科技有限公司      | http://www.hnxn888.com/        | <img src="https://foruda.gitee.com/images/1681106560964010687/d8969ed2_1766278.png" width="200" height="100">  |
-| 武汉华智讯网络信息技术有限公司   | http://www.xun188.com          | <img src="https://foruda.gitee.com/images/1678975944577016382/93c4541d_1766278.png" width="200" height="100">  |
-| 易税信息技术有限公司        | https://www.etax.top           | <img src="https://foruda.gitee.com/images/1678975950137235651/211a63c4_1766278.png" width="200" height="100">  |
-| 广西华景城建筑设计有限公司     | http://www.hjcadc.com          | <img src="https://foruda.gitee.com/images/1678975955216975234/e83c8c6e_1766278.png" width="200" height="100">  |
-| 铭创科技有限公司          | https://www.mcck.cn/           | <img src="https://foruda.gitee.com/images/1693967206668467582/8c234a6d_1766278.png" width="200" height="100">  |
-| 西安鼎慧网络科技有限公司 |                                  | <img src="https://foruda.gitee.com/images/1721271356660437424/b85c5754_8776295.jpeg" width="400" height="200"> |
-| 营口鼎瑞网络科技有限公司 |                                  | <img src="https://foruda.gitee.com/images/1715836865319520119/5dc34a5f_8693506.png" width="400" height="200">  |
-| 南昌漫库书店有限公司        |                                | <img src="https://foruda.gitee.com/images/1687656369793887183/ce1a33f6_1766278.png" width="200" height="100">  |
-| 广西文韬智能科技有限公司      |                                | <img src="https://foruda.gitee.com/images/1678976034543683491/8d8a1ebe_1766278.png" width="200" height="100">  |
-| 贵州亿瑞祺科技有限公司      |                               |
-| 贵州新绿视界环保科技有限公司  |                             |
-| 湖南智才伯乐数据科技有限公司 |                            |
-| 德州商储超市有限公司    |                                |
-| 曲沃亿分科技中心        |                                |
-| 南京杰度信息技术有限公司 |                                |
-| 武汉忆秋科技有限公司 |                                      |
-| 济南千惠网络科技有限公司      |                                |
-| 江苏泛联科技有限公司        |                                |
-| 沈阳市果冻网络信息科技有限责任公司 |                                |
-| 灵劲科技有限公司          |                                |
-| 亿世达餐饮管理(北京)有限公司   |                                |
-| 深圳市凯帝电子商务有限公司     |                                |
-| 成都数智源蓉卡科技有限公司     |                                |
-| 上海振福信息科技有限公司      |                                |
-| 重庆六客会科技有限公司       |                                |
-| 无限创优(西安)科技有限公司    |                                |
-| 惠族网络科技发展有限公司      |                                |
-| 纳森科技有限公司          |                                |
-

+ 0 - 85
ruoyi-admin/src/main/resources/static/common/video.md

@@ -1,85 +0,0 @@
-# 视频教程(联合出品)
-
-### 主讲与后期剪辑: `抓蛙师` 
-
-抓蛙师简介: B站知名UP主 B站首页: https://space.bilibili.com/520725002
-
-### 知识点统筹与内容审核: `疯狂的狮子Li`
-
-疯狂的狮子Li简介: RuoYi-Vue-Plus 与 RuoYi-Cloud-Plus 作者
-
-## 已完结🎉🎉🎉 优惠价: 598(仅限前500名) ~~原价: 698~~
-
-**注意: 视频采用 RuoYi-Vue-Plus 版本 4.X 分支讲解!!! (内容为通用技术与版本关联性不大)**<br>
-**内容为框架内所用到的技术与设计原理(打破不知道、不会用、不知应用场景等问题)**
-
-课程简介: https://www.bilibili.com/video/BV16j411D7BX/
-<br>
-试看课程: https://www.bilibili.com/video/BV1uS411P7JD/
-<br>
-试看课程: https://www.bilibili.com/video/BV1vLbNeuESn/
-<br>
-试看课程: https://www.bilibili.com/video/BV1xV4y127KM/
-<br>
-试看课程: https://www.bilibili.com/video/BV1W5v8eBEgs/
-<br>
-课程总结: https://www.bilibili.com/video/BV1734y1g7fk/
-<br>
-
-## 购买方式
-
-**小本生意 用心录制 拒绝砍价 已更新到 236 集 课程完结**<br>
-> 课程咨询或购买请联系 价格598<br>
-> QQ:  906670865 (疯狂的狮子Li)<br>
-> QQ:  770492966 (抓蛙师)
-
-## 购买前常见问题答疑
-> 问题1: 购买后是否有群可以解答问题<br>
-> 答: 购买后有专属课程付费群(千人大群)讲师在线答疑
-> 
-> 问题2: 是否持续更新 如新版本功能<br>
-> 答: 课程目录即为全部课程内容 以课程目录为准 明年大概会出二期来讲新版本内容<br>
-> 因为持续更新会导致前面的技术老旧 新购买的人无法及时学习新技术<br>
-> 故而采用分期出课程制度 已经购买过的老客户 再次购买下一次会给力度非常大的折扣
-> 
-> 问题3: 目前视频未全部录制完成 后续更新是否二次收费<br>
-> 答: 视频目录即为全部视频内容 一次收费后续更新仍然可看直到视频全部更新完成(明年出二期课程不算在内)
->
-> 问题4: 视频如何下载如何观看<br>
-> 答: 视频文件已加密 采用专门的播放器(播放器只限制截图录屏等不限制其他软件使用) 由管理员发放授权码观看<br>
-> 支持通过 百度云 或者 阿里云 网盘下载视频资源
->
-> 问题5: 视频平均时长和总时长大概多久<br>
-> 答: 视频每集短的大概10分钟以上 长的大概40个分钟左右 平均时长20多分钟每集<br>
-> 目前已经录制了236集总时长为80多个小时
-> 
-> 问题6: 是否有讲解 Cloud 版本相关内容<br>
-> 答: 视频主要讲解内容为框架内所用到的技术与设计原理 无论什么版本 功能和设计都是一样的<br>
-> Cloud 版本只是多了 alibaba 的几个组件完全可以B站自学
-
-## 课程目录
-
-![输入图片说明](https://foruda.gitee.com/images/1695105467795304336/58fcd6db_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1695105494170842444/10f98fed_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1695105523526589287/f131c614_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1695105547992880680/9f4137f3_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1695105560849590514/d19fad6a_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1695105586641712428/349a971b_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1695105595501187093/fb819d35_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1695105609163585390/833dd89c_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1695105630469565265/8dbba1d2_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1695105659037093525/09a4f6e1_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1695714493079698007/311980ee_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1697446957351573520/cab3617d_1766278.png "屏幕截图")
-
-## 学员观后感
-
-|                                                                                             |                                                                                             |
-|---------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
-| ![输入图片说明](https://foruda.gitee.com/images/1691386100129796781/44b69dae_1766278.jpeg "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1691386076834242484/a6073f7d_1766278.png "屏幕截图")  |
-| ![输入图片说明](https://foruda.gitee.com/images/1691386089186649583/98ac8b7c_1766278.png "屏幕截图")  | ![输入图片说明](https://foruda.gitee.com/images/1691386108722171132/b937b23a_1766278.jpeg "屏幕截图") |
-| ![输入图片说明](https://foruda.gitee.com/images/1695714607596127461/513b6893_1766278.png "屏幕截图")  | ![输入图片说明](https://foruda.gitee.com/images/1692804549604261480/09ef12f6_1766278.png "屏幕截图")  |
-| ![输入图片说明](https://foruda.gitee.com/images/1692804541482477905/578e5448_1766278.png "屏幕截图")  | ![输入图片说明](https://foruda.gitee.com/images/1695714614517941469/cac681fb_1766278.png "屏幕截图")  |
-| ![输入图片说明](https://foruda.gitee.com/images/1698225407961714462/4d271901_1766278.png "屏幕截图")  | ![输入图片说明](https://foruda.gitee.com/images/1698225416488201339/30572e7f_1766278.png "屏幕截图")  |
-| ![输入图片说明](https://foruda.gitee.com/images/1698807198508085566/16c37a1b_1766278.png "屏幕截图")  | ![输入图片说明](https://foruda.gitee.com/images/1698807208125772586/ceed632e_1766278.png "屏幕截图")  |
-| ![输入图片说明](https://foruda.gitee.com/images/1698807214013013096/ad3bc016_1766278.png "屏幕截图")  | ![输入图片说明](https://foruda.gitee.com/images/1698807221010472627/72b10901_1766278.png "屏幕截图")  | 

+ 0 - 74
ruoyi-admin/src/main/resources/static/index.html

@@ -1,74 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>plus-doc</title>
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
-    <meta name="description" content="Description">
-    <meta name="viewport"
-          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
-    <!-- 设置浏览器图标 -->
-    <link rel="icon" href="./static/image/favicon.ico" type="image/x-icon"/>
-    <link rel="shortcut icon" href="./static/image/favicon.ico" type="image/x-icon"/>
-    <meta charset="UTF-8">
-    <!-- 默认主题 -->
-    <link rel="stylesheet" href="./static/css/vue.css">
-</head>
-<body>
-<div id="app"></div>
-<script>
-    window.$docsify = {
-        // 项目名称
-        name: 'ruoyi-ai',
-        // 仓库地址,点击右上角的Github章鱼猫头像会跳转到此地址
-        repo: 'https://gitee.com/ruoyi-ai',
-        // 侧边栏支持,默认加载的是项目根目录下的_sidebar.md文件
-        loadSidebar: true,
-        // 导航栏支持,默认加载的是项目根目录下的_navbar.md文件
-        loadNavbar: true,
-        // 封面支持,默认加载的是项目根目录下的_coverpage.md文件
-        coverpage: true,
-        // 最大支持渲染的标题层级
-        maxLevel: 5,
-        // 自定义侧边栏后默认不会再生成目录,设置生成目录的最大层级(建议配置为2-4)
-        subMaxLevel: 4,
-        // 小屏设备下合并导航栏到侧边栏
-        mergeNavbar: true,
-        // 页脚支持,默认加载的是 _footer.md
-        loadFooter: true,
-        // 首页只展示封面(默认为false,与README.md进行拼接)
-        onlyCover: true,
-        search: {
-            maxAge: 86400000,// 过期时间,单位毫秒,默认一天
-            paths: 'auto',// 注意:仅适用于 paths: 'auto' 模式
-            placeholder: '👉👉👉在这里搜索关键字👈👈👈',
-            noData: '找不到结果',
-            depth: 4,
-            hideOtherSidebarContent: false,
-            namespace: 'Docsify-Guide',
-        }
-    }
-</script>
-<!-- docsify的js依赖 -->
-<script src="./static/js/docsify.min.js"></script>
-<!-- emoji表情支持 -->
-<script src="./static/js/emoji.min.js"></script>
-<!-- 图片放大缩小支持 -->
-<script src="./static/js/zoom-image.min.js"></script>
-<!-- 搜索功能支持 -->
-<script src="./static/js/search.min.js"></script>
-<!--在所有的代码块上添加一个简单的Click to copy按钮来允许用户从你的文档中轻易地复制代码-->
-<script src="./static/js/docsify-copy-code.min.js"></script>
-
-<!-- 回到顶部 -->
-<script src="./static/js/docsify-scroll-to-top.min.js"></script>
-<!-- 分页导航 -->
-<script src="./static/js/docsify-pagination.min.js"></script>
-<!-- 页脚-->
-<script src="./static/js/docsify-footer.min.js"></script>
-
-<!-- 代码高亮 -->
-<script src="./static/js/prism-typescript.min.js"></script>
-<script src="./static/js/prism-bash.min.js"></script>
-</body>
-</html>

+ 0 - 22
ruoyi-admin/src/main/resources/static/plus-ui/_sidebar.md

@@ -1,22 +0,0 @@
-<!-- _sidebar.md -->
-- **特别赞助**
-- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus)
-- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com)
-- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc)
-
-
-* **简介**
-  * [项目简介](/plus-ui/home.md)
-* **开发文档**
-  * [通用方法](/plus-ui/devdoc/common_func.md)
-  * [开发规范](/plus-ui/devdoc/dev_norm.md)
-  * [请求流程](/plus-ui/devdoc/request_process.md)
-  * [路由使用](/plus-ui/devdoc/router_use.md)
-  * [组件使用](/plus-ui/devdoc/component_use.md)
-  * [权限使用](/plus-ui/devdoc/permissions_use.md)
-  * [页签缓存](/plus-ui/devdoc/page_cache.md)
-  * [使用图标](/plus-ui/devdoc/icon_use.md)
-  * [使用字典](/plus-ui/devdoc/dict_use.md)
-  * [使用参数](/plus-ui/devdoc/param_use.md)
-  * [异常处理](/plus-ui/devdoc/exception_handling.md)
-  * [内容复制](/plus-ui/devdoc/content_copy.md)

+ 0 - 234
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/common_func.md

@@ -1,234 +0,0 @@
-# 通用方法
-- - -
-
-### $tab对象
-> `$tab`对象用于做页签操作、刷新页签、关闭页签、打开页签、修改页签等,它定义在`plugins/tab.ts`文件中,它有如下方法
-* 打开页签
-
-```typescript
-// 打开页签
-proxy?.$tab.openPage('/system/user');
-// 打开页签并指定页签标题
-proxy?.$tab.openPage('/system/user', '用户管理');
-proxy?.$tab.openPage('/system/user', '用户管理').then(() => {
-    // 执行结束的逻辑
-})
-```
-
-* 修改页签
-
-```typescript
-// 修改当前页签
-const obj = Object.assign({}, route, { title: '自定义标题' });
-proxy?.$tab.updatePage(obj);
-```
-* 关闭页签
-
-```typescript
-// 关闭当前
-proxy?.$tab.closePage();
-// 关闭指定页签
-const obj = { path: "/system/user", name: "User" };
-proxy?.$tab.closePage(obj);
-
-proxy?.$tab.closePage(obj).then(() => {
-    // 执行结束的逻辑
-})
-```
-
-* 刷新页签
-
-```typescript
-// 刷新当前页签
-proxy?.$tab.refreshPage();
-
-// 刷新指定页签
-const obj = { path: "/system/user", name: "User" };
-proxy?.$tab.refreshPage(obj);
-
-proxy?.$tab.refreshPage(obj).then(() => {
-    // 执行结束的逻辑
-})
-```
-
-* 关闭所有页签
-
-```typescript
-proxy?.$tab.closeAllPage();
-
-proxy?.$tab.closeAllPage().then(() => {
-  // 执行结束的逻辑
-})
-```
-
-* 关闭左侧页签
-
-```typescript
-// 关闭当前页签的左侧页签
-proxy?.$tab.closeLeftPage();
-
-// 关闭指定页签的左侧页签
-const obj = { path: "/system/user", name: "User" };
-proxy?.$tab.closeLeftPage(obj);
-
-proxy?.$tab.closeLeftPage(obj).then(() => {
-  // 执行结束的逻辑
-})
-```
-
-* 关闭右侧页签
-
-```typescript
-// 关闭当前页签的右侧页签
-proxy?.$tab.closeRightPage();
-
-// 关闭指定页签的右侧页签
-const obj = { path: "/system/user", name: "User" };
-proxy?.$tab.closeRightPage(obj);
-
-proxy?.$tab.closeRightPage(obj).then(() => {
-  // 执行结束的逻辑
-})
-```
-
-* 关闭其他页签
-
-```typescript
-proxy?.$tab.closeOtherPage();
-
-const obj = { path: "/system/user", name: "User" };
-proxy?.$tab.closeOtherPage(obj);
-
-proxy?.$tab.closeOtherPage(obj).then(() => {
-  // 执行结束的逻辑
-})
-```
-
-### $modal对象
-> `$modal`对象用于做消息提示、通知提示、对话框提醒、二次确认、遮罩等,它定义在`plugins/modal.ts`文件中,它有如下方法
-
-* 提供成功、警告和错误等反馈信息
-
-```typescript
-proxy?.$modal.msg("默认反馈");
-proxy?.$modal.msgError("错误反馈");
-proxy?.$modal.msgSuccess("成功反馈");
-proxy?.$modal.msgWarning("警告反馈");
-```
-
-* 提供成功、警告和错误等提示信息
-
-```typescript
-proxy?.$modal.alert("默认提示");
-proxy?.$modal.alertError("错误提示");
-proxy?.$modal.alertSuccess("成功提示");
-proxy?.$modal.alertWarning("警告提示");
-```
-
-* 提供成功、警告和错误等通知信息
-
-```typescript
-proxy?.$modal.notify("默认通知");
-proxy?.$modal.notifyError("错误通知");
-proxy?.$modal.notifySuccess("成功通知");
-proxy?.$modal.notifyWarning("警告通知");
-```
-
-* 提供确认窗体信息
-
-```typescript
-proxy?.$modal.confirm('确认信息').then(function() {
-  ...
-}).then(() => {
-  ...
-}).catch(() => {});
-```
-
-* 提供遮罩层信息
-
-```typescript
-// 打开遮罩层
-proxy?.$modal.loading("正在导出数据,请稍后...");
-
-// 关闭遮罩层
-proxy?.$modal.closeLoading();
-```
-
-### $auth对象
-> `$auth`对象用于验证用户是否拥有某(些)权限或角色,它定义在`plugins/auth.ts`文件中,它有如下方法
-
-* 验证用户权限
-
-```typescript
-// 验证用户是否具备某权限
-proxy?.$auth.hasPermi("system:user:add");
-// 验证用户是否含有指定权限,只需包含其中一个
-proxy?.$auth.hasPermiOr(["system:user:add", "system:user:update"]);
-// 验证用户是否含有指定权限,必须全部拥有
-proxy?.$auth.hasPermiAnd(["system:user:add", "system:user:update"]);
-```
-
-* 验证用户角色
-
-```typescript
-// 验证用户是否具备某角色
-proxy?.$auth.hasRole("admin");
-// 验证用户是否含有指定角色,只需包含其中一个
-proxy?.$auth.hasRoleOr(["admin", "common"]);
-// 验证用户是否含有指定角色,必须全部拥有
-proxy?.$auth.hasRoleAnd(["admin", "common"]);
-```
-
-### $cache对象
-> `$cache`对象用于处理缓存。我们并不建议您直接使用`sessionStorage`或`localStorage`(vue3版本推荐使用useStorage),因为项目的缓存策略可能发生变化,通过`$cache`对象做一层调用代理则是一个不错的选择。`$cache`提供`session`和`local`两种级别的缓存,如下:
-
-| 对象名称 | 缓存类型                           |
-| -------- | ---------------------------------- |
-| session  | 会话级缓存,通过sessionStorage实现 |
-| local    | 本地级缓存,通过localStorage实现   |
-
-
-**示例**
-
-```typescript
-// local 普通值
-proxy?.$cache.local.set('key', 'local value')
-console.log(proxy?.$cache.local.get('key')) // 输出'local value'
-
-// session 普通值
-proxy?.$cache.session.set('key', 'session value')
-console.log(proxy?.$cache.session.get('key')) // 输出'session value'
-
-// local JSON值
-proxy?.$cache.local.setJSON('jsonKey', { localProp: 1 })
-console.log(proxy?.$cache.local.getJSON('jsonKey')) // 输出'{localProp: 1}'
-
-// session JSON值
-proxy?.$cache.session.setJSON('jsonKey', { sessionProp: 1 })
-console.log(proxy?.$cache.session.getJSON('jsonKey')) // 输出'{sessionProp: 1}'
-
-// 删除值
-proxy?.$cache.local.remove('key')
-proxy?.$cache.session.remove('key')
-```
-
-### $download对象
-
-> `$download`对象用于文件下载,它定义在`plugins/download.ts`文件中,它有如下方法
-
-* 通过ossId从存储中下载文件
-
-``` typescript
-// 默认下载方法
-proxy?.$download.oss(ossId);
-```
-
-* 根据请求地址下载zip包
-
-```typescript
-const url = '/tool/gen/batchGenCode?tables=' + tableNames;
-const name = 'ruoyi';
-
-// 默认方法
-proxy?.$download.zip(url, name);
-```

+ 0 - 55
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/component_use.md

@@ -1,55 +0,0 @@
-# 组件使用
-- - -
-
-vue 注册组件的两种方式
-在 `@/components` 下创建的.vue文件自动为全局组件,可直接在任意位置使用。
-
-### 局部注册
-在对应页使用`components`注册组件。
-```typescript
-<script setup lang=ts>
-import ComponentA from './ComponentA.vue'
-</script>
-
-<template>
-  <ComponentA />
-</template>
-```
-
-### 全局注册
-我们可以使用[ Vue 应用实例](https://cn.vuejs.org/guide/essentials/application.html)的 `.component()` 方法,让组件在当前 Vue 应用中全局可用。
-```typescript
-import { createApp } from 'vue'
-
-const app = createApp({})
-
-app.component(
-  // 注册的名字
-  'MyComponent',
-  // 组件的实现
-  {
-    /* ... */
-  }
-)
-```
-如果使用单文件组件,你可以注册被导入的 `.vue` 文件:
-```typescript
-import MyComponent from './App.vue'
-
-app.component('MyComponent', MyComponent)
-```
-`.component()` 方法可以被链式调用:
-```typescript
-app
-  .component('ComponentA', ComponentA)
-  .component('ComponentB', ComponentB)
-  .component('ComponentC', ComponentC)
-```
-全局注册的组件可以在此应用的任意组件的模板中使用:
-```Typescript
-// 这在当前应用的任意组件中都可用
-<ComponentA/>
-<ComponentB/>
-<ComponentC/>
-```
-所有的子组件也可以使用全局注册的组件,这意味着这三个组件也都可以在彼此内部使用。

+ 0 - 4
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/content_copy.md

@@ -1,4 +0,0 @@
-# 内容复制
-- - -
-
-文档建设中

+ 0 - 16
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dev_norm.md

@@ -1,16 +0,0 @@
-# 开发规范
-- - -
-
-### 新增view
-> 在`@/views`文件下创建对应的文件夹,一般性一个路由对应一个文件, 该模块下的功能就建议在本文件夹下创建一个新文件夹,各个功能模块维护自己的`utils`或`components`组件。
-
-### 新增api
-> 在`@/api`文件夹下创建本模块对应的api服务。  
-> 在api服务同级创建`types.ts`类型声明文件。
-
-### 新增组件
-> 在全局的`@/components`写一些全局的组件,如富文本,各种搜索组件,封装的分页组件等等能被公用的组件。 每个页面或者模块特定的业务组件则会写在当前`@/views`下面。
-如:`@/views/system/user/components/xxx.vue`。这样拆分大大减轻了维护成本。
-
-### 新增样式
-> 页面的样式和组件是一个道理,全局的`@/style`放置一下全局公用的样式,每一个页面的样式就写在当前 views下面,请记住加上scoped 就只会作用在当前组件内了,避免造成全局的样式污染。

+ 0 - 4
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dict_use.md

@@ -1,4 +0,0 @@
-# 使用字典
-- - -
-
-文档建设中

+ 0 - 4
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/exception_handling.md

@@ -1,4 +0,0 @@
-# 异常处理
-- - -
-
-文档建设中

+ 0 - 4
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/icon_use.md

@@ -1,4 +0,0 @@
-# 使用图标
-- - -
-
-文档建设中

+ 0 - 4
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/page_cache.md

@@ -1,4 +0,0 @@
-# 页签缓存
-- - -
-
-文档建设中

+ 0 - 4
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/param_use.md

@@ -1,4 +0,0 @@
-# 使用参数
-- - -
-
-文档建设中

+ 0 - 4
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/permissions_use.md

@@ -1,4 +0,0 @@
-# 权限使用
-- - -
-
-文档建设中

+ 0 - 65
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/request_process.md

@@ -1,65 +0,0 @@
-# 请求流程
-- - -
-
-### 交互流程
-一个完整的前端UI交互到服务器端处理流程是这样的:  
-
-1. UI 组件交互操作;
-2. 调用统一管理的 api service 请求函数;
-3. 使用封装的 request.js 发送请求;
-4. 获取服务端返回;
-5. 更新 data;
-
-为了方便管理维护,统一的请求处理都放在`@/src/api`文件夹中,并且一般按照`model`维度进行拆分文件,如:
-```
-api/
-  system/
-    user/
-      index.ts
-      types.ts
-    role/
-      index.ts
-      types.ts
-  monitor/
-    operlog/
-      index.ts
-      types.ts
-    logininfor/
-      index.ts
-      types.ts
-  ...
-```
-> **提示**  
-> 其中`@/src/utils/request.ts`是基于 axios 的封装,便于统一处理 POST,GET 等请求参数,请求头,以及错误提示信息等。 它封装了全局request拦截器、response拦截器、统一的错误处理、统一做了超时处理、baseURL设置等。
-
-### 请求示例
-```typescript
-// @/api/system/user/index.ts
-import request from '@/utils/request';
-import { AxiosPromise } from 'axios';
-import { UserQuery, UserVO } from './types';
-
-export const listUser = (query: UserQuery): AxiosPromise<UserVO[]> => {
-  return request({
-    url: '/system/user/list',
-    method: 'get',
-    params: query
-  });
-};
-
-// @/views/system/user/index.vue
-import api from '@/api/system/user';
-const res = await api.listUser(proxy?.addDateRange(queryParams.value, dateRange.value));
-```
-> **提示**  
-> 如果有不同的`baseURL`,直接通过覆盖的方式,让它具有不同的`baseURL`。
-> ```typescript
-> export const listUser = (query: UserQuery): AxiosPromise<UserVO[]> => {
->   return request({
->     url: '/system/user/list',
->     method: 'get',
->     params: query,
->     baseURL: process.env.BASE_API
->   });
-> };
-> ```

+ 0 - 82
ruoyi-admin/src/main/resources/static/plus-ui/devdoc/router_use.md

@@ -1,82 +0,0 @@
-# 路由使用
-- - -
-
-框架的核心是通过路由自动生成对应导航,所以除了路由的基本配置,还需要了解框架提供了哪些配置项。
-### 路由配置
-```typescript
-// 当设置 true 的时候该路由不会在侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
-hidden: true // (默认 false)
-
-//当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
-redirect: 'noRedirect'
-
-// 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
-// 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
-// 若你想不管路由下面的 children 声明的个数都显示你的根路由
-// 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
-alwaysShow: true
-
-name: 'router-name' // 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
-query: '{"id": 1, "name": "ry"}'     // 访问路由的默认传递参数
-roles: ['admin', 'common']           // 访问路由的角色权限
-permissions: ['a:a:a', 'b:b:b']      // 访问路由的菜单权限
- 
-meta: {
-  title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字
-  icon: 'svg-name' // 设置该路由的图标,支持 svg-class,也支持 el-icon-x element-ui 的 icon
-  noCache: true // 如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
-  breadcrumb: false //  如果设置为false,则不会在breadcrumb面包屑中显示(默认 true)
-  affix: true // 如果设置为true,它则会固定在tags-view中(默认 false)
-
-  // 当路由设置了该属性,则会高亮相对应的侧边栏。
-  // 这在某些场景非常有用,比如:一个文章的列表页路由为:/article/list
-  // 点击文章进入文章详情页,这时候路由为/article/1,但你想在侧边栏高亮文章列表的路由,就可以进行如下设置
-  activeMenu: '/article/list'
-}
-```
-**普通示例**
-```json
-{
-  path: '/system/test',
-  component: Layout,
-  redirect: 'noRedirect',
-  hidden: false,
-  alwaysShow: true,
-  meta: { title: '系统管理', icon : "system" },
-  children: [{
-    path: 'index',
-    component: (resolve) => require(['@/views/index'], resolve),
-    name: 'Test',
-    meta: {
-      title: '测试管理',
-      icon: 'user'
-    }
-  }]
-}
-```
-**外链示例**
-```json
-{
-  path: 'http://ruoyi.vip',
-  meta: { title: '若依官网', icon : "guide" }
-}
-```
-### 静态路由
-代表那些不需要动态判断权限的路由,如登录页、404、等通用页面,在`@/router/index.ts`配置对应的公共路由。
-### 动态路由
-代表那些需要根据用户动态判断权限并通过addRoutes动态添加的页面,在`@/store/modules/permission.ts`加载后端接口路由配置。
-> **提示**
-> * 动态路由可以在系统管理-菜单管理进行新增和修改操作,前端加载会自动请求接口获取菜单信息并转换成前端对应的路由。
-> * 动态路由在生产环境下会默认使用路由懒加载,实现方式参考loadView方法的判断。
-### 常用方法
-想要跳转到不同的页面,使用`router.push`方法
-```Typescript
-const router = useRouter();
-router.push({ path: "/system/user" });
-```
-跳转页面并设置请求参数,使用`query`属性
-```Typescript
-const router = useRouter();
-router.push({ path: "/system/user", query: {id: "1", name: "若依"} });
-```
-更多使用可以参考[vue-router](https://router.vuejs.org/zh/)官方文档。

+ 0 - 53
ruoyi-admin/src/main/resources/static/plus-ui/home.md

@@ -1,53 +0,0 @@
-# 项目简介
-
----
-
-## 平台简介
-
-- 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。
-- 配套后端代码仓库地址
-- [RuoYi-Vue-Plus 5.X(注意版本号)](https://gitee.com/dromara/RuoYi-Vue-Plus)
-- [RuoYi-Cloud-Plus 2.X(注意版本号)](https://gitee.com/dromara/RuoYi-Cloud-Plus)
-
-## 前端运行
-
-```bash
-# 克隆项目
-git clone https://gitee.com/JavaLionLi/plus-ui.git
-
-# 安装依赖
-npm install --registry=https://registry.npmmirror.com
-
-# 启动服务
-npm run dev
-
-# 推荐使用yarn或pnpm包管理工具
-# 构建测试环境 yarn build:stage
-# 构建生产环境 yarn build:prod
-# 前端访问地址 http://localhost:80
-```
-
-## 后端改造
-
-参考后端代码内 `ruoyi-gen/resources/vm/vue/v3/readme.txt` 说明
-
-## 内置功能
-
-1. 租户管理:配置系统租户,支持 SaaS 场景下的多租户功能。
-2. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
-3. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
-4. 岗位管理:配置系统用户所属担任职务。
-5. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
-6. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
-7. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
-8. 参数管理:对系统动态配置常用参数。
-9. 通知公告:系统通知公告信息发布维护。
-10. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
-11. 登录日志:系统登录日志记录查询包含登录异常。
-12. 在线用户:当前系统中活跃用户状态监控。
-13. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
-14. 代码生成:前后端代码的生成(java、html、xml、sql)支持 CRUD 下载 。
-15. 系统接口:根据业务代码自动生成相关的 api 接口文档。
-16. 服务监控:监视当前系统 CPU、内存、磁盘、堆栈等相关信息。
-17. 缓存监控:对系统的缓存信息查询,命令统计等。
-18. 在线构建器:拖动表单元素生成相应的 HTML 代码。(TS 版本正在开发中。)

+ 0 - 34
ruoyi-admin/src/main/resources/static/questions/_sidebar.md

@@ -1,34 +0,0 @@
-<!-- _sidebar.md -->
-- **特别赞助**
-- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus)
-- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com)
-- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc)
-
-
-
-* **常见问题**
-  * [Lombok注解爆红](/questions/lombok.md)
-  * [如何使用Tomcat](/questions/use_tomcat.md)
-  * [如何使用druid连接池](/questions/use_druid.md)
-  * [vue与boot整合部署](/questions/deploy_vue.md)
-  * [导入excel实体类为空](/questions/import_excel.md)
-  * [如何同步项目更新](/questions/synchronous_update.md)
-  * [ParseException SQL解析异常](/questions/parse_exception.md)
-  * [swagger相关问题](/questions/swagger.md)
-  * [实体bean为空问题](/questions/bean_null.md)
-  * [Redis 报错 Permission denied](/questions/permission_denied.md)
-  * [关于HTTPS配置](/questions/https_config.md)
-  * [放行接口提示认证失败](/questions/identify_fail.md)
-  * [打包jar运行报错](/questions/jar_run_fail.md)
-  * [如何指定dubbo注册ip](/questions/dubbo_ip.md)
-  * [Sentinel页面404问题](/questions/sentinel_404.md)
-  * [无法读取nacos配置](/questions/nacos_read_fail.md)
-  * [接口文档对接knife4j](/questions/kinfe4j.md)
-  * [不支持ST请求](/questions/st_not_support.md)
-  * [Only one connection receive subscriber allowed](/questions/only_one_subscriber.md)
-  * [nacos 报错 The Raft Group [naming_instance_metadata]](/questions/nacos_naming_instance_metadata.md)
-  * [unable to read meta-data for class xxx](/questions/read_metadata.md)
-  * [JCE cannot authenticate the provider BC](/questions/jce_cannot.md)
-  * [关于请求响应参数解密](/questions/api_encrypt.md)
-  * [关于登录调试步骤](/questions/login_step.md)
-  * [如何对接国产数据库](/questions/domestic_databases.md)

+ 0 - 148
ruoyi-admin/src/main/resources/static/questions/api_encrypt.md

@@ -1,148 +0,0 @@
-# 关于请求响应参数解密
----
-## 1:前端加密请求
-
-![输入图片说明](https://foruda.gitee.com/images/1717033672316716771/8e30a2f1_4959041.png "屏幕截图")
-
-通过控制台获取加密结果:
-
-![输入图片说明](https://foruda.gitee.com/images/1717033792384655437/900a0e0d_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1717033896868612970/55581f0a_4959041.png "屏幕截图")
-
-
-加密密钥:
-
-```
-PAg/fZzpV/cz0T1fMUJMJo/LEZvwVLb4bZgtCHkbB6FQAJWlLm/RLKtQ5fOo1blMjAkY+9ryWhsAfCqoMPTU4w==
-```
-
-请求参数加密结果:
-
-```
-F+Qxq6PzShcudDsUZHhp50lA67eBeTe63x5uGbdm/HJGgcDmjKncUk5VQm0evD8pz1sbmCbmmSl3X1D07K/qgHvP1YhjYSRBJf/M0GTfMkfOZqIkOtvfE5Z6fSFd8RYf6ji/qYxAmCiRmP/uADyJUAoBY1gMi5+zuvyHH3In/FyoFeD0rmJWvO4o4fn3n5GElHMWbP0O/HWPfgHFfg1F7bZQPuf4zAuDKQIqUG3jJTem3O97kAbTWw6lSSuYi1/8tV4cE9rq8SMSjx36/ZLSog==
-```
-
-### 解密步骤
-
-1. 使用配置文件私钥对加密密钥解密
-
-```java
-// 参数说明:
-// requestKey:即请求标头加密密钥 
-// privateKey:application.yml 配置文件私钥
-String decryptByRsa = EncryptUtils.decryptByRsa(requestKey, privateKey);
-```
-
-2. 对步骤一结果进行 Base64 解密,得到 AES 加密密钥
-
-```java
-String aesPassword = EncryptUtils.decryptByBase64(decryptByRsa);
-```
-
-3. 使用步骤二得到的密钥,对请求参数进行解密
-
-```java
-String decryptBody = EncryptUtils.decryptByAes(requestBody, aesPassword);
-```
-
-得到解密请求参数(已格式化):
-
-```json
-{
-    "tenantId": "000000",
-    "username": "admin",
-    "password": "admin123",
-    "rememberMe": false,
-    "uuid": "a39962b22c874f60872ef5db1cd811f5",
-    "code": "5",
-    "clientId": "e5cd7e4891bf95d1d19206ce24a7b32e",
-    "grantType": "password"
-}
-```
-
-|参数名|说明|
-|---|---|
-|tenantId| 租户id |
-|username| 用户名 |
-|password| 密码 |
-|rememberMe| 记住密码 |
-|uuid| - |
-|code| 验证码结果 |
-|clientId| 客户端id(表 sys_client) |
-|grantType| 授权类型(表 sys_client) |
-
-## 2:后端加密响应
-
-对请求使用了注解 `@ApiEncrypt(response = true)`
-
-![输入图片说明](https://foruda.gitee.com/images/1717035066844744866/2286b394_4959041.png "屏幕截图")
-
-通过控制台获取加密结果:
-
-![输入图片说明](https://foruda.gitee.com/images/1717035156784270596/156f2aa7_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1717035193189175688/214631e5_4959041.png "屏幕截图")
-
-加密密钥:
-
-```
-MXnKYnXcXeFYWKZg8utuhDtbz54cPDcov11E1KT5l19/vMt37d4NhzzwBWnqug72SOgOK5URGaWPJSs9VdaP0Q==
-```
-
-响应参数加密结果:
-
-```
-70 O63EMmwvbAyWPqDDmVOGTy+BOQnIVgKInMFNRtp8Zwzs8DEL20VgL2IslYrL8bc1u7lPhYNU/6 Q3iTYebm4EokwiG+styaT+LO3M9bUimggoAGpBTW8gCRF/34 kJaOITSRqYqYcXIJKn73+Gqn7jevyKUHyRXog/3 q/PlBdmUjNiB4gtxlOO/Vm+4 o+0 W4jcEe0xwwzV91+Ze3S6Eu/1 XN21g0iOsYT34emv/vhd9Hy3p5LfJlAHvn96x/c3MQBQUU32uM3Vkk3o6IpVHjJljE64gnGximSwB9vrmMA21xX+fq9HYioumknmDDbaY/JAKh32CDgn5M5hdaIklf08sU38r1IyvipySzrHX+ci9GmOZhP2ttCtoZ7SGvFFbNEuyojssxwxXEmJHAsG/OhIAeRXMUr3+dzDJ++XvvMuMgNJR0BMldNydFAjNOQEszgcVM1QEGwxfW5rElW8VxQaaqPyDATX+y2JrK1vdKxxdI/hF5dGpQMdU4FAEhHIftoIbD/FH4XcWJamZjJpbVtZvTkFYpbhiU7sz9MICSuKwaoSFJ8JGANc0bDdVoWpA8sXi7a27IM0pDzk9gD/FADcFGHXxPYUhENkXiUcnmg5LSdigiY4J6HrqEJdH6zNSwoGubcsXhiPdlB3V0DqcLAHFt+GYj5lcxZeqUAmixGVGCV7gSBWNiyo9/NnXcynA/EIlV3OZIvgzjWxiKzcVJ1HOKoXGEcg3Q54QNh5pCqEa7AtqVkKO7/Ffgg8nSEeCdJPzTV7zmr3n94Hn671OL8A==
-```
-
-### 解密步骤
-
-1. 使用前端配置文件私钥对加密密钥解密
-
-```java
-// 参数说明:
-// responseKey:即响应标头加密密钥 
-// privateKey:前端 .env.development | .env.production 配置文件私钥,注意和后端私钥区分
-String decryptByRsa = EncryptUtils.decryptByRsa(responseKey, privateKey);
-```
-
-2. 对步骤一结果进行 Base64 解密,得到 AES 加密密钥
-
-```java
-String aesPassword = EncryptUtils.decryptByBase64(decryptByRsa);
-```
-
-3. 使用步骤二得到的密钥,对响应参数进行解密
-
-```java
-String decryptBody = EncryptUtils.decryptByAes(responseBody, aesPassword);
-```
-
-得到解密请求参数(已格式化):
-
-```json
-{
-    "code": 200,
-    "msg": "操作成功",
-    "data": {
-        "scope": null,
-        "openid": null,
-        "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJjOVNWU1hRRVY4QVhFRkt4b2FrbndSSWxPczd4ajdRZCIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCJ9.YuaXPu6eTzJVkLyQC3ekzmPS_jXp50ykaIB2nWy11qM",
-        "refresh_token": null,
-        "expire_in": 604799,
-        "refresh_expire_in": null,
-        "client_id": "e5cd7e4891bf95d1d19206ce24a7b32e"
-    }
-}
-```
-
-|参数名|说明|
-|---|---|
-|scope| 令牌权限 |
-|openid| 用户 openid |
-|access_token| 授权令牌 |
-|refresh_token| 刷新令牌 |
-|expire_in| 授权令牌 access_token 的有效期 |
-|refresh_expire_in| 刷新令牌 refresh_token 的有效期 |
-|clientId| 客户端id(表 sys_client) |

+ 0 - 10
ruoyi-admin/src/main/resources/static/questions/bean_null.md

@@ -1,10 +0,0 @@
-# 实体bean为空问题
-- - -
-### 问题排查
-
-检查是否存在 `链式调用` 注解 `@Accessors(chain = true)` 删除即可
-
-### 原因
-java 规范 set 返回值为 `void` 链式调用 set 返回值为 `this`<br>
-故多数框架底层使用 jdk 工具导致找不到 set 方法<br>
-例如: `easyexcel` `cglib` `mybatis` 等

+ 0 - 13
ruoyi-admin/src/main/resources/static/questions/deploy_vue.md

@@ -1,13 +0,0 @@
-# 关于vue与boot整合部署
-- - -
-* [前端静态资源如何整合到后端访问](https://doc.ruoyi.vip/ruoyi-vue/other/faq.html#前端静态资源如何整合到后端访问)
-
-3.X 需在 `pom.xml` 增加资源过滤排除
-
-```xml
-<resource>
-    <directory>src/main/resources/页面目录</directory>
-    <!-- 关闭过滤 -->
-    <filtering>false</filtering>
-</resource>
-```

+ 0 - 41
ruoyi-admin/src/main/resources/static/questions/domestic_databases.md

@@ -1,41 +0,0 @@
-# 如何对接国产数据库
-
-> 1. 框架采用 mybatis-plus 几乎支持大部分市面上的数据库且框架内几乎没有sql语句存在
-<br>
-所以不用担心兼容性问题(顶多就是有一些关键字什么的 对接很简单)
-<br>
-> 2. 国产数据库大多都兼容主流三大数据库 mysql oracle postgresql
-<br>
-例如 达梦兼容oracle 人大金仓兼容mysql oceanbase兼容mysql 等等
-
-# 对接方式
-
-### 这里用 `达梦` 数据库为例
-
-1.首先增加 jdbc依赖包 `vue版本在ruoyi-admin模块下` `cloud版本在ruoyi-common-mybatis模块下`
-
-![输入图片说明](https://foruda.gitee.com/images/1723288594335994875/216ae8e7_1766278.png "屏幕截图")
-
-2.在配置文件yml内配置数据库连接
-
-![输入图片说明](https://foruda.gitee.com/images/1723288760519808620/3db91ba5_1766278.png "屏幕截图")
-
-3.sql脚本使用框架内自带的sql文件根据兼容的数据库模式 例如 达梦用oracle的sql脚本
-
-![输入图片说明](https://foruda.gitee.com/images/1723289018873298537/4d95c892_1766278.png "屏幕截图")
-
-4.在代码生成器内 增加对应的数据库生成器依赖 代码生成器使用 anyline 支持几百种数据库只需要增加对应的依赖即可
-
-![输入图片说明](https://foruda.gitee.com/images/1723288974693848785/3e8fc61f_1766278.png "屏幕截图")
-
-这样基本就完成了所有需要做的事可以尝试启动项目了
-
-5.如果项目启或者运行动过程中有sql报错 不要慌基本上都是一些关键字引起的
-<br>
-例如 达梦内的`domain`就是关键字 在我们的`SysOssConfig`表内使用`domain`进行自定义的域名存储
-<br>
-我们只需要在`SysOssConfig`实体类的`domain`属性增加一个注解即可解决此问题
-<br>
-**注意: 各种数据库处理关键字的标识符不一样注意替换**
-
-![输入图片说明](https://foruda.gitee.com/images/1723289232470339283/480d5172_1766278.png "屏幕截图")

+ 0 - 18
ruoyi-admin/src/main/resources/static/questions/dubbo_ip.md

@@ -1,18 +0,0 @@
-# 如何指定dubbo注册ip
-- - -
-## 重点说明
-以下方法指定IP必须是本地有网卡的自己可以访问的IP 不可以随意乱写<br>
-(云服务器公网IP是没有网卡的)
-
-## 在`nacos`指定协议IP地址(全局生效)
-```yml
-dubbo:
-  protocol:
-    # 指定dubbo协议注册ip
-    host: 192.168.0.100
-```
-
-## docker指定dubbo环境变量(单服务生效)
-
-![输入图片说明](https://foruda.gitee.com/images/1678981332028792584/7eeef9c5_1766278.png "屏幕截图")
-

+ 0 - 27
ruoyi-admin/src/main/resources/static/questions/https_config.md

@@ -1,27 +0,0 @@
-# 关于HTTPS配置
-- - -
-### 后端 HTTPS 改造
-
-将申请的 `https` 证书放置到 `nginx` 对应目录内<br>
-根据框架 `nginx https` 示例 更改后端代理为 `https`<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678981283573122208/87cf19ad_1766278.png "屏幕截图")
-
-### 监控中心 与 任务调度中心 改造
-
-`监控中心` 与 `任务调度中心` 属于系统管控服务<br>
-应在内网使用 不应该暴漏到外网 也无需配置 `https`
-
-更改 `系统 -> 菜单管理 -> 监控中心 与 任务调度中心` 菜单配置<br>
-将其改为 `外链访问` 访问路径为 **注意: 如果是外网使用 url需配置为 http://外网ip:端口**
-
-![输入图片说明](https://foruda.gitee.com/images/1678981287686638349/3734f085_1766278.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1678981292545287978/f2471f97_1766278.png "屏幕截图")
-
-`nginx` 配置 `独立的端口` 进行反向代理即可访问(代理编写方式参考后端反向代理)
-
-### Minio https 改造
-
-下方链接包含 minio+nginx 与 minio本身配置https 两种方案<br>
-[终极版minio配置https教程](https://blog.csdn.net/Michelle_Zhong/article/details/126484358)

+ 0 - 10
ruoyi-admin/src/main/resources/static/questions/identify_fail.md

@@ -1,10 +0,0 @@
-# 放行接口提示认证失败
-- - -
-## 可能的原因
-接口放行后不需要token即可访问<br>
-但是没有token也就无法获取用户信息与鉴权
-
-## 解决方案
-删除接口上的鉴权注解<br>
-删除接口内获取用户信息功能<br>
-删除数据库实体类 自动注入 `createBy` `updateBy` 因为会获取用户数据

+ 0 - 4
ruoyi-admin/src/main/resources/static/questions/import_excel.md

@@ -1,4 +0,0 @@
-# 关于导入excel实体类为空
-- - -
-* 禁止在导入实体使用 `lombok` 链式调用注解 `@Accessors(chain = true)`
-* 会导致找不到 `set` 方法无法注入内容

+ 0 - 12
ruoyi-admin/src/main/resources/static/questions/jar_run_fail.md

@@ -1,12 +0,0 @@
-# 打包jar运行报错问题
-- - -
-
-**常见于 windows 平台以命令方式启动**
-
-windows 平台默认编码为 GBK 所以读取到所有的配置都是乱码
-
-## 解决方案
-
-需要在命令增加 `-Dfile.encoding=utf-8` 指定文件编码
-
-例如: `java -Dfile.encoding=utf-8 -jar ruoyi-xxx.jar`

+ 0 - 3
ruoyi-admin/src/main/resources/static/questions/jce_cannot.md

@@ -1,3 +0,0 @@
-# 问题说明 由于 OracleJDK 强校验加密证书导致
-
-解决方案 禁止使用 oraclejdk 更换为其他例如 openjdk

+ 0 - 66
ruoyi-admin/src/main/resources/static/questions/kinfe4j.md

@@ -1,66 +0,0 @@
-# 对接前声明
-
-经常有小伙伴希望可以对接 knife4j
-
-那么这里将介绍如何使用 框架生成的 openapi 对接 knife4j
-
-# 如何对接
-
-**重点声明: 本框架生成标准openapi结构 如对接后遇到不好用等问题 皆与本框架无关**
-
-knife4j 本身提供了独立的文档中间件 可以零成本的介入 openapi
-
-文档地址: https://doc.xiaominfo.com/docs/middleware-sources
-
-**注意: 此组件应单独搞一个boot项目 不要往框架里做任何代码上的更改**
-
-使用文档提供的 Cloud 模式 对接咱们框架的 openapi 地址即可完成对接
-
-![输入图片说明](https://foruda.gitee.com/images/1685953873117929554/22dce56e_1766278.png "屏幕截图")
-
-vue版本对接配置如下: 
-
-```yml
-knife4j:
-  enable-aggregation: true
-  cloud:
-    enable: true
-    routes:
-      - name: 演示模块
-        uri: localhost:8080
-        location: /v3/api-docs/1.演示模块
-      - name: 系统模块
-        uri: localhost:8080
-        location: /v3/api-docs/2.系统模块
-      - name: 代码生成模块
-        uri: localhost:8080
-        location: /v3/api-docs/3.代码生成模块
-```
-
-cloud版本对接配置如下: 
-
-```yml
-knife4j:
-  enable-aggregation: true
-  cloud:
-    enable: true
-    routes:
-      - name: 演示模块
-        uri: localhost:8080
-        location: /demo/v3/api-docs
-      - name: 认证服务
-        uri: localhost:8080
-        location: /auth/v3/api-docs
-      - name: 资源服务
-        uri: localhost:8080
-        location: /resource/v3/api-docs
-      - name: 系统服务
-        uri: localhost:8080
-        location: /system/v3/api-docs
-      - name: 监控服务
-        uri: localhost:8080
-        location: /monitor/v3/api-docs
-      - name: 代码生成服务
-        uri: localhost:8080
-        location: /gen/v3/api-docs
-```

+ 0 - 69
ruoyi-admin/src/main/resources/static/questions/login_step.md

@@ -1,69 +0,0 @@
-# 关于登录调试步骤
-
-## 1:关闭 api 接口加密
-
-1. 修改后端配置文件 `application.yml`
-
-![输入图片说明](https://foruda.gitee.com/images/1717037518256330645/c5a9f0fc_4959041.png "屏幕截图")
-
-2. 修改前端配置文件 `.env.development` | `.env.production`
-
-![输入图片说明](https://foruda.gitee.com/images/1717037555118359683/0e73a369_4959041.png "屏幕截图")
-
-## 2:登录参数
-
-![输入图片说明](https://foruda.gitee.com/images/1717038201634120005/e02882d3_4959041.png "屏幕截图")
-
-|参数名|说明|
-|---|---|
-|tenantId| 租户id |
-|username| 用户名 |
-|password| 密码 |
-|rememberMe| 记住密码 |
-|uuid| - |
-|code| 验证码结果 |
-|clientId| 客户端id(表 sys_client) |
-|grantType| 授权类型(表 sys_client) |
-
-## 3:使用接口文档调试
-
-### 3.1:使用接口文档请求
-
-1. 配置接口文档([参考文档](/ruoyi-vue-plus/framework/association/doc))
-2. 请求接口 `http://localhost:8080/auth/login`
-
-![输入图片说明](https://foruda.gitee.com/images/1717039200581756307/97efbc9c_4959041.png "屏幕截图")
-
-### 3.2:使用 idea 请求
-
-![输入图片说明](https://foruda.gitee.com/images/1717039459944753490/040d2b9d_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1717039534863944601/df91df67_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1717039598067298052/cc9fe61b_4959041.png "屏幕截图")
-
-### 3.3:获取验证码以及 uuid
-
-!> 验证码以及 uuid 获取方式: Redis | 控制台
-
-方式一、Redis:
-
-![输入图片说明](https://foruda.gitee.com/images/1717040260329977942/42f7ed62_4959041.png "屏幕截图")
-
-> **如果没有验证码相关 key,说明已经过期被清理了,去前端页面刷新一下即可。**
-
-方式二、控制台:
-
-![输入图片说明](https://foruda.gitee.com/images/1717040428227070908/1ef7562a_4959041.png "屏幕截图")
-
-### 3.4:关闭验证码
-
-如果嫌验证码太麻烦,可以关闭,修改后端配置文件 `application.yml`
-
-![输入图片说明](https://foruda.gitee.com/images/1717040533266608114/054fd984_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1717040745251872562/374267e8_4959041.png "屏幕截图")
-
-请求参数:
-
-![输入图片说明](https://foruda.gitee.com/images/1717040762860943102/81c9b44a_4959041.png "屏幕截图")

+ 0 - 4
ruoyi-admin/src/main/resources/static/questions/lombok.md

@@ -1,4 +0,0 @@
-# 关于lombok注解爆红
-- - -
-* 已知 lombok 插件与 idea中文插件 存在兼容性问题
-* 移除中文插件或手动关闭idea检查

+ 0 - 35
ruoyi-admin/src/main/resources/static/questions/nacos_naming_instance_metadata.md

@@ -1,35 +0,0 @@
-# nacos 报错 The Raft Group [naming_instance_metadata]
-- - -
-## Nacos 服务下线报错问题
-
-问题描述:
-
-Nacos 服务管理 > 服务列表 > 详情 > 下线 报错
-
-
-
-报错详情:
-
-```
-caused: errCode: 500, errMsg: do metadata operation failed ;caused: com.alibaba.nacos.consistency.exception.ConsistencyException: The Raft Group [naming_instance_metadata] did not find the Leader node;caused: The Raft Group [naming_instance_metadata] did not find the Leader node;
-```
-
-
-
-解决方案:
-
-**删除 Nacos 根目录下 data 文件夹下的 protocol 文件夹**
-
-(推荐使用全局搜索软件查询,windows 环境根目录一般在 C:\Users\用户名\nacos)
-
-
-
-问题原因:
-
-> Nacos 采用 raft 算法来计算 Leader,并且会记录上次启动的集群地址,所以当我们自己的服务器 IP 改变时(网络环境不稳定,如WIFI, IP 地址也经常变化),导致 raft 记录的集群地址失效,导致选 Leader 出现问题。
-
-
-
-参考目录:
-
-[解决疑难问题之服务下线报:The Raft Group naming_instance_metadata\] did not find the Leader node; - 嘉美祥瑞 - 博客园 (cnblogs.com)](https://www.cnblogs.com/whl-jx911/p/16736625.html)

+ 0 - 15
ruoyi-admin/src/main/resources/static/questions/nacos_read_fail.md

@@ -1,15 +0,0 @@
-# 无法读取nacos配置
-- - -
-### 检查 `group` 与 `namespace` 是否一致
-
-如果未使用框架自带 `ry-config.sql` 文件进行配置 会导致 `namespace` 不一致 无法查询配置
-
-### 检查 `8848` `9848` `9849` 端口是否开启可用
-
-### 检查配置文件名是否一致 例如: "xxx" 与 "xxx.yml" 的区别
-
-### 检查是否手动改过 `nacos` 数据库数据
-
-`nacos` 数据表层层关联 不要自作聪明手动改数据库
-
-已经改过的 需要重新导入 `ry-config.sql` 之后在页面进行改数据操作

+ 0 - 11
ruoyi-admin/src/main/resources/static/questions/only_one_subscriber.md

@@ -1,11 +0,0 @@
-# Only one connection receive subscriber allowed
-- - -
-## 问题原因
-**经多人反馈 共同点为全都是做`小程序开发`使用的`uniapp`发送的网络请求而出现这种问题**
-
-`uniapp` 错误设置 `Content-Type` 将所有请求类型全都设置成了 `json` 导致不该读body的请求也读取了body 最终导致报错
-
-## 解决方案
-
-方案1: 升级 1.4.0 已经对这种不合规发的请求做了兼容处理(被迫)<br>
-方案2: `uniapp` 内的请求设置正确的 `Content-Type`

+ 0 - 40
ruoyi-admin/src/main/resources/static/questions/parse_exception.md

@@ -1,40 +0,0 @@
-# ParseException SQL解析异常
-- - -
-## 异常内容
-
-`net.sf.jsqlparser.parser.ParseException: Encountered unexpected token:`
-
-![输入图片说明](https://foruda.gitee.com/images/1678981169309778625/a17ff852_1766278.png "屏幕截图")
-
-此异常为 SQL 解析异常, 应检查 SQL 语句内是否包含 SQL 关键字
-
-异常通常都会提供坐标
-
-![输入图片说明](https://foruda.gitee.com/images/1678981173813116217/a6f9ee32_1766278.png "屏幕截图")
-
-检查报错 SQL 相关坐标位置
-
-![输入图片说明](https://foruda.gitee.com/images/1678981179153564043/bf4912b4_1766278.png "屏幕截图")
-
-## 异常由来
-由 Mybatis-Plus 拦截器进行 SQL 解析导致<br>
-常见拦截器导致问题 `TenantLineInnerInterceptor` `DataPermissionInterceptor`
-
-## 解决方案
-
-> 将关键字增加标识符区别开
-
-1.实体类字段处理(以下仅限于mysql 其他数据库方法各不相同)
-
-![输入图片说明](https://foruda.gitee.com/images/1678981183515542682/fccd85ad_1766278.png "屏幕截图")
-
-2.自定义 SQL 或 XML 处理
-
-![输入图片说明](https://foruda.gitee.com/images/1678981187926917963/38437edb_1766278.png "屏幕截图")
-
-3.Mapper排除
-> 查看具体使用了哪些拦截器导致问题 使用忽略注解依次进行排除即可
-
-![输入图片说明](https://foruda.gitee.com/images/1678981192902044584/fb1c41eb_1766278.png "屏幕截图")
-
-

+ 0 - 15
ruoyi-admin/src/main/resources/static/questions/permission_denied.md

@@ -1,15 +0,0 @@
-# Redis 报错 Permission denied
-- - -
-### 此报错为无权限
-
-需确保 redis 数据存储文件夹具有写权限
-
-```shell
-chmod 777 /docker/redis/data
-```
-
-没有写权限无法对数据进行存储
-
-### 关于RDB报错 `/etc` 无权限问题
-
-增加redis密码校验 无密码导致配置不安全

+ 0 - 11
ruoyi-admin/src/main/resources/static/questions/read_metadata.md

@@ -1,11 +0,0 @@
-# unable to read meta-data for class xxx
-- - -
-## 问题原因
-
-此问题由改包名导致框架内组件 spring 的 spi 配置文件包名被改乱套
-
-## 解决方案
-
-更正组件包下的 spring spi 配置文件内的类包名
-
-![输入图片说明](https://foruda.gitee.com/images/1668608724503582409/50a77b4b_1766278.jpeg "test.jpg")

+ 0 - 8
ruoyi-admin/src/main/resources/static/questions/sentinel_404.md

@@ -1,8 +0,0 @@
-# Sentinel页面404问题
-- - -
-## 原因
-检查 `webapp` 目录是否为资源目录 低版本 `idea` 不会自动解析
-## 解决方案
-手动设置 `webapp` 为资源目录即可<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678981354612151228/52f2a886_1766278.png "屏幕截图")

+ 0 - 11
ruoyi-admin/src/main/resources/static/questions/st_not_support.md

@@ -1,11 +0,0 @@
-# 不支持ST请求
-- - -
-## 问题原因
-**经多人反馈 共同点为全都是做`小程序开发`使用的`uniapp`发送的网络请求而出现这种问题**
-
-`uniapp` 错误设置 `Content-Type` 将所有请求类型全都设置成了 `json` 导致不该读body的请求也读取了body 最终导致报错
-
-## 解决方案
-
-方案1: 升级 1.4.0 已经对这种不合规发的请求做了兼容处理(被迫)<br>
-方案2: `uniapp` 内的请求设置正确的 `Content-Type`

+ 0 - 3
ruoyi-admin/src/main/resources/static/questions/swagger.md

@@ -1,3 +0,0 @@
-# 框架内没有任何swagger
-
-想使用接口文档功能 请查看框架接口文档说明

+ 0 - 3
ruoyi-admin/src/main/resources/static/questions/synchronous_update.md

@@ -1,3 +0,0 @@
-# 如何同步项目更新
-- - -
-参考文章: [关于如何同步更新开源项目](https://blog.csdn.net/qq_31360283/article/details/118345795)

+ 0 - 20
ruoyi-admin/src/main/resources/static/questions/use_druid.md

@@ -1,20 +0,0 @@
-# 如何使用druid连接池
-- - -
-## 为何移除druid
-
-性能低下 bug频发 内含fastjson问题众多 监控不支持集群(鸡肋) 不支持一些高版本数据库 社区活跃度冰点
-
-### 性能对比图
-![输入图片说明](https://foruda.gitee.com/images/1667888745256002635/1bbd3481_1766278.png "屏幕截图")
-### 包大小对比图
-![输入图片说明](https://foruda.gitee.com/images/1667888760611300040/87af8d82_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1667888766932068690/7b379298_1766278.png "屏幕截图")
-
-## 为何使用hikari(中文: 光)
-
-spring默认自带 代码量少结构简单 稳定可靠 性能突出(自行百度一堆测评)
-
-## 参考提交记录反向操作即可
-
-https://gitee.com/dromara/RuoYi-Vue-Plus/commit/1f42bd3d22c104aaa2d780c20a555b5e467858bf <br>
-https://gitee.com/dromara/RuoYi-Vue-Plus/commit/a63abbf268e4c0a60344f63b5cba828a1347e178

+ 0 - 9
ruoyi-admin/src/main/resources/static/questions/use_tomcat.md

@@ -1,9 +0,0 @@
-# 关于如何使用Tomcat
-- - -
-### 查看ruoyi-framework模块的pom.xml文件,根据注释更改依赖
-
-![输入图片说明](https://foruda.gitee.com/images/1678981109106652929/0803004d_1766278.png "屏幕截图")
-
-### 查看ruoyi-admin模块中的application.yml文件,根据注释更改配置
-
-![输入图片说明](https://foruda.gitee.com/images/1678981112652965294/dda8df86_1766278.png "屏幕截图")

+ 0 - 70
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/_sidebar.md

@@ -1,70 +0,0 @@
-<!-- _sidebar.md -->
-- **特别赞助**
-- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus)
-- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com)
-- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc)
-
-
-* **简介**
-  * [项目简介](/ruoyi-cloud-plus/home.md)
-  * [更新日志](/ruoyi-cloud-plus/changlog.md)
-* **快速开始**
-  * [项目初始化](/ruoyi-cloud-plus/quickstart/init.md)
-  * [1.X项目初始化](/ruoyi-cloud-plus/quickstart/1.Xinit.md)
-  * [工作流初始化](/ruoyi-cloud-plus/quickstart/worker_init.md)
-  * [idea环境配置](/ruoyi-cloud-plus/quickstart/idea_environment.md)
-  * [应用部署](/ruoyi-cloud-plus/quickstart/deploy.md)
-  * [扩展项目](/ruoyi-cloud-plus/quickstart/extend_project.md)
-  * [搭建SnailJob调度中心](/ruoyi-cloud-plus/quickstart/snail_job_init.md)
-  * [(废弃)搭建PowerJob调度中心](/ruoyi-cloud-plus/quickstart/power_job_init.md)
-* **框架功能**
-  * [项目结构](/ruoyi-cloud-plus/framework/tree.md)
-  * [软件架构图](/ruoyi-cloud-plus/framework/architecture_diagram.md)
-  * 框架相关
-    * [创建新服务](/ruoyi-cloud-plus/framework/association/new_module.md)
-    * [修改包名](/ruoyi-cloud-plus/framework/association/update_package_name.md)
-    * [接口文档](/ruoyi-cloud-plus/framework/association/doc.md)
-    * [修改应用路径](/ruoyi-cloud-plus/framework/association/update_url.md)
-    * [国际化](/ruoyi-cloud-plus/framework/association/i18n.md)
-    * [多团队开发](/ruoyi-cloud-plus/framework/association/collaboration.md)
-    * [内网鉴权](/ruoyi-cloud-plus/framework/association/inner_authentication.md)
-  * 基础功能
-    * [系统用户相关](/ruoyi-cloud-plus/framework/basic/user.md)
-    * [权限控制](/ruoyi-cloud-plus/framework/basic/permissions_control.md)
-    * [导出功能](/ruoyi-cloud-plus/framework/basic/export.md)
-    * [导入功能](/ruoyi-cloud-plus/framework/basic/import.md)
-    * [参数校验](/ruoyi-cloud-plus/framework/basic/param_check.md)
-    * [代码生成](/ruoyi-cloud-plus/framework/basic/code_generate.md)
-    * [分页功能](/ruoyi-cloud-plus/framework/basic/page.md)
-    * [OSS功能](/ruoyi-cloud-plus/framework/basic/oss.md)
-    * [数据权限](/ruoyi-cloud-plus/framework/basic/permissions.md)
-    * [网关路由与放行](/ruoyi-cloud-plus/framework/basic/router_release.md)
-    * [多租户功能](/ruoyi-cloud-plus/framework/basic/tenant.md)
-    * [第三方授权功能](/ruoyi-cloud-plus/framework/basic/social.md)
-    * [客户端管理功能](/ruoyi-cloud-plus/framework/basic/client.md)
-  * 扩展功能
-    * [多数据源](/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md)
-    * [短信模块](/ruoyi-cloud-plus/framework/extend/sms.md)
-    * [邮件功能](/ruoyi-cloud-plus/framework/extend/mail.md)
-    * [防重幂等](/ruoyi-cloud-plus/framework/extend/idempotent.md)
-    * [数据脱敏](/ruoyi-cloud-plus/framework/extend/sensitive.md)
-    * [API加解密](/ruoyi-cloud-plus/framework/extend/api_encrypt.md)
-    * [数据加解密](/ruoyi-cloud-plus/framework/extend/encrypt.md)
-    * [翻译功能](/ruoyi-cloud-plus/framework/extend/translation.md)
-    * [WebSocket功能](/ruoyi-cloud-plus/framework/extend/websocket.md)
-  * 功能说明
-    * [事务相关](/ruoyi-cloud-plus/framework/explain/transaction.md)
-    * [单元测试](/ruoyi-cloud-plus/framework/explain/test.md)
-    * [主键使用说明](/ruoyi-cloud-plus/framework/explain/key.md)
-    * [关于多表查询](/ruoyi-cloud-plus/framework/explain/about_join.md)
-* **扩展功能**
-  * [ELK搭建](/ruoyi-cloud-plus/extend-function/elk.md)
-  * [ES搜索引擎](/ruoyi-cloud-plus/extend-function/es.md)
-  * [RabbitMQ搭建](/ruoyi-cloud-plus/extend-function/rabbitmq.md)
-  * [RocketMQ搭建](/ruoyi-cloud-plus/extend-function/rocketmq.md)
-  * [Kafka搭建](/ruoyi-cloud-plus/extend-function/kafka.md)
-  * [Nacos集群搭建](/ruoyi-cloud-plus/extend-function/nacos.md)
-  * [SkyWalking搭建与集成](/ruoyi-cloud-plus/extend-function/skywalking.md)
-  * [Prometheus+Grafana搭建](/ruoyi-cloud-plus/extend-function/prometheus_grafana.md)
-  * [Sharding-Proxy搭建分库分表](/ruoyi-cloud-plus/extend-function/shardingproxy.md)
-  * [对接MaxKey单点登录](/ruoyi-cloud-plus/extend-function/maxkey.md)

+ 0 - 1385
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/changlog.md

@@ -1,1385 +0,0 @@
-# 更新日志
-- - -
-
-## v2.2.1 - 2024-08-26
-
-### 重大改动
-
-* 增加 ruoyi-common-sse 模块 支持SSE推送 比ws更轻量更稳定的推送
-* 增加 springboot snailjob 等 actuator 账号密码认证 杜绝内外网信息泄漏问题
-* 增加 重构代码生成器 集成anyline开源框架 支持400+种数据库适配
-
-### 依赖升级
-
-* update springboot 3.2.6 => 3.2.9
-* update snailjob 1.0.1 => 1.1.2
-* update mapstruct-plus 1.4.3 => 1.4.4
-* update hutool 5.8.27 => 5.8.31 解决hutool不兼容jakarta问题
-* update anyline 8.7.2-20240808
-* update sms4j 3.2.1 => 3.3.2
-* update redisson 3.31.0 => 3.34.1
-* update mapstruct-plus 1.3.6 => 1.4.3
-* update lombok 1.18.32 => 1.18.34
-* update easyexcel 3.3.4 => 4.0.2
-* update springdoc 2.5.0 => 2.6.0
-* update flowable 7.0.0 => 7.0.1
-
-### cloud内容更新
-
-* update springcloud 2023.0.2 => 2023.0.3
-* update springcloud-alibaba 2023.0.1.0 => 2023.0.1.2
-* update redis 6.2.7 => 6.2.12 解决订阅key报错问题
-* update 优化 seata dockerfile 增加环境变量
-* update 优化 增加日志处理器顺序说明
-* update 优化 使用 seata-server 官方依赖简化seata集成方式
-* update 优化 屏蔽 sentinel 心跳日志
-* update 优化 dubbo元数据注册redis支持timeout(注意时间必须使用数字)
-* update 优化 调整sentinel日志级别 屏蔽心跳日志
-* update 优化 sky-agent 默认开启即使连不上服务端也跟踪配置 (有些人就爱这么用)
-* update 优化 kafka 自动创建 topic 部分人副本数不够报错问题
-* add 增加 nacos sentinel snailjob 健康检查 actuator 账号密码认证
-* fix 修复 dubbo redis元数据中心 获取监听器null问题
-* fix 修复 nacos sentinel seata 不适配新版undertow问题 先换回tomcat
-* fix 修复 依赖漏洞 限制部分依赖版本
-* fix 修复 由于alibaba sentinel 初始化机制变更导致的无法连接问题
-* fix 修复 dubbo 日志输出异常判断错误
-* remove 删除 kafka-streams 所有人都不会用也不学怎么用 删除了事
-
-### 功能更新
-
-* update 优化 去除日志部署环境判断 通过日志级别控制
-* update 优化 忽略租户与忽略数据权限支持嵌套使用(感谢 amadeus5201)
-* update 优化 租户相关controller 增加租户开关配置控制是否注册
-* update 优化 移除 alibaba ttl 与线程池搭配有问题(可传递但无法清除与更新)
-* update 优化 个人中心编辑 忽略数据权限
-* update 优化 兼容部分用户不想给用户分配角色与部门的场景
-* update 优化 租户套餐重名校验
-* update 优化 部门下存在岗位不允许删除
-* update 优化 角色编辑状态未校验问题
-* update 优化 用户脱敏增加编辑权限标识符
-* update 优化 代码生成器 自动适配oss翻译
-* update 优化 临时升级 undertow 版本 解决虚拟线程溢出问题
-* update 优化 支持通过配置文件关闭工作流
-* update 优化 增加mybatis-plus填充器兜底策略
-* update 优化 TenantSpringCacheManager 处理逻辑
-* update 优化 角色权限判断
-* update 优化 增加删除标志位常量优化查询代码
-* update 优化 监控使用独立web依赖
-* update 优化 更多脱敏策略(感谢 hemengji)
-* update 优化 设置nginx sse相关代理参数
-* update 优化 调整默认推送使用SSE
-* update 优化 Monitor监控服务通知分类打印(感谢 AprilWind)
-* update 优化 限流注解 又写key又不是表达式的情况
-* update 优化 WorkflowUtils查询用户信息发送消息未查询邮件和手机号(感谢 yanzy)
-* update 优化 注释掉其他数据库 jdbc 依赖 由用户手动添加
-* update 优化 oracle snailjob 兼容低版本oracle索引名称长度限制
-* update 优化 数据权限支持通过菜单标识符获取数据所有权
-* update 优化 数据权限支持自定义连接符
-* update 优化 TestDemo 删除前校验数据权限
-* update 优化 更换docker镜像底层系统 避免无字体情况
-
-### 问题修复
-
-* fix 修复 三方登录构建去除无用代码
-* fix 修复 多线程对同一个session发送ws消息报错问题
-* fix 修复 依赖漏洞 限制部分依赖版本
-* fix 修复 excel 基于其他字段 合并错误问题
-* fix 修复 一级缓存key未区分租户问题
-* fix 修复 id字符串格式转换错误问题
-* fix 修复 登出无法正确删除对应的租户数据问题
-* fix 修复 登录错误锁定不区分租户问题
-* fix 修复 转换模型缺少分类字段
-* fix 修复 权限标识符处理未设置成功状态问题
-* fix 修复 无法导入 bpmn 类型文件问题
-
-### 前端改动
-
-* update element-plus 2.7.5 => 2.7.8
-* update vue 3.4.25 => 3.4.34
-* update vite 5.2.10 => 5.2.12
-* add 增加 使用 vueuse 编写 sse 推送功能
-* update 优化 使用匹配模式简化预编译配置
-* update 优化 时间搜索组件统一
-* update 优化 oss 配置按钮 使用ossConfig权限标识符与oss权限分离
-* update 优化 类型报错问题
-* update 优化 切换租户后刷新首页
-* update 优化 实现表格行选中切换
-* update 优化 使用 vueuse 重构 websocket 实现
-* update 优化 代码生成器编辑页禁用缓存 防止同步后页面不更新问题
-* update 优化 调整默认推送使用SSE
-* fix 修复 租户套餐导出路径错误问题
-* fix 修复 登出后重新登录 sse推送报错问题
-
-
-## v2.2.0 - 2024-07-09
-
-### 重大更新
-
-* [重大更新] 使用 caffeine 重构 PlusSaTokenDao 层实现 减少将近90%的redis查询提高性能
-* [重大更新] 新增 PlusCacheWrapper 装饰器 为 SpringCache 增加本地缓存减少redis查询提高性能
-* [重大更新] 升级 awsS3 到2.X版本 支持异步与自动分片上传下载(感谢 AprilWind)
-* [重大更新] 新增 flowable 工作流功能(感谢 May)
-* [重大更新] 新增 snailjob 调度中心 移除 powerjob (投诉的人太多) (感谢 dhb52)
-* [重大更新] 重构 将spring-cloud-stream改为普通的mq依赖用法(感谢 Xbhog)
-* [重大更新] 新增 ruoyi-common-bus 消息总线组件 基于MQ跨服务投递事件消息
-
-### 依赖升级
-
-* update springboot 3.1.7 => 3.2.6 支持虚拟线程
-* update springboot-admin 3.1.8 => 3.2.3
-* update springdoc 2.2.0 => 2.5.0
-* update redisson 3.24.3 => 3.29.0 支持虚拟线程
-* update hutool 5.8.22 => 5.8.26
-* update dynamic-ds 4.2.0 => 4.3.0
-* update mybatis-plus 3.5.4 => 3.5.7 修复与boot代码冲突问题
-* update lock4j 2.2.5 => 2.2.7 消除启动警告
-* update sms4j 2.2.0 => 3.2.1 支持自定义配置key 可用于多厂商多租户等
-* update mapstruct-plus 1.3.5 => 1.3.6
-* update easyexcel 3.3.3 => 3.3.4
-* update lombok 1.18.30 => 1.18.32
-* update satoken 1.37.0 -> 1.38.0
-* update aws-oss 1.12.600 => 2.25.15
-
-### 功能更新
-
-* update 优化 StreamUtils 抽取 findFirst findAny 方法
-* update 优化 更新使用 Spring 官方推荐 JDK
-* update 优化 webscoket 配置与异常拦截
-* update 优化 isTenantAdmin 空校验
-* update 优化 修改路由name命名规则(感谢 玲娜贝er)
-* update 优化 大数据量下join卡顿问题 使用子查询提高性能
-* update 优化 用户ID查询角色列表(感谢 AprilWind)
-* update 优化 获取用户账户(感谢 AprilWind)
-* update 优化 租户列表接口 避免登录之后列表被域名过滤
-* update 优化 三方登录不同域名获取不到租户id问题
-* update 优化 获取aop代理的方式 减少与其他使用aop的功能冲突的概率
-* update 优化 临时解决 spring 启动报 warn 问题
-* update 优化 移除表单构建菜单(没有可用组件 用处不大以后再考虑)
-* update 优化 修改用户信息接口(感谢 AprilWind)
-* update 优化 切换动态租户 默认线程内切换(如需全局 手动传参)
-* update 优化 适配最新前端代码生成模板
-* update 优化 代码生成 el-radio 标签过期属性
-* update 优化 文件下载(使用对流传递 降低内存使用量)(感谢 秋辞未寒)
-* update 优化 去除gc日志参数(有需要自己加)
-* update 优化 拆分异常处理器
-* update 优化 常规web异常状态码
-* update 优化 设置静态资源路径防止所有请求都可以访问静态资源
-* update 优化 代码生成表导入 排除工作流相关表
-* update 优化 redis 对Long值的存储类型不同问题
-* update 优化 去除加密请求类型限制
-* update 优化 mp多租户插件注入逻辑
-* update 优化 移除删表语句 用户自行处理
-* update 优化 RedisUtils 支持忽略租户
-* update 更新 ip地址 xdb文件
-* update 优化 新增修改菜单权限字符校验
-* update 优化 验证码背景色改为浅灰色
-* update 优化 更新 mybatis 多包扫描配置
-* update 优化 RateLimiter 注解使用体验(感谢 ly-chn)
-* update 优化 GET 方法响应体支持加密
-* update 优化 excel 单元格合并可以基于注解选择需要依赖哪些字段(感谢 司猫子)
-* update 优化 OssFactory 获取实例锁性能(感谢 fanc)
-* update 优化 登录消息 支持集群发送
-* update 优化 数据权限 使用预扫描mapper注解提升代码性能
-* update 优化 数据加密 使用预扫描实体类提升代码性能(感谢 老马)
-* update 优化 Async 针对虚拟线程配置 与其他注意事项注释
-* update 优化 框架整体sql提高查询性能
-* update 优化 将p6spy配置文件统一放置到 common-mybatis 插件包内
-* update 优化 使用翻译注解简化用户查询 调整用户查询逻辑
-
-
-### 新增功能
-
-* add 新增 SMS异常处理器(感谢 AprilWind)
-* add 新增 在线设备管理(个人中心)(感谢 AprilWind)
-* add 新增 岗位编码与部门编码 并将岗位放到部门下(感谢 秋辞未寒)
-* add 新增 分布式锁Lock4j异常拦截(感谢 AprilWind)
-* add 新增 BaseMapperPlus提供一组可选是否抛出异常的selectVoOne方法(感谢 秋辞未寒)
-* add 新增 用户、部门、角色、岗位 下拉选接口与代码实现优化
-* add 新增 JustAuth 整合 TopIam 单点登录(感谢 马铃薯头)
-* add 新增 StringUtils.isVirtual 方法
-* add 新增 正则工具类 字符串提取 字符串校验
-
-### 问题修复
-
-* fix 修复 isLogin 方法抛异常无法正常返回值问题
-* fix 修复 spring路径规则 导致 actuator 被特殊方式访问问题
-* fix 修复token无效时关闭ws(感谢 AprilWind)
-* fix 修复 oss未使用租户 拼接租户id null问题
-* fix 修复 用户昵称修改后未清除对应缓存问题
-* fix 修复 文件上传图片预览问题
-* fix 修复 三方账号可以被同一个用户多次绑定问题
-* fix 修复 兼容redis5.0出现的问题
-* fix 修复 字典键值可重复配置问题
-* fix 修复 部分浏览器无法获取加密响应头问题
-* fix 修复 用户未设置部门 登录报错问题
-* fix 修复 全局异常处理器 空指针null问题
-* fix 修复 excel 表达式字典 下拉框导出格式错误
-* fix 修复 InjectionMetaObjectHandler 已存在数据依旧会获取用户信息报异常问题
-* fix 修复 关闭租户功能 三方登录报错问题
-* fix 修复 部门树排序问题
-* fix 修复 CryptoFilter 代码逻辑问题
-
-### 前端改动
-
-* update 升级 element vite 版本 最低nodejs版本提升到18.18.0
-* update 优化 更改客户端状态接口 使用clientId传参
-* update 优化 ws开关改为常开(vite5修复了崩溃bug)
-* update 优化 移除cjs
-* update 优化 对Volar支持
-* update 优化 富文本组件,修复两个组件上传图片位置错乱问题
-* update 优化 request请求类判断请求头方式
-* update 优化 密码校验策略增加非法字符限制
-* update 优化 支持全局开启或关闭接口加密功能
-* update 优化 暗黑模式,增加vxe的暗黑模式
-* update 优化 首页打开topNav不展开菜单问题
-* update 优化 el-select 与 el-input 全局样式
-* update 优化 跟密码相关的默认前端关闭防重功能
-* add 新增 社交登录整合 TopIam
-* add 新增 图片上传组件增加压缩功能支持,可自行开关
-* add 新增 vxe-table依赖支持
-* add 新增 全局用户选择组件
-* add 新增 工作流相关页面与组件
-* add 新增 使用bpmnjs流程预览
-* add 新增 在线登录设备管理(感谢 AprilWind)
-* add 新增 用户选择角色时 可搜索功能(感谢 追梦稻草人Li)
-* fix 修复 登录失效,重新登录丢失参数问题(感谢 爱宇阳)
-* fix 修复 websocket 非index页面刷新无法重连问题
-* fix 修复 全局属性找不到的问题(感谢 ahaos)
-* fix 修复 vue 类型识别问题
-* fix 修复 富文本编辑器 单页面多实例图片混乱问题
-* fix 修复 i18n无感刷新问题
-* fix 修复 文件预览大写后缀不展示的问题(感谢 北桥)
-* fix 修复 面板因为min width原因收缩不全
-* fix 修复 移动端下 无法展开菜单问题
-* fix 修复 菜单搜索下方出现白色区域
-* fix 修复 el-tag标签类型不一致问题
-* fix 修复 角色必填*号
-
-### 微服务修改
-
-* update springcloud 2022.0.4 => 2023.0.2
-* update springcloud-alibaba 2022.0.0.0 => 2023.0.1.0
-* update dubbo 3.2.7 => 3.2.14
-* update easy-es 2.0.0-beta4 => 2.0.0 正式版
-* update nacos 2.2.1 => 2.3.2 默认开启nacos服务端授权认证 (感谢 OldDriver9527)
-* update rocketmq 4.9.4 => 5.2.0 docker镜像升级
-* update kafka 3.2.0 => 3.6.2 docker镜像升级
-* update rabbitmq 3.10.6 => 3.13.3 docker镜像升级
-* update sentinel 1.8.6 => 1.8.8
-* update skywalking 9.3.0 => 9.7.0
-* update skywalking-agent 8.16.0 => 9.2.0
-* update 优化 dubbo 使用 redis 作为元数据中心管理 支持过期时间 避免过期数据堆积 解放nacos存储空间
-* update 优化 调整配置文件语法
-* update 优化 使用spring工具自定义dubbo ip获取方法(针对多网卡ip获取不正确问题)
-* update 优化 common-dubbo 删除无用依赖
-* update 优化 去除重复的扫描器 @EnableDubbo 会自行扫描包
-* update 优化 加密组件 mp依赖改为可选
-* update 优化 mybatis依赖设置为可选依赖 避免出现不应该注入的情况
-* fix 修复 sentinel-dashboard的pom引入logaback冲突问题
-* fix 修复 nacos 不兼容 logback 1.4 新版本问题
-* fix 修复 开启数据库加密 auth服务报错问题
-* fix 修复 gateway sentinel 限流报错问题(临时方案) https://github.com/alibaba/Sentinel/issues/3298
-
-
-## v2.1.2 - 2023-12-22
-
-### 依赖升级
-
-* update springboot 3.1.5 => 3.1.7
-* update springboot 2.7.17 => 2.7.18(扩展服务升级到boot2最终版本)
-* update mybatis-boot 3.0.2 => 3.0.3 优化依赖传递
-* update powerjob 4.3.3 => 4.3.6
-* update easyexcel 3.3.2 => 3.3.3
-* update transmittable-thread-local 2.14.2 => 2.14.4
-* update justauth 1.16.5 => 1.16.6
-* update redisson 3.24.1 => 3.24.3 修复订阅重启连接超时问题
-* update easy-es 1.1.1 => 2.0.0-beta4
-
-### 功能更新
-
-* update 优化 oss 远程调用 支持降级处理
-* update 优化 丰富RedisUtils对List Set类型的操作
-* update 优化 为 admin 模块 单独增加ratelimiter模块
-* update 优化 验证码接口 增加限流配置
-* update 优化 excel合并注解会根据第一合并列的结果来决定后续的列合并 (感谢 Simple)
-* update 优化 SocialUtils 代码
-* update 优化 删除无用异常类
-* update 优化 补全三方登录校验国际化
-* update 优化 sms组件 预留自动配置类
-* update 更新 关于数据库的说明
-* update 优化 sms组件 预留自动配置类
-* update 优化 将 OSS配置 改为全局模式 降低使用难度 保留sql便于用户自行扩展(常规项目用不上配置分多租户)
-* update 优化 细化oss配置管理权限控制
-* update 优化 开启 redisson 脚本缓存 减少网络传输
-* update 优化 删除 hikaricp 官方不推荐使用的配置 jdbc4 协议自带校验方法
-* update 优化 减少 PlusSaTokenDao 不必要的查询优化性能
-* update 优化 更新用户异常提示 使用登录账号
-* update 优化 使用登录用户判断是否登录 提高效率
-* update 优化 重构 LoginHelper 将本地存储代码操作封装
-* update 优化 getTenantId 判断是否开启多租户
-* update 优化 Dockerfile 使用shell模式 支持环境变量传入jvm参数
-* update 优化 WebSocketUtils 连接关闭改为警告
-* update 优化 excel多sheet页导出 (感谢 May)
-* update 优化 删除无用接口实现
-* update 优化 jvm参数调整 全面启用zgc
-* update 优化 使用动态租户重构业务对租户的逻辑
-* update 优化 TenantHelper 动态租户支持函数式方法
-* update 优化 支持多租户绑定相同的三方登录
-* update 优化 更新用户登录信息方法忽略数据权限
-* update 优化 补全三方绑定时间字段 删除无用excel注解
-* update 优化 将登录记录抽取到监听器统一处理
-* update 优化 登录消息推送异常拦截(未启动resource也不耽误用)
-* update 优化 租户插件 ignoreTable 方法支持动态租户
-
-### 新增功能
-
-* add 新增 RedisUtils.setObjectIfExists 如果存在则设置方法
-* add 新增 丰富RedisUtils对List Set类型的操作
-* add 新增 翻译组件 用户昵称翻译实现
-* add 新增 响应加密功能 支持注解强制加密接口数据 (感谢 MichelleChung)
-* add 新增 common-ratelimiter 限流模块 用于自定义业务限流 与 sentinel不冲突
-
-### 问题修复
-
-* fix 修复 stream-mq 测试服务未导入租户模块 导致鉴权不一致问题
-* fix 修复 使用zgc导致seata报错(未知原因 将alibaba组件全还原)
-* fix 修复 sentinel 镜像添加了多余接口参数
-* fix 修复 注册接口获取开关未在租户范围内问题
-* fix 修复 seata-server logback版本冲突问题
-* fix 修复 selectDictTypeByType 查询方法错误问题
-* fix 修复 一些不正常类无法加载报错问题
-* fix 修复 powerjob sql脚本针对其他数据库转义符问题 (感谢 branches)
-* fix 修复 MybatisSystemException 空指针问题
-* fix 修复 excel合并注解会根据第一合并列的结果来决定后续的列合并
-* fix 修复 session 多账号共用覆盖问题 改为 tokenSession 独立存储
-* fix 修复 token 失效后 登录获取用户null问题
-* fix 修复 powerjob部署方案 高版本nginx不生效问题
-* fix 修复 OssFactory 并发多创建实例问题
-* fix 修复 延迟队列在投递消息未到达时间的时候 服务死机导致重启收不到消息
-
-### 前端改动
-
-* update 优化 用户头像 img 变量无确定类型问题
-* update 优化 细化oss配置管理权限控制
-* update 优化 明确打包命令
-* update 优化 代码中存在的警告
-* update 优化 前端白名单页面放行逻辑
-* update 优化 页面关于权限标识符说明
-* fix 修复 append-to-body 编写错误 (感谢 Ai3_刘小龙)
-* fix 关闭动态路由tab页签时不清理组件缓存 (感谢 NickLuo)
-* fix 删除重复环境变量ElUploadInstance (感谢 棉花)
-* fix 修复 在线用户 强推按钮点击取消控制台警告问题
-* fix 修复 字典使用 default 样式报警告问题
-
-## v1.8.2 - 2023-11-27
-
-### 依赖升级
-
-* update springboot 2.7.16 => 2.7.18 升级到2.X最终版本(官方停更)
-* update mybatis-plus 3.5.3.2 => 3.5.4
-* update satoken 1.36.0 => 1.37.0
-* update hutool 5.8.20 => 5.8.22
-* update aws-java-sdk-s3 1.12.400 => 1.12.540
-* update vue-quill 1.1.0 => 1.2.0
-
-### 功能更新
-
-* update 优化 页面关于权限标识符说明
-* update 优化 数据权限拦截器优先判断方法是否有效 提高性能减少无用sql解析
-* update 优化 部门数据权限使用默认兜底方案
-* update 优化 补全代码生成 columnList 接口参数注解缺失
-* update 优化 AddressUtils 兼容linux系统本地ip
-* update 优化 操作日志 部门信息完善
-* update 优化 数据权限 减少二次校验查询
-* update 修改 获取用户token和后端不一致的问题 (感谢 bestrevens)
-* update 优化 vue3 版本用户初始密码从字典查询
-* update 优化 富文本Editor组件检验图片格式
-* update 优化 操作日志列表新增IP地址查询
-* update 优化 全局数据存储用户编号
-* update 优化 菜单管理类型为按钮状态可选
-
-### 问题修复
-
-* fix 修复 OssFactory 并发多创建实例问题
-* fix 修复 demo页面字段编写错误
-* fix 修复 数据权限优化后 update delete 报null问题
-* fix 修复 五级路由缓存无效问题
-* fix 修复 oss服务无法连接
-* fix 修复 内链iframe没有传递参数问题
-* fix 修复 外链带端口出现的异常
-* fix 修复 普通角色编辑使用内置管理员code越权问题
-* fix 修复 seata XA模式缺失druid工具问题
-* fix 修复 代码生成 是否必填与数据库不匹配问题
-* fix 修复 富文本上传接口地址错误
-* fix 修复 HeaderSearch组件跳转query参数丢失问题
-* fix 修复树结构代码生成新增方法赋值错误
-
-## v2.1.1 - 2023-11-14
-
-### 依赖升级
-
-* update springboot 3.1.3 => 3.1.5
-* update springboot 2.7.14 => 2.7.17(扩展服务)
-* update springboot-admin 3.1.5 => 3.1.7
-* update satoken 1.35.0.RC => 1.37.0
-* update mybatis-plus 3.5.3.2 => 3.5.4 适配mp新版本改动
-* update dynamic-ds 4.1.3 => 4.2.0
-* update bouncycastle 1.72 => 1.76
-* update poi 5.2.3 => 5.2.4
-* update redisson 3.23.2 => 3.24.1
-* update hutool 5.8.20 => 5.8.22
-* update lombok 1.18.26 => 1.18.30(适配支持jdk21)
-* update vue-quill 1.1.0 => 1.2.0
-* update seata 1.7.0 => 1.7.1
-* update dubbo 3.2.5 => 3.2.7
-
-### 功能更新
-
-* update 优化 移除不合理的方法 携带附件的邮件建议直接集成插件发送
-* update 优化 携带 clientid 跨域问题
-* update 优化 数据权限拦截器优先判断方法是否有效 提高性能减少无用sql解析
-* update 优化 适配 maxkey 新版本
-* update 优化 @Sensitive脱敏增加角色和权限校验 (感谢 盘古给你一斧)
-* update 优化 部门数据权限使用默认兜底方案
-* update 优化 更改默认日志等级为info 避免日志过多(按需开启debug)
-* update 优化 登录策略代码优化(感谢 David Wei)
-* update 优化 补全代码生成 columnList 接口参数注解缺失
-* update 优化 nginx 配置支持 websocket
-* update 优化 notice 新增通知公告发送ws推送
-* update 优化 websocket 模块减少日志输出 增加登录推送
-* update 优化 重构登录策略增加扩展性降低复杂度
-* update 优化 addressUtils 兼容linux系统本地ip
-* update 优化 补全操作日志部门数据
-* update 优化 支持数据库操作在非web环境下切换租户
-* update 优化 排除powerjob无用的依赖 减少打包30M体积
-* update 优化 删除 satoken yml 时间配置 此功能已迁移至客户端管理
-* update 优化 redis 集群模式注释说明
-* update 优化 客户端禁用限制
-* update 优化 登录日志, 在线用户展示信息(增加 客户端, 设备类型)(感谢 MichelleChung)
-* update 优化 限制框架中的fastjson版本
-* update 优化 数据权限 减少二次校验查询
-* update 优化 将部门id存入token避免过度查询redis
-* update 优化 增加租户ID为Null错误日志
-* update 优化 操作日志列表新增IP地址查询
-* update 优化 通过参数键名获取键值接口的返回体(感谢 David Wei)
-* update 优化 为 sys_grant_type 字典增加样式
-* update 优化 代码生成 页面输入框样式
-* update 优化 全业务分页查询增加排序规则避免因where条件导致乱序问题
-* update 优化 登录接口租户id被强制校验问题
-* update 优化 加密模块 支持父类统一使用加密注解(感谢 Tyler Ge)
-* update 优化 将graalvm镜像更新为openjdk镜像 需要的人自行切换即可
-* update 优化 部分使用者乱设权限导致无法获取用户信息 增加权限提示
-* update 优化 表格列的显示与隐藏小组件(感谢 bestrevens)
-* update 优化 增加表单构建不能使用说明
-* update 优化 富文本Editor组件检验图片格式
-* update 优化 操作日志列表新增IP地址查询
-* update 优化 菜单管理类型为按钮状态可选
-* update 优化 用户初始密码从参数配置查询
-* update 优化 通过参数键名获取键值接口的返回体(感谢 David Wei)
-* update 优化 字典标签支持数组和多标签(感谢 抓蛙师)
-
-### 新增功能
-
-* add 新增 websocket 群发功能
-* add 新增 前端接入websocket接收消息(感谢 三个三)
-* add 增加 rpc消息推送接口与实现
-* add 新增 CacheController Redis 缓存监控接口(感谢 Michelle.Chung)
-
-### 问题修复
-
-* fix 修复 因扩展服务不支持boot3导致无法引入common-web包 日志写出不生效问题
-* fix 修复 seata XA模式缺失druid工具问题
-* fix 修复 oss服务无法连接 导致业务异常问题 查询不应该影响业务
-* fix 修复 租户id为null 无法匹配字符串导致的嵌套key问题
-* fix 修复 部门管理orderNum排序失效问题
-* fix 修复 外链带端口出现的异常
-* fix 修复 普通角色编辑使用内置管理员code越权问题
-* fix 修复 代码生成 是否必填与数据库不匹配问题
-* fix 修复 用户注册接口校验用户名不区分租户问题
-* fix 修复 错误增加组导致的校验不生效问题
-* fix 修复 新增校验主键id问题
-* fix 修复 powerjob 使用 nginx 部署无法访问的问题
-* fix 修复 SysUserMapper 内标签使用错误(不影响使用)
-* fix 修复 新增或编辑 SysOssConfig 数据后 推送到 redis 数据不完整
-* fix 修复 树表生成查询变量使用错误
-* fix 修复 个人信息修改密码接口隐藏新旧密码参数明文(感谢 bleachtred)
-* fix 修复 删除字段后 * update sql 未更新问题
-* fix 修复 三方登录支付宝source与实际支付宝业务code不匹配问题
-* fix 修复 五级路由缓存无效问题
-* fix 修复 内链iframe没有传递参数问题
-* fix 修复 绑定第三方帐号参数“wechar”更正为“wechat” (感谢 scmiot)
-* fix 修复 用户注册缺失 clientid 问题
-* fix 修复 HeaderSearch组件跳转query参数丢失问题
-* fix 修复 自定义字典样式不生效的问题
-* fix 修复 login 页面 loading 未关闭问题
-
-## v1.8.1 - 2023-09-26
-
-### 依赖升级
-
-* update springboot 2.7.14 => 2.7.16
-* update springboot-admin 2.7.10 => 2.7.11
-* update satoken 1.35.0.RC => 1.36.0
-* update lombok 1.18.26 =. 1.18.30
-* update springboot 2.7.13 => 2.7.14
-* update mybatis-plus 3.5.3.1 => 3.5.3.2
-* update easyexcel 3.3.1 => 3.3.2
-* update hutool 5.8.18 => 5.8.20
-* update dubbo 3.1.8 => 3.1.11
-
-### 功能更新
-
-* update 优化 代码生成 vo实体类序列化
-* update 优化 excel 导出不必要的请求头
-* update 优化 字典标签支持传分隔符分隔的字符串和数组
-* update 优化 控制台debuger位置错误问题 
-* update 优化 TopNav 菜单样式
-* update 优化 注册用户异常报错不正确问题
-* update 优化 全局异常处理器 业务异常不输出具体堆栈信息 减少无用日志存储
-* update 优化 用户管理 只查询未禁用的部门角色岗位数据
-* update 优化 岗位如果绑定了用户则不允许禁用
-* update 优化 部门与角色如果绑定了用户则不允许禁用
-* update 优化 加密实现 使用 EncryptUtils 统一处理
-* update 优化 适配 mysql 8.0.34 升级连接机制
-* update 优化 excel导出字典转下拉框 无需标记index自动处理
-* update 优化 excel 导出字典默认转为下拉框
-* update 删除一些跟swagger有关的字眼 避免误解
-* update 优化 角色权限支持仅本人权限查看 解决无法查看自己创建的角色问题
-* update 优化 xxljob 端口随着主应用端口飘逸 避免集群冲突
-
-### 问题修复
-
-* fix 修复 自定义字典样式不生效的问题
-* fix 修复 新建用户可能会存在的越权行为
-* fix 修复 字典缓存删除方法参数错误问题
-* fix 修复 修复树模板父级编码变量错误
-* fix 修复 demo 模块缺少 security 依赖问题
-* fix 修复 升级 mp 版本导致的问题
-* fix 修复 加密模块数据转换异常问题
-* fix 修复 动态设置 token 有效期不生效问题
-* fix 修复 token 过期登出无法清理在线用户问题
-
-
-## v2.1.0 - 2023-09-06
-
-# 开发历程
-
-* 2023年5月 开始 2.1.0 计划 历经1个月的设计与讨论
-* 2023年6月 开始着手开发 历经2个多月的开发 特别感谢团队的小伙伴与一些热心的粉丝 参与功能开发与测试
-* 2023年8月 开始公测 历经将近1个月的公测与修复工作(期间成功支持多位使用者生产使用)
-* 2023年9月初 正式发布(经过多个小伙伴的生产实践 已基本可尝试生产使用)
-> 关于1.X的说明 由于SpringBoot2.X与vue2.X均在11月底停止维护<br>
-> 故而咱们vue版本1.X也无法再继续更新<br>
-> 介于1.X的用户量特别庞大 功能也非常的稳定<br>
-> 计划于11月底同Boot2.X一同停止更新但还会持续维护修复bug(修复的形式为直接提交到1.X分支停止发版)<br>
-
-# 视频介绍
-
-为了更好的让大家了解 2.1.0 作者录制了相关的视频 供大家快速了解上手
-
-* 2.1.0 新功能与变更介绍: https://www.bilibili.com/video/BV1fj411y71X/
-
-# 更新日志
-
-### 重大更新
-
-* [重大更新] 优化 相关代码 完成代码生成多数据源统一存储(感谢 WangBQ)
-* [不兼容更新] 移除 原短信功能 集成更强大的 sms4j 短信工具包(感谢 友杰)
-* [不兼容更新] 对接 powerjob 实现分布式任务调度 删除原有 xxljob 原因为社区不更新功能太少只支持mysql(感谢 yhan219)
-* [重大更新] 新增 三方授权绑定登录功能 基于 justauth 支持市面上大部分三方登录(感谢 三个三)
-* [不兼容更新] 新增 客户端授权功能 不需要更改任何代码即可完成多端动态对接(感谢 Michelle.Chung)
-* [重大更新] 新增 前后端接口请求加密传输 基于AES+RSA动态高强度加密(感谢 wdhcr)
-* [重大更新] 新增 三方授权登录 对接 maxkey 单点登录
-* [不兼容更新] 优化 redis序列化配置 更改为通用格式(升级需清除redis所有数据)
-* [重大更新] 新增 通过 sharding-proxy 实现分库分表(感谢 rice666 !pr94)
-
-### 依赖升级
-
-* update springboot 3.0.7 => 3.1.3
-* update springboot-admin 3.1.3 => 3.1.5
-* update springcloud 2022.0.2 => 2022.0.4
-* update springcloud-alibaba 2022.0.0.0-RC2 => 2022.0.0.0
-* update springdoc 2.1.0 => 2.2.0
-* update spring-mybatis 3.0.1 => 3.0.2
-* update mybatis-plus 3.5.3.1 => 3.5.3.2
-* update easyexcel 3.2.1 => 3.3.2
-* update mapstruct-plus 1.2.3 => 1.3.5 解决修改实体类 idea不编译问题
-* update satoken 1.34.0 => 1.35.0.RC 优化过期配置 支持多端token自定义有效期
-* update dynamic-ds 3.6.1 => 4.1.3 支持 SpringBoot3
-* update sms4j 2.2.0
-* update hutool 5.8.18 => 5.8.20
-* update redisson 3.20.1 => 3.23.4
-* update lock4j 2.2.4 => 2.2.5
-* update aws-java-sdk-s3 1.12.400 => 1.12.540
-* update maven-surefire-plugin 3.0.0 => 3.1.2
-* update seata 1.6.1 => 1.7.0
-* update sharding-proxy 5.4.0
-* update dubbo 3.2.2 => 3.2.5
-* update skywalking-toolkit 8.14.0 => 8.16.0
-* update logstash 7.2 => 7.4
-
-### 功能更新
-
-* update 优化 与 vue 版本同步代码结构
-* update 优化 放行springboot默认error接口
-* update 优化 RepeatSubmitAspect 逻辑避免并发请求问题
-* update 调整 gateway 访问日志输出等级
-* update 优化 修改角色如果未绑定用户则无需清理
-* update 优化 用户昵称非空校验
-* update 优化 在全局异常拦截器中增加两类异常处理
-* update 优化 StreamUtils 方法过滤null值
-* update 优化 powerjob 端口随着主应用端口飘逸 避免集群冲突
-* update 优化 角色权限支持仅本人权限查看 解决无法查看自己创建的角色问题
-* update 修改代码生成模版,日期范围统一采用addDateRange方法
-* update 优化 树表生成前端缺少 children 字段
-* update 优化 ruoyi-resource 服务添加 websocket 模块
-* update 优化 放行验证码接口、第三方登录请求与回调
-* update 更新 GlobalLogFilter#filter 根据请求头判断加密参数(感谢 Michelle.Chung !pr100)
-* update 优化 SaReactorFilter 过滤器判断 token 客户端 id 是否有效(感谢 Michelle.Chung !pr101)
-* update 删除一些跟swagger有关的字眼 避免误解
-* update 优化 兼容 clientid 通过 param 传输
-* update 优化 excel导出字典转下拉框 无需标记index自动处理(感谢 一夏coco)
-* update 优化 增加线程池销毁配置
-* update 优化 屏蔽 powerjob 无用的心跳日志
-* update 优化 适配 mysql 8.0.34 升级连接机制
-* update 优化 加密实现 使用 EncryptUtils 统一处理
-* update 优化 删除字典无用状态字段(基本用不上 禁用后还会导致回显问题)
-* update 优化 部门与角色如果绑定了用户则不允许禁用
-* update 优化 岗位如果绑定了用户则不允许禁用
-* update 优化 用户管理 只查询未禁用的部门角色岗位数据
-* update 优化 登录用户增加昵称返回
-* update 优化 全局异常处理器 业务异常不输出具体堆栈信息 减少无用日志存储
-* update 优化 将部门管理 负责人选项改为下拉框选择
-* update 优化 登录用户缓存 去除冗余统一存储
-* update 优化 注册用户异常报错不正确问题
-* update 优化 放宽菜单权限 角色关联菜单无需管理员
-
-### 新增功能
-
-* add 增加 RedisUtils 批量删除 hash key 方法
-* add 新增 Oss 上传 File 文件方法(感谢 jenn)
-* add 增加 excel 导出下拉框功能
-* add 新增 RedisUtils.setObjectIfAbsent 如果不存在则设置方法
-
-### 修复问题
-
-* fix 修复 用户重名登录报错问题
-* fix 修复 服务未添加 common-security 模块导致异常拦截器不生效问题
-* fix 修复 用户篡改管理员角色标识符越权问题
-* fix 修复 文件管理 创建人未翻译问题
-* fix 修复 monitor 监控无法展示数据问题
-* fix 修复 更换 satoken dubbo 插件导致包名不一致问题
-* fix 修复 字典缓存注解使用错误问题
-* fix 修复 接口文档未拼接服务路径问题
-* fix 修复 excel 枚举反向解析失败问题
-* fix 修复 查询部门下拉树未过滤数据权限问题
-* fix 修复 CacheName 缓存key存储错误问题
-* fix 修复 oss 列表 用户名回显错误
-* fix 修复 不同vo相同字段mybatis会自动赋值问题
-* fix 修复 删除 skywalking dubbo 2.X 插件避免与 3.X 出现兼容性问题
-* fix 修复 新增角色使用内置管理员标识符问题
-* fix 修复 token 过期登出无法清理在线用户问题
-* fix 修复 动态设置 token 有效期不生效问题
-* fix 修复 加密模块数据转换异常问题
-* fix 修复 dubbo 更改内部序列化方式 导致异常类无法反序列化问题
-* fix 修复 客户端编辑时授权类型变更未保存的问题
-* fix 修正 缺失 SysClientVoConvert 导致转换异常(感谢 Michelle.Chung)
-* fix 修正 auth 模块缺失引用导致解密异常(感谢 Michelle.Chung)
-* fix 修复 demo 与 stream-mq 模块缺少 security 依赖问题
-* fix 修复 导入用户数据 变量使用错误问题
-* fix 修复 验证码开关未动态刷新问题
-* fix 修复 自动填充数据 loginUser 为 null(感谢 charles !pr108)
-* fix 修复 修复树模板父级编码变量错误
-* fix 修复 部署部分系统出现乱码问题
-* fix 修复 一级菜单无法显示问题
-* fix 修复 新建用户可能会存在的越权行为
-* fix 修复 代码生成页面参数缺少逗号问题
-
-### 移除功能
-
-* remove 移除原有短信功能(建议使用sms4j)
-* remove 移除xxljob功能(建议使用powerjob)
-
-
-## v1.8.0 - 2023-07-11
-
-### 重大更新
-
-* [重大更新] 新增 sms4j 短信融合框架整合(支持数十种短信厂商接入、发送限制、负载均衡等功能)
-* [不兼容更新] 移除 原短信功能(建议使用新 sms4j 功能)
-* [重要迁移] 迁移 vue3 前端到主仓库统一维护
-
-### 依赖升级
-
-* update springboot 2.7.11 => 2.7.13
-* update spring-cloud 2021.0.7 => 2021.0.8
-* update satoken 1.34.0 => 1.35.0.RC
-* update easyexcel 3.2.1 => 3.3.1
-* update sms4j 2.2.0
-* update element 2.15.12 => 2.15.13
-
-### 功能更新
-
-* update 优化 StreamUtils 方法过滤null值
-* update 优化 页签在Firefox浏览器被遮挡
-* update 优化 在全局异常拦截器中增加两类异常处理
-* update 优化 下载zip方法增加遮罩层(感谢@梁剑锋)
-* update 优化 用户昵称非空校验
-* update 优化 修改角色如果未绑定用户则无需清理
-* update 优化 RepeatSubmitAspect 逻辑避免并发请求问题
-* update 优化 satoken 过期配置 支持多端token自定义有效期
-* update 优化 加密注解注释错误
-* update 优化 切换 maven 仓库到华为云(aliyun 不可用)
-* update 优化 excel 导出存在合并项时在初始化类时进行数据的处理避免多次调用(感谢@yueye)
-* update 优化 重构 CellMergeStrategy 支持多级表头修复一些小问题 整理代码结构
-* update 补全 SysLogininforMapper.xml 缺失字段
-* update 优化 demo 模块 路径适配统一前端
-* update 调整 gateway 访问日志输出等级
-
-### 新增功能
-
-* add 新增 RedisUtils.setObjectIfAbsent 不存在则设置方法
-* add 新增 Excel 导出附带有下拉框(字典自动导出为下拉框) 可自定义多级下拉框(感谢@Emil.Zhang)
-* add 新增 OssClient File 文件上传方法
-* add 增加 RedisUtils 批量删除 hash key 方法
-
-### 问题修复
-
-* fix 修复 sa-token.check-same-token 开关对网关鉴权无效问题
-* fix 修复 服务未添加 common-security 模块导致异常拦截器不生效问题
-* fix 修复 删除 skywalking dubbo 2.X 插件避免与 3.X 出现兼容性问题
-* fix 修复 excel 枚举反向解析失败问题
-* fix 修复 字典缓存注解使用错误问题
-* fix 修复 新增角色使用内置管理员标识符问题
-* fix 修复 缓存监控图表 支持跟随屏幕大小自适应调整(感谢@抓蛙师)
-* fix 修复 防重组件 错删注解问题
-* fix 修复 CacheName 缓存key存储错误问题
-* fix 修复 字典缓存注解使用错误问题
-* fix 修复 用户篡改管理员角色标识符越权问题
-* fix 修复 登录校验错误次数未达到上限时 错误次数缓存未设置有效时间问题
-* fix 修复 OssClient 切换服务 实例不正确问题
-* fix 修复 element ui 因版本而未被工具识别问题(感谢@梁剑锋)
-* fix 修复 admin监控 切换tab页需要重复登录问题
-* fix 修复 个人中心tab栏关闭页面内容压缩问题
-
-## v2.0.0 - 2023-06-15
-
-**重点说明: 由于 SpringCloudAlibaba 一直未发布正式版 导致系统底层组件可能存在些许问题 故而不建议生产使用 框架也将直接开启后续 2.1.0 的开发工作**
-
-### 重大更新
-
-* [不兼容升级] java 版本从 jdk 8 升级到 jdk 17 且需要使用 graalvm 运行(暂时未解决原生jdk存在的问题)
-* [不兼容升级] springboot 升级 3.0 版本
-* [不兼容升级] 重构 项目模块结构 采用插件化结构 易扩展易解耦
-* [不兼容升级] com.sun.mail 更改为 jakarta.mail 修改最新写法
-* [不兼容升级] javax.servlet 替换为 jakarta.servlet 更新所有代码
-* [简化性升级] 默认开启复杂结构 resultMap 自动映射 简化xml编码(多结构实体需带上主键id) 
-* [数据库改动] 更新 create_by update_by 字段类型 (保存用户id)
-* [数据库改动] 新增 create_dept 字段 (保存创建部门id)
-* [不兼容更新] system 模块 所有实体类均使用 bo|vo 规范化
-* [重大更新] 新增 多租户功能设计 整体框架代码结构与数据库更改
-* [重大更新] 新增 mapstruct-plus 替换 BeanUtil 与 BeanCopyUtils 工具
-* [不兼容更新] 重构 登录注解接口与cloud版本统一接口路径
-* [不兼容更新] 重构 BaseMapperPlus接口 去除 `@param <M> Mapper` 泛型
-* [不兼容更新] 移除 vue2 前端工程 全面启用 vue3
-* [重大更新] 新增 vue3 + TS 版本前端(独立仓库后续与Cloud版本共用)
-* [重大更新] 增加 websocket 模块 支持token鉴权 支持分布式集群消息同步
-* [重大更新] 框架文档全面翻新 https://plus-doc.dromara.org
-* [不兼容更新] 代码生成 支持代码生成多数据源统一存储(主库存储子库的表 无需子库加gen表了)
-* [不兼容更新] 重构 将系统内置配置放置到common包内独立加载 不允许用户随意修改
-
-### 依赖升级
-
-* update java 1.8 => 17
-* update springboot 2.7.7 => 3.0.7
-* update springcloud 2021.0.6 => 2022.0.2
-* update springcloud-alibaba 2022.0.0.0-RC2
-* update springboot-admin 2.7.10 => 3.0.4
-* update springdoc 1.6.14 => 2.1.0
-* udpate dubbo 3.1.8 => 3.2.2
-* update lock4j 2.2.3 => 2.2.4
-* update dynamic-ds 3.5.2 => 3.6.1
-* update easyexcel 3.1.5 => 3.2.1
-* update hutool 5.8.11 => 5.8.18
-* update redisson 3.19.2 => 3.20.1
-* update lombok 1.18.24 => 1.18.26
-* update spring-boot.mybatis 2.2.2 => 3.0.1
-* update mapstruct-plus 1.2.3
-* update maven-compiler-plugin 3.10.1 => 3.11.0
-* update maven-surefire-plugin 3.0.0-M7 => 3.0.0
-* update docker mysql 8.0.31 => 8.0.33
-* update docker nginx 1.22.1 => 1.32.4
-* update docker redis 6.2.7 => 6.2.12
-* update docker minio RELEASE.2023-04-13T03-08-07Z
-
-### 功能更新
-
-* update 适配 AsyncConfig 替换过期继承类改为实现 AsyncConfigurer 接口
-* update 适配 redis 新版本配置文件写法
-* update 适配 获取redis 监控参数接口 替换过期语法
-* update 适配 sa-token 替换新依赖 sa-token-spring-boot3-starter
-* update 适配 springboot-admin 改为最新 spring-security 写法
-* update 适配 springdoc 新版本配置方式
-* update 适配 ServletUtils 更换继承 JakartaServletUtil
-* update 适配 新序列化注解
-* update 优化 利用 resultMap 自动映射配置 简化 xml (非嵌套)
-* update 优化 调整 system entity 实体与 controller 包结构
-* update 优化 实体类中校验注解的提示信息
-* update 优化 使用 jdk17 语法优化代码
-* update 优化 所有 properties 文件改为注解启用
-* update 更新 docker 基础镜像 graalvm java17
-* update 优化 用户头像 改为存储 ossId 使用转换模块转为 url 展示
-* update 优化 重构 CellMergeStrategy 支持多级表头修复一些小问题 整理代码结构
-* update 优化 登录流程代码注释
-* update 优化 将框架内的swagger命名更改为springdoc命名避免误解
-
-### 新增功能
-
-* add 新增 flatten-maven-plugin 插件统一版本号管理
-* add 新增 ip2region 实现离线IP地址定位库
-
-### 移除功能
-
-* remove 移除 BeanCopyUtils 工具类 与 JDK17 不兼容
-* remove 移除 devtools 依赖 并不好用(建议直接用idea自带的热更)
-* remove 移除 vue2 前端工程 统一使用 vue3 工程
-
-### 修复功能
-
-* fix 修复 根据 seata 官方提交记录 临时修复 seata 关于jdk17代理的bug
-* fix 修复 登录校验错误次数未达到上限时 错误次数缓存未设置有效时间问题
-* fix 修复 common-core 包使用aop注解 但未添加aop实现类导致单独使用报错问题
-
-## v1.7.0 - 2023-05-10
-
-### 依赖升级
-
-* update springboot 2.7.9 => 2.7.11 修复 DoS 漏洞 修复CVE漏洞
-* update springcloud 2021.0.6 => 2021.0.7
-* update springcloud-alibaba 2021.0.4.0 => 2021.0.5.0
-* update dubbo 3.1.7 => 3.1.10
-* update nacos 2.2.0 => 2.2.1
-* update xxljob 2.3.1 => 2.4.0
-* update minio 升级至最新版 避免低版本信息泄漏问题
-* update hutool 5.8.15 => 5.8.18
-* update redisson 3.20.0 => 3.20.1
-* update lombok 1.18.24 => 1.18.26
-
-### 功能更新
-
-* update 优化 更改 sys_oss_config 表注释 避免误解
-* update 优化 sys_logininfor 丰富多种信息
-* update 项目正式入驻 dromara 开源社区 更改项目地址
-* update 全新 logo 全新背景图(设计师打造)
-* update 优化 代码生成模块的数据同步功能
-* update 修改多团队开发插件,支持多网卡
-* update 修改controller中校验直接返回R.fail
-* update 优化 角色sort值一样的排序问题
-* update 更换默认用户头像
-* update 优化 WebFluxUtils.getOriginalRequestUrl 方法获取空路径报错问题
-* update 去除same-token有限期配置,使用默认配置(一天)
-* update 优化固定头部页签滚动条被隐藏的问题
-* update delete vue-multiselect style
-* update 按代码规范补全重写注解
-* update 优化 极端情况获取LoginUser可能为null问题
-* update 优化 更改系统所有服务日志配置文件命名为 logback-plus.xml 避免与其他框架默认配置冲突
-* update 优化 skywalking-agent 探针日志等级调整为 WARN 减少无用日志输出
-* update 优化 加解密模块 将null判断下推防止任何可能的null出现
-* update 优化 在线用户token获取方式
-* update 优化 用户更改角色 踢掉角色相关所有在线用户
-
-### 新功能
-
-* add 集成 ip2region 实现离线IP地址定位库
-* add 增加 邮箱验证码发送接口
-* add 增加 邮箱登陆接口
-* add 增加 EncryptUtils 加解密安全工具类 可以处理base64,aes,sm4,sm2,rsa,md5,sha256加解密
-* add 增加 EncryptUtils 类中增加国密sm3的不可逆加密算法
-* add 新增 忽略数据权限写法 防止异常不执行关闭问题
-
-### 问题修复
-
-* fix 修复 MybatisExceptionHandler 未自动装载问题
-* fix 修复 代码生成 点选按钮不生效问题
-* fix 修复 Nacos 服务 SpringBoot-admin 客户端功能失效问题
-* fix 修复 findInSet 在mysql下方法搜索非数字字段时 无引号报错问题
-* fix 修复 ruoyi-demo postgres 数据库用户名密码变量错误
-* fix 修复 oracle postgres 数据库日志表索引创建错误
-* fix 修复 无法注入 mailProperties 导致 resource 模块无法启动问题
-* fix 修复tab栏”关闭其他“异常的问题
-* fix 修复 加解密拦截器 对象属性为null问题
-* fix 修复 取消oss预览状态修改 图标变化不正常问题
-* fix 修复 nacos 新版本升级后 与 docker 基础镜像系统存在兼容性问题
-
-
-## v1.6.0 - 2023-03-14
-
-### 重大更新
-
-[重大更新] add 新增 通用翻译模块 `ruoyi-common-translation` 实现(部门名、字典、oss、用户名)
-[重大更新] add 新增 数据加解密模块 `ruoyi-common-encrypt`
-
-
-### 依赖升级
-
-* update springboot 2.7.7 => 2.7.9
-* update springcloud 2021.0.5 => 2021.0.6
-* update easyexcel 3.1.5 => 3.2.1
-* update redisson 3.19.1 => 3.20.0
-* update springdoc 1.6.14 => 1.6.15
-* update hutool 5.8.12 => 5.8.15 (13与14有问题勿使用)
-* update logstash-sdk 7.1.1 => 7.2
-* update aws-java-sdk-s3 1.12.373 => 1.12.400
-* update tencent-sms 3.1.660 => 3.1.687
-* update skywalking 8.9.1 => 9.3.0
-* update skywalking-agent 8.13.0 => 8.14.0
-* update dubbo 3.1.4 => 3.1.7 解决dubbo报一些无用警告问题
-* update element-ui 2.15.10 => 2.15.12
-
-### 功能更新
-
-* update 优化 修改 oss 配置页面开关说明 避免造成误解
-* update 优化 `gateway` 对接 `sentinel` 使用网关特定模式
-* update 优化 转移 `logback-common` 配置到 `common-web` 模块 `gateway` 单独处理
-* update 优化 调整连接池默认参数
-* update 优化 `zookeeper` 自带控制台占用 `8080` 端口
-* update 优化 `DictDataMapper` 注解标注过期 推荐使用 `@Translation` 注解
-* update 优化 获取菜单数据权限接口 删除无用角色属性与逻辑
-* update 优化 调整连接池最长生命周期 防止出现警告
-* update 优化 连接池增加 `keepaliveTime` 探活参数
-* update 优化 `DataPermissionHelper` 增加 `开启/关闭` 忽略数据权限功能
-* update 重构 `OssFactory` 加载方式 改为每次比对配置做实例更新
-* update 优化 更新角色后踢掉所有相关的登录用户 用户量过大会导致redis阻塞卡顿(应粉丝要求)
-* update 优化 翻译组件 支持返回值泛型 支持多种类型数据翻译(例如: 根据主键翻译成对象)
-* update 优化 `tagsView` 右选框,首页不应该存在关闭左侧选项
-* update 优化 `copyright 2023`
-* update 优化 日志注解支持排除指定的请求参数
-* update 优化 业务校验优化代码
-* update 优化 日志管理使用索引提升查询性能
-* update 优化 框架时间检索使用时间默认值 `00:00:00 - 23:59:59`
-* update 优化 oss 预览使用 `ImagePreview` 组件
-* update 优化 统一登录接口令牌key
-
-
-### 新功能
-
-* add 新增 数据加解密模块 测试案例
-* add 新增 `StringUtils` `splitTo` 与 `splitList` 方法 优化业务代码
-
-### 问题修复
-
-* fix 修复 vue3模板 删除功能书写错误
-* fix 修复 部分服务未开启日志存储
-* fix 修复 接口问题开关不生效问题
-* fix 修复 优化文件下载出现的异常
-* fix 修复 修改密码日志存储明文问题
-* fix 修复 代码生成 `postgreSQL` 查出多余的已删除字段
-
-## v1.5.0 - 2023-01-13
-
-### 重大更新
-
-* [重大更新] 框架主体业务与代码生成器 完成 oracle postgres 多数据库类型支持(中间件不支持)
-* [重大更新] 使用 spring 事件发布机制 重构登录日志与操作日志 支持多事件监听无入侵扩展
-* 例如: 可以增加一个监听者将日志上传至ES等存储 对原有逻辑无影响
-
-### 依赖升级
-
-* update springboot 2.7.6 => 2.7.7
-* update springboot-admin 2.7.7 => 2.7.10
-* update dubbo 3.1.3 => 3.1.4
-* update seata 1.5.2 => 1.6.1 适配升级
-* update nacos 2.1.2 => 2.2.0 适配升级
-* update mybatis-plus 3.5.2 => 3.5.3.1
-* update sa-token 1.33.0 => 1.34.0
-* update springdoc 1.6.13 => 1.6.14
-* update snakeyaml 1.32 => 1.33
-* update easyexcel 3.1.3 => 3.1.5
-* update redisson 3.18.0 => 3.19.1
-* update easy-es 1.1.0 => 1.1.1
-* update hutool 5.8.10 => 5.8.11
-* update aws-s3 1.12.349 => 1.12.373
-* update aliyun-sms 2.0.22 => 2.0.23
-* update tencent-sms 3.1.635 => 3.1.660
-* update echarts 4.9.0 => 5.4.0
-
-### 功能更新
-
-* update 优化 BaseMapperPlus 使用 MP V3.5.3 新工具类 Db 简化批处理操作实现
-* update 优化 demo服务 过滤健康检查 sql 打印
-* update 优化 代码生成与框架主体使用相同的主键生成器 全局统一避免问题
-* update 优化 系统登录 使用单表查询校验用户 避免多次join查询
-* update 优化 适配框架多数据库支持 完成 oracle postgres 数据库适配(放弃 sqlserver 适配 原因: 基础中间件均不支持)
-* update 优化 删除主 sql 内无用数据
-* update 优化 删除 vue3 模板无用参数
-* update 优化 重构 ExcelUtil 全导出方法支持 OutputStream 流导出 不局限于 response
-* update 优化 maven 地址切换回 aliyun 仓库
-* update 优化 springdoc 配置鉴权头写死问题 增加持久化鉴权头配置
-* update 优化 actuator 依赖整合到 common-web 模块
-* update 优化 验证码结果使用 spel 引擎自动计算
-* update 优化 数据权限处理器 变量命名错误
-* update 优化 去除 RedisUtils 无用继承
-* update 优化 弹窗内容过多展示不全问题
-* update 优化 删除 fuse 无效选项 maxPatternLength
-* update 优化 minio 安装警告 使用新版本参数
-* update 优化 使用 spring 事件发布机制 重构登录日志与操作日志
-* update 优化 使用 spring 事件机制 重构 OssConfig 缓存更新
-* update 优化 单元格合并判断cellValue是否相等方法
-* update 优化 调整 gateway 拦截器执行顺序 优先处理 xss 过滤 然后进行缓存处理
-
-### 新功能
-
-* add 增加 GET 请求提交日期参数 默认格式化配置
-* add 增加 RedisUtils 检查缓存对象是否存在方法
-* add 增加 oracle postgres docker编排
-* add 新增 代码生成器适配 多数据库可切换生成代码
-* add 新增 oracle postgres 数据库框架sql脚本
-* add 增加 DataBaseHelper 数据库助手 用于适配多类型数据库
-* add 新增 BeanCopyUtils#mapToMap 方法
-
-### 问题修复
-
-* fix 修复 注册页面 验证码开关不生效问题
-* fix 修复 新版本 dubbo-filter-seata 插件内核与seata不一致问题(临时)
-* fix 修复 根据 key 更新参数配置报 null 问题
-* fix 修复 用户注册 用户类型字段书写错误
-* fix 修复 代码生成图片/文件/单选时选择必填无法校验问题
-* fix 修复 修改参数键名时 未移除过期缓存配置
-* fix 修复 内网鉴权 Filter 优先级问题 导致 websocket 连接失败
-* fix 修复 gateway 流控规则生效但不显示问题
-* fix 修复 新版本 Redisson 存在与 boot 2.X 的兼容性问题
-
-## v1.4.0 - 2022-12-01
-
-### 重大更新
-* [重大更新] 新增 对接 skywalking 全功能(详细看下方新功能列表)
-* [重大更新] 重构 ruoyi-nacos 使用官方依赖整合 解决一些问题 并升级 2.1.2 版本
-* [重大更新] 新增 oss 私有库功能(数据库结构改动 需执行升级sql)
-* [重大更新] 优化 数据源连接池从 druid 切换到 hikari(原因看文档)
-* [重大更新] 新增 对接 prometheus + grafana 全功能(详细看下方新功能列表)
-
-### 依赖升级
-* update springcloud 2021.0.4 => 2021.0.5
-* update springboot 2.7.4 => 2.7.6
-* update springboot-admin 2.7.5 => 2.7.7
-* update springdoc 1.6.11 => 1.6.13
-* update poi 5.2.2 => 5.2.3
-* update hutool 5.8.6 => 5.8.10
-* update aliyun-sms 2.0.18 => 2.0.22
-* update tencent-sms 3.1.591 => 3.1.611
-* update sa-token 1.30.0 => 1.33.0
-* update redisson 3.17.6 => 3.18.0
-* update easy-es 1.0.2 => 1.1.0
-* update easyexcel 3.1.1 => 3.1.3
-* update lock4j 2.2.2 => 2.2.3
-* update s3-adk 1.12.300 => 1.12.349
-* update sentinel 1.8.5 => 1.8.6
-* update nacos 2.1.1 => 2.1.2
-* update ELK 7.17.2 => 7.17.6 升级镜像版本
-* update nginx 1.21.6 => 1.22.1 修复漏洞
-* update mysql-docker 8.0.29 => 8.0.31
-
-### 功能更新
-* update 优化 分页对象 PageQuery 支持多排序 适配 文件管理 页面支持多排序
-* update 优化 获取用户信息getInfo接口 使用缓存数据获取
-* update 优化 rpc文件上传 增加 ossId 数据返回
-* update 优化 nacos 集群模式搭建 关于 nacos.home 注释说明
-* update 优化 修改头像在小屏幕上页面布局错位的问题
-* update 优化 oss 云厂商增加 华为obs关键字
-* update 优化 重置时取消部门选中
-* update 优化 新增返回警告消息提示
-* update 优化 抽取 logback 通用配置 logback-common.xml 简化其他服务日志文件书写
-* update 更改 nacos 配置文件目录 从dev文件夹迁移到nacos文件夹与其他配置区分
-* update 优化 gateway 只缓存body
-* update 优化 Dockerfile 创建目录命令简化操作
-* update 优化 gateway filter顺序 与 代码工具封装
-* update 优化 将空 catch 块形参重命名为 ignored
-* update 优化 satoken 依赖传递
-* update 优化 重写字典查询 使用本地缓存优化网络开销 提升到上级实现减少rpc调用频率 使用流处理减少字符串操作
-* update 优化 减小腾讯短信引入jar包的体积
-* update 优化 简化一些方法的写法
-* update 优化 消除Vue3控制台出现的警告信息
-* update 优化 忽略不必要的属性数据返回
-* update 优化 重构 mysql-jdbc 依赖到 mybatis 包内 替换为最新坐标
-
-### 新功能
-* add 新增 所有服务 docker 部署对接 skywalking
-* add 新增 三大 mq 整合 skywalking
-* add 新增 seata 整合 skywalking 手动编译 seata 插件包
-* add 新增 ruoyi-common-skylog 整合 skywalking 日志推送
-* add 增加 skywalking docker编排
-* add 增加 ruoyi-seata-server redis模式配置
-* add 新增 ruoyi-common-prometheus 模块 用于对接 prometheus 监控
-* add 新增 docker prometheus + grafana 容器编排
-* add 新增 ruoyi-monitor 监控服务 提供 prometheus http_sd 服务发现功能
-* add 新增 所有服务整合 ruoyi-common-prometheus 模块
-* add 新增 grafana 监控大屏配置文件(框架定制)
-* add 新增 使用 mica-metrics 为 undertow 提供健康检查
-* add 新增 字典数据映射翻译注解
-* add 增加 RedisUtils 获取缓存Map的key列表
-
-### 问题修复
-* fix 修复 开启账号同端互斥登录 被顶掉后登出报null异常问题
-* fix 修复 设置NameMapper导致队列功能异常问题
-* fix 修复 EnvironmentPostProcessor 不生效问题
-* fix 修复 文件上传组件格式验证问题
-* fix 修复 ruoyi-xxl-job-admin 服务健康检查配置缺失问题
-* fix 修复 Excel导出字典值转换方法由于内部调用缓存不生效bug
-* fix 修复 SysOss 方法内部调用导致缓存不生效 bug
-* fix 修复 主题颜色在Drawer组件不会加载问题
-* fix 修复 修改用户信息 校验用户名未排除当前用户问题
-* fix 修复 升级 nginx 修复漏洞 https://www.oschina.net/news/214309
-* fix 修复 用户编辑时角色和部门存在无法修改情况
-* fix 修复 RemoteDictServiceImpl 代理对象获取异常bug
-* fix 修复 菜单激活无法填充颜色 去除某些svg图标的fill属性
-* fix 修复 使用透明底png图片时, 自动填充黑色背景
-* fix 修复 table中更多按钮切换主题色未生效修复问题
-* fix 修复 dubbo 使用 tri 协议 header 请求头变为小写导致无法获取参数问题
-* fix 修复 DubboRequestFilter 优先级过高导致的 skywalking tid 取不到问题
-* fix 修复 前端脚本乱码问题
-* fix 修复 WebFluxUtils 读取空 body 报 null 问题
-* fix 修复 Log注解GET请求记录不到参数问题
-* fix 修复 某些特性的环境生成代码变乱码TXT文件问题
-* fix 修复 开启TopNav没有子菜单隐藏侧边栏
-* fix 修复 回显数据字典数组异常问题
-* fix 修复 升级 satoken 导致白名单热更不生效问题
-* fix 修复 swagger 版本与 springdoc 版本不一致导致找不到class问题
-* fix 修复 grafana 监控模板绑定数据源ID 导致无法正常读取数据问题
-
-## v1.3.0 - 2022-09-29
-
-### 重大更新
-
-* [重大更新] 新增 ruoyi-nacos 源码集成 nacos 服务端控制台 支持单机/集群模式
-* [重大更新] 重写 spring-cache 实现 更人性化的操作 支持注解指定ttl等一些参数
-* [重大更新] 新增 RuoYi-Cloud-Plus-UI 项目 Vue3 前端分支
-* [重大更新] 移除maven docker插件 过于老旧功能缺陷大 使用idea自带的docker插件替代
-* [重大更新] 优化 ruoyi-common-job 支持通过调度中心服务名注册 xxl-job-admin
-* [重大更新] 新增 ruoyi-common-sentinel 模块 支持使用服务名注册 sentinel 控制台
-
-### 依赖升级
-
-* update spring-cloud 2021.0.3 => 2021.0.4
-* update springboot 2.7.2 => 2.7.4
-* update springboot-admin 2.7.3 => 2.7.5
-* update sentinel 1.8.4 => 1.8.5 集成新 dubbo3 插件
-* update springdoc 1.6.9 => 1.6.11
-* update easy-es 0.9.80 => 1.0.2
-* update dubbo 3.0.10 => 3.1.1
-* update redisson 3.17.5 => 3.17.6
-* update druid 1.2.11 => 1.2.12
-* update hutool 5.8.5 => 5.8.6
-* update dynamic-ds 3.5.1 => 3.5.2
-* update aws-java-sdk-s3 1.12.264 => 1.12.300
-* update aliyun-sms 2.0.16 => 2.0.18
-* update tencent-sms 3.1.555 => 3.1.591
-* update snakeyaml 1.30 => 1.32
-
-### 功能更新
-
-* update 优化 getLoginId 增加必要参数空校验
-* update 优化 将 elasticsearch 解压后放入 避免造成用户误解
-* update 优化 修改资料头像与部门被覆盖的问题
-* update 优化 字典管理操作类型新增其他
-* update 优化 使用 spring-cache 注解优化缓存
-* update 优化 easy-es.enable=false 关闭 actuator 健康检查
-* update 优化 优化多角色数据权限匹配规则
-* update dubbo 升级 3.1.0 删除自行处理的源码修复 采用官方修复后的代码
-* update 优化 页面内嵌iframe切换tab不刷新数据
-* update 优化 调整 oss表key 与 ossconfig的service 字段长度不匹配
-* update 优化 操作日志密码脱敏
-* update 优化 补全缺失的接口 更改更新日志链接
-* update 优化 插入 SysOperLog 时, 限制 operUrl 属性的长度
-* update 优化 satoken 鉴权拦截器 优化多次校验
-
-### 新功能
-
-* add 增加 项目中使用到的请求头放行跨域
-* add 新增 获取oss对象元数据方法
-* add 新增 字典管理操作类型 其他
-
-### 问题修复
-
-* fix 修复 个人中心卡死或鼠标点击和键盘输入无效
-* fix 修复 BaseMapperPlus 方法命令不一致问题
-* fix 修复 图片预览组件src属性为null值控制台报错问
-* fix 修复 短信功能是否启用判断不生效
-* fix 修复 web模块 不引入nacos依赖报错问题
-* fix 修复 sentinel 构建无法读取webapp目录问题
-* fix 修复 菜单管理遗漏的prop属性
-* fix 修复 minio配置https遇到的问题
-* fix 修复 点击删除后点击取消控制台报错问题
-* fix 修复 文件/图片上传组件 第一次上传报错导致后续上传无限loading问题
-* fix 修复 ruoyi-auth 服务与 elasticsearch 端口号冲突问题
-* fix 修复 ruoyi-resource 服务与 elasticsearch 端口号冲突问题
-* fix 修复 角色部门状态字典错误 与 菜单注释错误
-* fix 修复 hutool 存在多版本问题
-* fix 修复 openapi结构体 因springdoc缓存导致多次拼接接口路径问题
-* fix 修复 oss配置删除内部数据id匹配类型问题
-* fix 修复 没有权限的用户编辑部门缺少数据
-* fix 修复 用户导入存在则更新不生效
-* fix 修复 日志转换非json数据导致报错
-* fix 修复 p6spy输出sql语句时间格式化不正确问题
-* fix 修复 不同网段因reset请求头导致下载导出跨域问题
-* fix 修复 在线用户设置永不过期 超时时间-1推送redis无效问题
-* fix 修复 snakeyaml 1.31 依旧存在漏洞 升级 1.32
-
-## v1.2.0 - 2022-08-09
-
-### 重大更新
-
-* [重大更新] 新增 ruoyi-common-elasticsearch 模块 集成 easy-es 傻瓜式操作搜索引擎
-* [重大更新] 新增 ruoyi-common-doc 整合 springdoc 基于 javadoc 实现无注解零入侵生成接口文档
-* [不兼容更新] 移除 swagger 所属 ruoyi-doc ruoyi-common-swagger 两个模块 建议使用 ruoyi-common-doc 模块
-
-### 依赖升级
-
-* update springboot 2.6.9 => 2.7.2 重构使用最新自动配置方式
-* update springboot-admin 2.6.7 => 2.7.3
-* update dubbo 3.0.9 => 3.0.10
-* update redisson 3.17.4 => 3.17.5
-* update hutool 5.8.3 => 5.8.5
-* update okhttp 4.9.1 => 4.10.0
-* update aws-java-sdk-s3 1.12.248 => 1.12.264 修复依赖安全漏洞
-* update aliyun.sms 2.0.9 => 2.0.16
-* update tencent.sms 3.1.537 => 3.1.555
-* update guava 30.0-jre => 31.1-jre
-
-### 功能更新
-
-* update 修改 资源服务 不提供默认短信 sdk 依赖
-* update 优化表格上右侧工具条(搜索按钮显隐&右侧样式凸出)
-* update 优化 前后端多环境部署保持一致 删除无用环境文件
-* update 优化 错误登录锁定与新增解锁功能
-* update 优化字典数据使用store存取
-* update 优化布局设置使用el-drawer抽屉显示
-* update 更新框架文档 专栏与视频 链接地址
-* update 优化 对象上传 主动设置文件公共读 解决天翼云OSS文件私有问题
-* update 优化 网关验证码过滤器 路径匹配改为严格匹配
-* update 优化 数据导致权限生成 SQL 重复问题
-
-### 新功能
-
-* add 增加 全局跨域过滤器 处理跨域请求 适配移动端访问
-* add 增加 搜索引擎 crud 演示案例
-
-### 问题修复
-
-* fix 防止date-picker组件报错,降级element-ui版本
-* fix 修复 RedisUtils 并发 set ttl 错误问题
-* fix 防止vue3主键字段名与row或ids一致导致报错的问题
-* fix 修复 幂等组件 逻辑问题导致线程变量未清除
-* fix 修复 图片回显查询 路径错误问题
-* fix 修复 脱敏没有实现类导致返回数据异常问题
-* fix 修复 xxljob 错误导入配置文件引发的问题
-* fix 修复 gateway模块 dockerfile 端口编写错误
-* fix 修复用户导出字典使用错误
-* fix 修复 demo 模块 远程调用失败问题
-* fix 修复 sentinel 控制台未适配 springboot 2.6 新路由策略导致无法登录问题
-
-## v1.1.0 - 2022-07-18
-
-### 重大更新
-
-* [重大更新] 新增 ELK 分布式日志中心整合
-* [重大更新] 新增 ruoyi-stream-mq 演示模块 完成 RabbitMQ RocketMQ Kafka 整合
-* [重大更新] 优化 docker 部署方式 使用 host 模式简化部署流程 降低使用成本
-* [重大更新] 调整 dubbo 服务注册命名空间与 cloud 服务保持一致 通过注册组区分访问服务
-* [安全性] 优化 nginx 限制外网访问内网 actuator 相关路径 建议升级
-
-### 依赖升级
-
-* update springboot 2.6.8 => 2.6.9
-* update easyexcel 3.1.0 => 3.1.1
-* update hutool 5.8.2 => 5.8.3
-* update redisson 3.17.2 => 3.17.4
-* update aws-java-sdk-s3 1.12.215 => 1.12.248
-* update tencentcloud-sdk-java 3.1.500 => 3.1.537
-* update dubbo 3.0.8 => 3.0.9
-* update seata 1.5.1 => 1.5.2
-
-### 功能更新
-
-* update 增加 redisson key 前缀配置
-* update 优化 DateColumn 支持单模板多key场景
-* update 优化部署脚本 增加 elk kafka rabbitmq rocketmq 等配置
-* update 修改 oss 客户端自定义域名 统一使用https开关控制协议头
-* update 优化 使用 StreamUtils 简化业务流操纵
-* update 优化 ruoyi-demo 模块 去除用不上的 seata 依赖
-* update 优化 接口文档 接口地址与服务地址不匹配问题
-* update 优化字典数据回显样式下拉框显示值
-* update 默认不启用压缩文件缓存防止node_modules过大
-* update 优化登出方法
-
-### 新功能
-
-* add 增加 rocketmq docker编排
-* add 新增 rabbitmq docker编排 包含延迟插件
-* add 新增 kafka docker编排
-* add 增加 es ik 分词器插件集成
-* add 增加 StreamUtils 流工具 简化 stream 流操纵
-
-### 问题修复
-
-* fix 修复 获取 SensitiveService 空问题 增加空兼容
-* fix 修复 演示页面导出路径错误
-* fix 修复 minio 上传自定义域名回显路径错误问题
-* fix 修复 hutool 工具返回不可操纵类型 导致报错问题
-* fix 修复 远程调用短信功能返回实体 SysSms 序列化报错问题
-* fix 修复 复制过程错误 导致演示excel文件损坏问题
-* fix 修复 dubbo 注册组不生效问题 通过覆盖源码方式
-* fix 修复代码生成首字母大写问题
-
-
-## v1.0.0 - 2022-06-20
-
-### 新增/优化 工程模块
-
-* add 新增 ruoyi-common-alibaba-bom 工程管理 alibaba 相关依赖
-* add 新增 ruoyi-common-bom 工程管理 ruoyi-common 相关依赖
-* add 新增 ruoyi-api-bom 工程管理 ruoyi-api 依赖项
-* add 新增 ruoyi-api-resource 模块 规范用法 移除 ruoyi-file 模块
-* add 新增 ruoyi-common-web 模块 使用 undertow 替换 tomcat
-* add 新增 ruoyi-common-dubbo 整合 dubbo 3.X 实现高性能 rpc 远程调用 替换 feign
-* add 新增 ruoyi-common-dict 实现字典多服务调用
-* add 新增 ruoyi-common-loadbalancer 自定义负载均衡模块 用于多团队开发
-* add 新增 ruoyi-common-excel 模块 集成 Alibaba EasyExcel 替换 自带excel实现
-* add 新增 ruoyi-common-oss 模块 支持 AWS S3 协议 分布式文件存储
-* add 新增 ruoyi-common-mail 邮件模块
-* add 新增 ruoyi-common-sms 短信模块 整合 阿里云、腾讯云 短信功能
-* add 新增 ruoyi-common-idempotent 分布式幂等模块
-* add 新增 ruoyi-common-satoken 整合 sa-token 重写所有权限
-* add 新增 ruoyi-xxl-job-admin 整合 xxljob 替换 quartz 支持分布式任务调度
-* add 新增 ruoyi-job 模块 统一远程处理任务 规范用法
-* add 新增 ruoyi-doc 模块 集成 Knife4j 替换 swagger
-* add 新增 ruoyi-seata-server 源码集成 Seata 1.5.X 服务端
-* add 新增 ruoyi-sentinel-dashboard 模块 源码集成 sentinel 控制台
-* update 抽取所有公用配置到 maven profile 管理
-
-### 代码依赖改动
-
-* update SpringCloud 2021.0.3
-* update 适配 SpringCloudAlibaba 2021.0.1.0 全新配置方式
-* update poi 4.1.2 => 5.2.2 性能大幅提升
-* update 重构 整合 jackson 替换 fastjson
-* update 重构 整合 redisson 客户端
-* update 重构 整合 mybatis-plus
-* update 重写 数据权限实现 基于 mybatis-plus
-* add 增加 lombok 优化原生代码
-* add 整合 hutool 优化相关代码
-* add 新增 国际化 功能
-* add 新增 lock4j 分布式锁
-* add 增加监控中心 在线日志监控 优化日志文件格式
-* add 适配 docker 部署方式
-
-### 后续/进行中计划
-
-* 增加 Vue3 前端工程
-* 应用模块 适配 Oracle、PostgreSQL、SQLServer
-* 增加 SpringCloud Stream 支持
-* 适配 Apache Kafka、Apache RocketMQ、RabbitMQ
-* 适配 ElasticSearch 分布式搜索引擎
-* 适配 Alibaba Canal 分布式数据同步中心
-* 适配 Apache SkyWalking 分布式链路追踪监控中心
-* 适配 ELK 分布式日志中心
-* 适配 Prometheus、Grafana 分布式全方位数据大屏监控

+ 0 - 37
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/elk.md

@@ -1,37 +0,0 @@
-# ELK搭建
-- - -
-# 环境搭建
-
-项目内置 `ELK` 的 `docker-compose` 编排 可查看 `/docker/docker-compose.yml` 文件下方扩展编排
-
-**注意: `/docker/elk/elasticsearch/` 目录下所有文件夹 均需要写权限**
-
-`chmod 777 /docker/elk/elasticsearch/data`<br>
-`chmod 777 /docker/elk/elasticsearch/logs`<br>
-`chmod 777 /docker/elk/elasticsearch/plugins`<br>
-**注意: es插件需要解压后放入 `plugins` 目录**
-
-# 运行命令
-
-```shell
-docker-compose up -d elasticsearch kibana logstash
-```
-
-# 参考文章
-[docker-compose 搭建 ELK 7.X 并整合 SpringBoot](https://lionli.blog.csdn.net/article/details/125743132)
-
-# 项目内配置
-
-服务引入依赖项
-
-```xml
-<!-- ELK 日志收集 -->
-<dependency>
-    <groupId>com.ruoyi</groupId>
-    <artifactId>ruoyi-common-logstash</artifactId>
-</dependency>
-```
-
-更改主 `pom` 文件 `logstash.address` 地址<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678981534923588112/ba6cb5b7_1766278.png "屏幕截图")

+ 0 - 26
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/es.md

@@ -1,26 +0,0 @@
-# ES搜索引擎
-- - -
-## 环境搭建(如果已经搭建了ELK则跳过)
-
-项目内置 `ELK` 的 `docker-compose` 编排 可查看 `/docker/docker-compose.yml` 文件下方扩展编排
-
-**注意: `/docker/elk/elasticsearch/` 目录下所有文件夹 均需要写权限**
-
-`chmod 777 /docker/elk/elasticsearch/data`<br>
-`chmod 777 /docker/elk/elasticsearch/logs`<br>
-`chmod 777 /docker/elk/elasticsearch/plugins`<br>
-**注意: es插件需要解压后放入 `plugins` 目录**
-
-## 运行命令
-
-```shell
-docker-compose up -d elasticsearch
-```
-
-## Easy-ES 文档
-[Easy-ES 文档](https://www.easy-es.cn/)
-
-## 用法
-
-基本配置和用法可参考 `ruoyi-demo` 模块 更多高级用法请参考 Easy-ES 文档<br>
-![输入图片说明](https://foruda.gitee.com/images/1660030085169129908/屏幕截图.png "屏幕截图.png")

+ 0 - 9
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/kafka.md

@@ -1,9 +0,0 @@
-# Kafka搭建
-- - -
-## 环境搭建
-参考文章: [docker-compose 安装 Kafka 3.X 附带可视化界面](https://lionli.blog.csdn.net/article/details/125855550)
-
-## 用法参考
-参考 `ruoyi-stream-mq` 模块内的测试案例
-
-![输入图片说明](https://foruda.gitee.com/images/1660031528265343174/屏幕截图.png "屏幕截图.png")

+ 0 - 20
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/maxkey.md

@@ -1,20 +0,0 @@
-# 对接 MaxKey 单点登录
-- - -
-
-# 安装 MaxKey 应用服务
-
-参考 MaxKey 官方文档安装 [MaxKey安装部署](http://www.maxkey.top/doc/docs/intro/)
-
-# 配置应用 OAuth2.0 认证注册
-
-![输入图片说明](https://foruda.gitee.com/images/1693377802128677240/0927270a_1766278.png "屏幕截图")
-
-# 配置后端服务
-
-找到 `Nacos` 内的 `ruoyi-auth.yml` 配置文件
-
-修改 `maxkey` 对应的 `client-id` 与 `client-secret`
-
-![输入图片说明](https://foruda.gitee.com/images/1693378118762354596/2f02c8a3_1766278.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1693378168538263792/24476d2a_1766278.png "屏幕截图")

+ 0 - 13
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/nacos.md

@@ -1,13 +0,0 @@
-# Nacos集群搭建
-- - -
-## 集群搭建两种方式
-### 文件寻址集群
-[【RuoYi-Cloud-Plus】学习笔记 02 - Nacos(二)寻址机制之文件寻址分析](https://blog.csdn.net/Michelle_Zhong/article/details/127423521)
-
-### 地址服务器寻址集群(推荐)
-[【RuoYi-Cloud-Plus】学习笔记 03 - Nacos(三)使用 Nginx 实现地址服务器寻址及其原理分析](https://blog.csdn.net/Michelle_Zhong/article/details/127474238)
-
-## 集群路由代理设置
-[【RuoYi-Cloud-Plus】学习笔记 04 - Nacos(四)使用 Nginx 简单实现 Nacos 集群负载均衡](https://blog.csdn.net/Michelle_Zhong/article/details/127486350)
-
-设置好代理之后 跟单机用法一致 后端nacos地址写代理 `ip:端口` 即可

+ 0 - 45
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/prometheus_grafana.md

@@ -1,45 +0,0 @@
-# Prometheus+Grafana搭建
-- - -
-## 基础搭建
-
-参考文章: https://lionli.blog.csdn.net/article/details/127959009
-
-## 框架内扩展
-
-框架已经包含了 docker-compose 编排 执行如下命令启动容器即可
-
-```shell
-docker-compose up -d prometheus grafana
-```
-
-## 应用配置
-
-各个服务引入 `ruoyi-common-prometheus` 模块
-
-![输入图片说明](https://foruda.gitee.com/images/1668998415863943539/413dc560_1766278.png "屏幕截图")
-
-修改 `prometheus.yml` 配置采集数据源
-
-![输入图片说明](https://foruda.gitee.com/images/1668998433756761442/bf31c212_1766278.png "屏幕截图")
-
-修改 `Nacos` 地址 与 `SpringBoot-Admin` 监控地址 用于数据采集<br>
-如都为本地应用则无需更改
-
-![输入图片说明](https://foruda.gitee.com/images/1668998317973042740/2d3590ec_1766278.png "屏幕截图")
-
-## 导入框架特制模板
-**注意: 此处数据源名称必须与图片保持一致 不然会和模板对应不上导致无法读取数据**<br>
-![输入图片说明](https://foruda.gitee.com/images/1669866309495145064/1de987ce_1766278.png "屏幕截图")
-
-> 找到框架内的特制模板json文件 在grafana点击上传json文件 导入模板<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1668998149634542527/f0881c8e_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1668998179391197847/b1d3a630_1766278.png "屏幕截图")
-
-## 选择查看监控
-
-点击右侧菜单浏览 选择想要查看的监控即可
-
-![输入图片说明](https://foruda.gitee.com/images/1668998515814170229/817ac8b0_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1668998567335384306/acdf2833_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1668998616894681785/ac27538b_1766278.png "屏幕截图")

+ 0 - 10
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rabbitmq.md

@@ -1,10 +0,0 @@
-# RabbitMQ搭建
-- - -
-## 环境搭建
-
-参考文章: [docker-compose 安装 RabbitMQ 3.X 附带延迟队列插件](https://lionli.blog.csdn.net/article/details/125855177)
-
-## 用法参考
-参考 `ruoyi-stream-mq` 模块内的测试案例
-
-![输入图片说明](https://foruda.gitee.com/images/1660031371503504748/屏幕截图.png "屏幕截图.png")

+ 0 - 9
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rocketmq.md

@@ -1,9 +0,0 @@
-# RocketMQ搭建
-- - -
-## 环境搭建
-参考文章: [docker-compose 安装 RocketMQ 4.9.X (apache官方镜像) namesrv broker 与可视化控制台 console](https://lionli.blog.csdn.net/article/details/125798865)
-
-## 用法参考
-参考 `ruoyi-stream-mq` 模块内的测试案例
-
-![输入图片说明](https://foruda.gitee.com/images/1660031496623275622/屏幕截图.png "屏幕截图.png")

+ 0 - 75
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/shardingproxy.md

@@ -1,75 +0,0 @@
-# Sharding-Proxy搭建分库分表
-- - -
-
-# 如何使用
-
-查看 `ruoyi-demo` 服务 `TestShardingController`
-
-![输入图片说明](https://foruda.gitee.com/images/1688014028842337522/cd26026a_1766278.png "屏幕截图")
-
-## 首先在 MySQL 创建两个库
-
-创建两个库 `data-center_0` `data-center_1` 分别执行如下SQL
-
-```sql
-CREATE TABLE `t_order_0` (
-  `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID',
-  `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID',
-  `total_money` int(10) UNSIGNED NOT NULL COMMENT '订单总金额',
-  PRIMARY KEY (`order_id`),
-  KEY `idx_user_id` (`user_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单总表';
- 
-CREATE TABLE `t_order_1` (
-  `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID',
-  `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID',
-  `total_money` int(10) UNSIGNED NOT NULL COMMENT '订单总金额',
-  PRIMARY KEY (`order_id`),
-  KEY `idx_user_id` (`user_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单总表';
- 
-CREATE TABLE `t_order_item_0` (
-  `order_item_id` bigint(20) UNSIGNED NOT NULL COMMENT '子订单ID',
-  `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID',
-  `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID',
-  `money` int(10) UNSIGNED NOT NULL COMMENT '子订单金额',
-  PRIMARY KEY (`order_item_id`),
-  KEY `idx_order_id` (`order_id`) USING BTREE,
-  KEY `idx_user_id` (`user_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单子表';
- 
-CREATE TABLE `t_order_item_1` (
-  `order_item_id` bigint(20) UNSIGNED NOT NULL COMMENT '子订单ID',
-  `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID',
-  `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID',
-  `money` int(10) UNSIGNED NOT NULL COMMENT '子订单金额',
-  PRIMARY KEY (`order_item_id`),
-  KEY `idx_order_id` (`order_id`) USING BTREE,
-  KEY `idx_user_id` (`user_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单子表';
- 
-```
-
-## 然后更改配置文件
-
-更改 `config-sharding.yaml` 配置文件内的数据库连接地址与用户名密码
-
-## 服务搭建
-
-参考部署文档上传 docker 文件夹 内部包含 `shardingproxy` 配置文件
-
-![输入图片说明](https://foruda.gitee.com/images/1688013921062151295/89652dda_1766278.png "屏幕截图")
-
-框架已经包含了 docker-compose 编排 执行如下命令启动容器即可
-
-```shell
-docker-compose up -d shardingproxy
-```
-
-## 最后运行 demo
-
-运行 demo 提供的 controller 代码查看数据库内数据即可
-
-## 用法参考视频(略有不同 理性观看)
-
-用法参考视频: https://www.bilibili.com/video/BV1XN411A7Tv/

+ 0 - 41
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/skywalking.md

@@ -1,41 +0,0 @@
-# SkyWalking搭建与集成
-- - -
-## 服务搭建
-参考文章: [SpringBoot 整合 SkyWalking 8.X (包含 Logback 日志采集)](https://lionli.blog.csdn.net/article/details/127656534)
-
-框架已经包含了 docker-compose 编排 执行如下命令启动容器即可
-
-```shell
-docker-compose up -d elasticsearch sky-oap sky-ui
-```
-
-### 本地开发使用
-参考上方文章
-
-### docker部署使用
-上传探针到服务器 `/docker/skywalking/agent` 目录<br>
-**不要使用网上下载的 请使用框架自带的 内含一些官网没有的插件**<br>
-![输入图片说明](https://foruda.gitee.com/images/1667453098143152651/f1b4f492_1766278.png "屏幕截图")
-
-在对应服务的`dockerfile`内 打开 `skywalking` 相关参数注释<br>
-![输入图片说明](https://foruda.gitee.com/images/1667452514896786032/f4322fb9_1766278.png "屏幕截图")
-
-服务编排增加探针路径映射<br>
-![输入图片说明](https://foruda.gitee.com/images/1667453276389844864/7e139aa9_1766278.png "屏幕截图")
-
-
-### 对接日志推送(不推荐 建议使用ELK收集日志)
-
-框架已经封装好了对应的依赖和配置 在服务内添加如下依赖
-
-```xml
-<!-- skywalking 日志收集 -->
-<dependency>
-    <groupId>com.ruoyi</groupId>
-    <artifactId>ruoyi-common-skylog</artifactId>
-</dependency>
-```
-
-在 `logback.xml` 日志配置文件内引入 `skylog` 配置文件
-
-![输入图片说明](https://foruda.gitee.com/images/1667452697748002725/a18212cd_1766278.png "屏幕截图")

+ 0 - 3
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/architecture_diagram.md

@@ -1,3 +0,0 @@
-# 软件架构图
-- - -
-![输入图片说明](https://foruda.gitee.com/images/1722569321458793955/8672b1fc_1766278.png "屏幕截图")

+ 0 - 27
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/collaboration.md

@@ -1,27 +0,0 @@
-# 多团队开发
-- - -
-## 功能介绍
-
-> 多人员/团队开发往往会出现 调试程序 被负载均衡到别人那里 自己抓不到请求等问题<br>
-> 正确团队开发模式 `测试机一台` 公共服务都放到测试机上<br>
-> 本地开发人员 需启动 `ruoyi-gateway` 与 其他 调试的业务模块<br>
-> 将所有服务都统一指向同一个 Nacos 服务<br>
-> 前端连接本机 `ruoyi-gateway` 网关调试程序<br>
-
-框架提供了 `ruoyi-common-loadbalancer` 多团队 负载均衡模块 可以将网关的请求锁定到与网关相同的IP服务
-
-需要在 `ruoyi-gateway` `ruoyi-auth` `ruoyi-modules` 引入 `ruoyi-common-loadbalancer` 模块
-
-![输入图片说明](https://foruda.gitee.com/images/1678980590168990366/afa2fdf6_1766278.png "屏幕截图")
-
-启动前端访问本机 `ruoyi-gateway` 网关在请求转发 和 `dubbo` 进行 RPC 调用时<br>
-会获取与本机IP地址相同的服务优先调用(如未找到 会随机返回)
-
-# 重点说明
-
-请检查本机是否有虚机网卡IP 如有多网卡获取IP地址会不准确
-
-可使用如下代码检查本机IP是否正常
-```java
-InetAddress.getLocalHost().getHostAddress()
-```

+ 0 - 88
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/doc.md

@@ -1,88 +0,0 @@
-# 接口文档
-- - -
-## 版本 >= `1.2.0`
-## 说明
-由于 `springfox` 与 `knife4j` 均停止维护 bug众多<br>
-故从 `1.2.0` 开始 迁移到 `springdoc` 框架<br>
-基于 `javadoc` 无注解零入侵生成规范的 `openapi` 结构体<br>
-由于框架自带文档UI功能单一扩展性差 故移除自带UI 建议使用外置文档工具
-
-## 文档工具使用
-由于框架采用 `openapi` 行业规范 故市面上大部分的框架均支持 可自行选择<br>
-例如: `apifox` `apipost` `postman` `torna` `knife4j` 等 根据对应工具的文档接入即可
-
-## Swagger升级SpringDoc指南
-
-常见功能如下 其他功能自行挖掘<br>
-**注意: `javadoc` 只能替换基础功能 特殊功能还需要使用注解实现**
-
-| swagger                          | springdoc                       | javadoc            |
-|----------------------------------|---------------------------------|--------------------|
-| @Api(name = "xxx")               | @Tag(name = "xxx")              | java类注释第一行         |
-| @Api(description= "xxx")         | @Tag(description= "xxx")        | java类注释            |
-| @ApiOperation                    | @Operation                      | java方法注释           | 
-| @ApiIgnore                       | @Hidden                         | 无                  | 
-| @ApiParam                        | @Parameter                      | java方法@param参数注释   | 
-| @ApiImplicitParam                | @Parameter                      | java方法@param参数注释   | 
-| @ApiImplicitParams               | @Parameters                     | 多个@param参数注释       | 
-| @ApiModel                        | @Schema                         | java实体类注释          | 
-| @ApiModelProperty                | @Schema                         | java属性注释           | 
-| @ApiModelProperty(hidden = true) | @Schema(accessMode = READ_ONLY) | 无                  | 
-| @ApiResponse                     | @ApiResponse                    | java方法@return返回值注释 | 
-
-# 建议使用 `Apifox`(常见问题有其他对接方式)
-
-官网连接: [https://www.apifox.cn/](https://www.apifox.cn/)<br>
-视频教程: [springdoc与apifox配合使用](https://www.bilibili.com/video/BV1mr4y1j75M?p=8&vd_source=8f52c77be3233dbdd1c5e332d4d45bfb)
-
-![输入图片说明](https://foruda.gitee.com/images/1678976476639902970/f1617b40_1766278.png "屏幕截图")
-
-支持 文档编写 接口调试 Mock 接口压测 自动化测试 等一系列功能
-
-### 接入框架
-
-> 1.下载或使用web在线版 创建一个自己的项目<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976502850663851/7bbd8728_1766278.png "屏幕截图")
-
-> 2.进入项目 选择项目设置 找到自动同步<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976508918240326/6a4a61a8_1766278.png "屏幕截图")
-
-> 3.根据项目内所有文档组完成所有数据源创建(拉取后端`openapi`结构体)<br>
-数据源URL格式 `http://网关ip:端口/服务路径/v3/api-docs`<br>
-项目内所需:<br>
-`http://localhost:8080/demo/v3/api-docs` 演示服务<br>
-`http://localhost:8080/auth/v3/api-docs` 认证服务<br>
-`http://localhost:8080/resource/v3/api-docs` 资源服务<br>
-`http://localhost:8080/system/v3/api-docs` 系统服务<br>
-`http://localhost:8080/code/v3/api-docs` 代码生成服务<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678980352012289965/24e0e4da_1766278.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1678980368645148754/62308680_1766278.png "屏幕截图")
-
-> 4.选择 接口管理 项目概览 点击立即导入 并等待导入完成<br>
-后续会根据策略每3个小时自动导入一次<br>
-每次重新进入apifox也会自动同步一次<br>
-后端有改动也可以手动点击导入<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678980393851604773/a0c657d3_1766278.png "屏幕截图")
-
-> 5.(注意版本号)设置鉴权 选择接口管理 项目概览 找到Auth 按照如下配置<br>
-
-**版本号: >= 2.X**
-
-![输入图片说明](https://foruda.gitee.com/images/1690966897370710566/6a688aea_1766278.png "屏幕截图")
-
-**版本号: 1.X**
-
-![输入图片说明](https://foruda.gitee.com/images/1678980398409729963/db4502a0_1766278.png "屏幕截图")
-
-> key对应项目配置 默认为 `Authorization`<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976544342001474/c2ff85d3_1766278.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1678976549237304743/bcdfadda_1766278.png "屏幕截图")
-
-

+ 0 - 31
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/i18n.md

@@ -1,31 +0,0 @@
-# 国际化方案
-- - -
-* 前端国际化参考 [ruoyi前端国际化文档](http://doc.ruoyi.vip/ruoyi-vue/document/htsc.html#前端国际化流程)<br>
-* 参考 `demo` 模块 `TestI18nController` 国际化演示案例
-  在 `Header` 请求头 增加上下文语言参数 `content-language` 参数需与国际化配置文件后缀对应
-  如 `zh_CN` `en_US` 等<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976722892396585/60917594_1766278.png "屏幕截图")
-
-## 获取 `code` 对应国际化内容
-
-![输入图片说明](https://foruda.gitee.com/images/1678976728533100954/0ab8e36a_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678976733019209506/a16574d6_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678976738409745057/a073b425_1766278.png "屏幕截图")
-
-## 使用 `Validator` 框架校验 `controller` 参数返回国际化
-
-`controller` 校验接口参数 需要在类增加 `@Validated` 注解<br>
-![输入图片说明](https://foruda.gitee.com/images/1678976741834729507/6c19b9cc_1766278.png "屏幕截图")<br>
-参数对应校验注解 使用 `{code}` 形式标注使用国际化处理<br>
-![输入图片说明](https://foruda.gitee.com/images/1678976746093285542/ad0989db_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678976750822808564/56bd60d7_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678976754755107198/b89bf173_1766278.png "屏幕截图")
-
-## 使用 `Validator` 框架校验 `Bean` 返回国际化
-
-`Bean` 校验需要在接口校验 `Bean` 参数使用 `@Validated` 注解<br>
-![输入图片说明](https://foruda.gitee.com/images/1678976761015767874/729da3bc_1766278.png "屏幕截图")<br>
-`Bean` 内属性校验注解 使用 `{code}` 形式标注使用国际化处理<br>
-![输入图片说明](https://foruda.gitee.com/images/1678976765122587920/0b1027af_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678976769965314387/0c416ede_1766278.png "屏幕截图")

+ 0 - 19
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/inner_authentication.md

@@ -1,19 +0,0 @@
-# 内网鉴权
-- - -
-## 功能介绍
-
-此功能用于防止外部请求访问内部服务应用<br>
-在请求经过 `gateway网关` 会生成一个 `id-token` 携带到后续服务进行校验<br>
-若未经过 `gateway网关` 调用内网服务 会出现 `id-token无效` 异常<br>
-有效防止非法请求直接访问内网服务<br>
-
-## 开启/关闭内网鉴权
-
-更改 `application-common.yml` 配置文件的 `sa-token.check-id-token` 配置即可
-
-![输入图片说明](https://foruda.gitee.com/images/1678980608778275681/9a2c1054_1766278.png "屏幕截图")
-
-## 放行内网鉴权
-进入 `ruoyi-common-security` 模块找到 `SecurityConfiguration` 类 增加排除路径即可
-
-![输入图片说明](https://foruda.gitee.com/images/1678980612657326393/cea32a8c_1766278.png "屏幕截图")

+ 0 - 39
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/new_module.md

@@ -1,39 +0,0 @@
-# 创建新服务
-- - -
-### 最简单的方式
-> 找个配置好的 例如 `ruoyi-system` 直接copy一份
-
-> 将 `pom` 名称改掉<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678980168782983123/c717e9ba_1766278.png "屏幕截图")
-
-> 服务启动类 名称改掉<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678980179829877203/f89d5c18_1766278.png "屏幕截图")
-
-> `application.yml` 配置服务应用名 改掉<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678980184047648028/e4c6c6cc_1766278.png "屏幕截图")
-
-> `nacos` 新建一份新的 对应新模块名称的 配置文件<br>
-![输入图片说明](https://foruda.gitee.com/images/1678980188806372269/cfd9731a_1766278.png "屏幕截图")
-
-更改 `nacos` 上的 `ruoyi-gateway.yml` 增加新服务路由<br>
-新服务访问路径 `网关ip:端口/服务路径/controller路径/接口路径`<br>
-例子: `http://localhost:8080/system/user/list` <br>
-
-![输入图片说明](https://foruda.gitee.com/images/1666861595048863422/9e9755b3_1766278.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1666861629037264535/bdfd5484_1766278.png "屏幕截图")
-
-### 注意事项
-如果是两个不同包名的模块 需要修改如下配置
-
-![输入图片说明](https://foruda.gitee.com/images/1719813861680271619/82435586_1766278.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1692006501957936219/059f8526_1766278.png "屏幕截图")
-
-如果新服务需要使用 `seata` 分布式事务<br>
-需要在 `nacos` 上的 `seata-server.properties` 文件内增加服务组
-
-![输入图片说明](https://foruda.gitee.com/images/1692006825427360840/5b9e410c_1766278.png "屏幕截图")

+ 0 - 33
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_package_name.md

@@ -1,33 +0,0 @@
-# 关于修改包名
-- - -
-
-**注意: 老包名为 com.ruoyi**
-
-## 1.随便找个地方新建 org.dromara 包
-![输入图片说明](https://foruda.gitee.com/images/1708491220807198688/b95c0c34_1766278.png "屏幕截图")
-
-## 2.在包上右键选择 refactor -> rename 选择 All Directories
-![输入图片说明](https://foruda.gitee.com/images/1683276891079076405/79808b22_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1708491697128844860/1e87ad39_1766278.png "屏幕截图")
-
-**因为dromara组织下有很多依赖导致idea无法识别完整包名**
-<br>
-![输入图片说明](https://foruda.gitee.com/images/1708490576909691001/692e5b37_1766278.png "屏幕截图")
-
-**需要先将dromara修改为 例如: ruoyi 然后重复上述步骤 这样就可以整包修改了**
-<br>
-![输入图片说明](https://foruda.gitee.com/images/1708490906933084793/ff104cd7_1766278.png "屏幕截图")
-
-## 3.使用IDEA全局替换 org.dromara 替换为 com.xxx
-
-![输入图片说明](https://foruda.gitee.com/images/1708491055347995519/dedda0d1_1766278.png "屏幕截图")
-
-**注意: 由于dromara组织下项目很多 非本框架的依赖模块 请勿修改 例如上图中的 org.dromara.sms4j**
-
-## 4.如有需要 将所有模块名逐一修改即可
-
-## 5.修改完成后需查看所有common包下模块spi文件是否修改正确
-
-**老版本idea或者未按照教程修改包名可能导致文件丢包问题**
-
-![输入图片说明](https://foruda.gitee.com/images/1708491365841192006/8bc337c2_1766278.png "屏幕截图")

+ 0 - 25
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_url.md

@@ -1,25 +0,0 @@
-# 修改应用路径
-- - -
-# 修改访问后端接口路径
-
-更改 前端环境配置文件 `VITE_APP_BASE_API` 代理路径
-
-![输入图片说明](https://foruda.gitee.com/images/1661824572484410642/14265f05_1766278.png "屏幕截图") <br>
-
-![输入图片说明](https://foruda.gitee.com/images/1724317552931269967/f7515655_1766278.png "屏幕截图")
-
-`prod` 生产环境需修改 `nginx.conf` 后端代理路径(上述配置文件也要改)
-
-![输入图片说明](https://foruda.gitee.com/images/1678980501204821424/d3340308_1766278.png "屏幕截图")
-
-# 修改前端页面访问路径
-修改对应环境的 `.env.环境` 文件内的 `VITE_APP_CONTEXT_PATH` 应用访问路径即可
-
-![输入图片说明](https://foruda.gitee.com/images/1661824572484410642/14265f05_1766278.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1724317049535973756/0a2cc43b_1766278.png "屏幕截图")
-
-生产环境 `nginx.conf` 与之对应修改即可 <br>
-**注意: 文件真实目录为 `/usr/share/nginx/html/admin/index.html` 此功能一般为多项目部署需要 故会增加一层目录 如不需要可以自行修改** <br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976662194341301/2720b7e9_1766278.png "屏幕截图")

+ 0 - 85
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/client.md

@@ -1,85 +0,0 @@
-# 客户端管理功能
-- - -
-## 版本 >= 2.X
-
-## 客户端管理页面
-
-![输入图片说明](https://foruda.gitee.com/images/1690961819029076660/c44374ac_4959041.png "屏幕截图")
-
-### 客户端管理字段说明
-| 字段名称           | 取值说明                       | 注意事项                           |
-|----------------|----------------------------|--------------------------------|
-| 客户端id          | 由后端生成,用于前端登录校验以及接口数据加密     | 无法修改,不要删除默认数据,否则会报错            |
-| 客户端key         | 前端自定义                      | 无法修改,不要删除默认数据,否则会报错            |
-| 客户端秘钥          | 前端自定义                      | 无法修改,不要删除默认数据,否则会报错            |
-| 授权类型           | 密码认证、短信认证、邮件认证、小程序认证、第三方认证 | 根据授权类型判断当前客户端是否支持该登录方式         |
-| 设备类型           | PC端、APP端                   |                                |
-| Token活跃超时时间    | 自定义                        | 指定时间无操作则过期(单位:秒),默认30分钟(1800秒) |
-| Token固定超时时间    | 自定义                        | 指定时间必定过期(单位:秒),默认七天(604800秒)   |
-
-### 前后端使用新的客户端id
-
-步骤如下:
-1. 前端管理页面生成新的客户端id。
-2. 将新的客户端id复制到前端配置文件。
-
-![输入图片说明](https://foruda.gitee.com/images/1690962894318847386/133d2f90_4959041.png "屏幕截图")
-
-## 新增自定义客户端
-
-### 步骤一:新增客户端数据(例如增加小程序端)
-
-![输入图片说明](https://foruda.gitee.com/images/1690965463070099188/baeb4441_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1690965508836621042/df06248f_4959041.png "屏幕截图")
-
-### 步骤二:配置前端请求头信息
-
-需要在全局请求头 header 中增加 cientid <br>
-确保客户端所有请求都携带此id 可参考项目 `request.ts`
-
-![输入图片说明](https://foruda.gitee.com/images/1690965768235114596/980b88d2_4959041.png "屏幕截图")
-
-`VITE_APP_CLIENT_ID` 即配置文件中的客户端id。
-
-**重点:不同客户端登录获取到的token不同与其他端不互通(例如: app登录获取到的token无法用于pc端接口查询)**
-
-## 新增自定义登录方式授权类型
-
-**重点说明: 不要单独增加登录接口 系统全局统一只有一个登录接口 只需增加不同的鉴权方式即可**
-
-如何调试使用登录看这里 -> [关于登录调试步骤](/questions/login_step.md)
-
-### 步骤一:新增字典数据
-
-![输入图片说明](https://foruda.gitee.com/images/1690968849418013624/3b28417e_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1690968865819397010/64529fad_4959041.png "屏幕截图")
-
-### 步骤二:新增/修改客户端数据
-
-### 步骤三:后端新增认证策略
-
-新增策略实现类实现 `IAuthStrategy` 接口。<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1690972828588111954/7614a4c5_4959041.png "屏幕截图")
-
-参照已有策略实现类实现自定义参数校验登录方法逻辑。<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1718951146945578143/789c80e4_1766278.png "屏幕截图")
-
-**注意修改 `@Service` 名称保证规范性**
-
-![输入图片说明](https://foruda.gitee.com/images/1718951179571300385/8db730b9_1766278.png "屏幕截图")
-
-`LoginBody` 校验参数(可自定义)<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1718951237123374392/f7840db2_1766278.png "屏幕截图")
-
-例如 扩展小程序登录参数 只需要继承 `LoginBody <br>
-
-![输入图片说明](https://foruda.gitee.com/images/1718951283931895761/e6348be5_1766278.png "屏幕截图")`
-
-校验分组(可自定义)<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1718951343601334215/8ef404b4_1766278.png "屏幕截图")

+ 0 - 86
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/code_generate.md

@@ -1,86 +0,0 @@
-# 代码生成
-- - -
-## 功能介绍
-
-### 数据源配置
-
-![输入图片说明](https://foruda.gitee.com/images/1678976867341325193/a2be0608_1766278.png "屏幕截图")
-
-<font size="4">**项目适配多种类型数据库 可以在代码生成页面切换**</font><br>
-
-> 填写对应的数据源名称 点击搜索按钮 即可切换到对应的数据源<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976876081856486/4ef4841c_1766278.png "屏幕截图")
-
-<font size="4">**>= 2.2.1版本 项目支持100+种数据库适配 在代码生成模块增加对应的数据库依赖即可**</font><br>
-
-![输入图片说明](https://foruda.gitee.com/images/1722396530340741054/3914eb72_1766278.png "屏幕截图")
-
-
-### 导入数据表
-
-> 点击导入按钮 会加载系统数据库所有的表<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976880393939803/3ecf1dcc_1766278.png "屏幕截图")
-
-> 选择需要的表 点击确定即可<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976885370716109/4834faa5_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678976891856866728/853420d9_1766278.png "屏幕截图")
-
-### 编辑表生成结构
-
-> 点击表对应的编辑按钮<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976899111822310/aeaa33f9_1766278.png "屏幕截图")
-
-> 更改要生成表的数据<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976903345795925/4326f6ee_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678976908897387614/4cdf939b_1766278.png "屏幕截图")
-
-### 生成条件影响
-
-![输入图片说明](https://foruda.gitee.com/images/1678976913809284051/24da09b0_1766278.png "屏幕截图")
-
-
-* `插入` `编辑` 影响生成 BO 类 与 前端添加编辑页面 是否有该字段
-* `列表` 影响生成 VO 类 与 前端列表页面展示 是否有该字段
-* `查询` 影响 前端页面是否有该字段的搜索框 与 后端代码是否生成对应的查询条件
-* `查询方式` 影响生成查询条件的类型
-* `必填` 影响 BO 类 与 页面是否强制校验
-* `显示类型` 影响生成页面使用何种展示组件
-* `字典类型` 影响页面是否生成与字典的关联
-
-### 树表配置
-
-> 编辑表生成信息 生成模板为 `树表` 填写对应数据即可<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976917918548901/f5886c5c_1766278.png "屏幕截图")
-
-### 主子表说明
-
-框架不支持也不推荐使用主子表<br>
-原因一般业务场景 基本都是一对N表 多表关联场景<br>
-还有一些 主 => 子 <= 主 场景 需求很复杂 很少有单纯主子表场景出现<br>
-另外主子表关联 很容易出现 笛卡尔积 或者数据错乱等问题 需要自行sql调优场景<br>
-所以建议大家都按照 单表生成 自行编写业务逻辑
-
-### 预览功能
-
-> 配置好生成信息后 可以点击预览按钮<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976924411765532/2e9747df_1766278.png "屏幕截图")
-
-> 系统会根据已经配置好的数据 生成对应的代码预览<br>
-> 可以再此处观察代码的生成结构和数据是否正确等<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976945982406065/ca7383bb_1766278.png "屏幕截图")
-
-
-### 代码结构同步
-
-> 实际开发中 难免会有表结构更改的需求<br>
-> 这时可以使用 同步功能 点击同步按钮 即可与实时数据库表进行字段同步<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678976952919156537/3c47c078_1766278.png "屏幕截图")

+ 0 - 250
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/export.md

@@ -1,250 +0,0 @@
-# 导出功能
-
-- - -
-
-在本框架中引入了 `Easy Excel` 依赖(对 `Apache POI`进行了封装以及扩展),可以对数据进行导出操作(即写 Excel)。
-
-[EasyExcel 文档地址](https://easyexcel.opensource.alibaba.com/)
-
-## 导出功能使用流程说明
-
-### 步骤一:定义导出实体对象
-
-以框架中 `SysUserExportVo` 为例:
-
-```Java
-    /**
-     * 用户ID
-     */
-    @ExcelProperty(value = "用户序号")
-    private Long userId;
-
-    // .......................
-
-    /**
-     * 用户性别
-     */
-    @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_user_sex")
-    private String sex;
-
-    /**
-     * 帐号状态(0正常 1停用)
-     */
-    @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_normal_disable")
-    private String status;
-```
-
-> 说明:<br>
-> 1. 使用 `@ExcelProperty` 注解标注需要导出的属性。
-> 2. 注解 `@ExcelProperty` 中 `value` 属性代表表格头部标题字段,`converter` 代表使用的转换器,后面会详细说明。
-> 3. 注解 `@ExcelDictFormat` 为自定义注解,与自定义转换器结合使用,同样在后面进行详细说明。
-
-### 步骤二:使用导出方法
-
-以框架中 `SysUserController#export` 方法为例:
-
-```Java
-    /**
-     * 导出用户列表
-     */
-    @PostMapping("/export")
-    public void export(SysUserBo user, HttpServletResponse response) {
-        // 根据参数查询导出的用户列表数据
-        List<SysUserVo> list = userService.selectUserList(user);
-        // 将列表转换为导出对象列表
-        List<SysUserExportVo> listVo = MapstructUtils.convert(list, SysUserExportVo.class);
-        // 导出方法
-        ExcelUtil.exportExcel(listVo, "用户数据", SysUserExportVo.class, response);
-    }
-```
-
-> 说明:<br>
-> 使用 `ExcelUtil.exportExcel` 方法完成导出功能,上述 Demo 传入参数分别是:导出对象集合,Excel sheet 表名称,导出对象类型,response。
-
-## 框架工具使用说明
-
-### 1:字典转换器
-
-字典转换器 `ExcelDictConvert` 与自定义注解 `@ExcelDictFormat` 结合使用,标注在需要转换的属性上。
-
-使用方式一:
-
-```Java
-    /**
-     * 用户性别
-     */
-    @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_user_sex")
-    private String sex;
-```
-
-使用方式二:
-
-```Java
-    /**
-     * 用户性别
-     */
-    @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp="0=男,1=女,2=未知", separator=",")
-    private String sex;
-```
-
-`@ExcelDictFormat` 注解属性说明:
-
-| 属性名称             | 属性类型   | 默认值 | 说明                                |
-|------------------|--------|-----|-----------------------------------|
-| dictType         | String | ""  | 字典的type值 (如: sys_user_sex)        |
-| readConverterExp | String | ""  | 读取内容转表达式 (如: 0=男,1=女,2=未知)        |
-| separator        | String | "," | 与 readConverterExp 属性结合使用,表达式的分隔符 |
-
-### 2:枚举转换器
-
-字典转换器 `ExcelEnumConvert` 与自定义注解 `@ExcelEnumFormat` 结合使用,标注在需要转换的属性上。
-
-使用方式:
-
-```Java
-    /**
-     * 用户类型
-     * </p>
-     * 使用ExcelEnumFormat注解需要进行下拉选的部分
-     */
-    @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class)
-    @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info")
-    private String userStatus;
-```
-
-`@ExcelEnumFormat` 注解属性说明:
-
-| 属性名称      | 属性类型       | 默认值  | 说明                           |
-|-----------|------------|------|------------------------------|
-| enumClass | Enum Class | -    | 字典枚举类型                       |
-| codeField | String     | code | 字典枚举类中对应的 code 属性名称,默认为 code |
-| textField | String     | text | 字典枚举类中对应的 text 属性名称,默认为 text |
-
-### 3:合并单元格
-
-`@CellMerge` 注解用于合并相同的列数据,需要结合 `CellMergeStrategy` 策略使用,标注在需要转换的属性上。
-
-使用方式:
-
-步骤一:在属性标注 `@CellMerge` 注解:
-```Java
-    /**
-     * 部门id
-     */
-    @CellMerge
-    @ExcelProperty(value = "部门id")
-    private Long deptId;
-```
-
-`@CellMerge` 注解属性说明:
-
-| 属性名称    | 属性类型     | 默认值 | 说明                           |
-|---------|----------|-----|------------------------------|
-| index   | int      | -1  | 合并列的下标,建议使用默认值               |
-| mergeBy | String[] | {}  | 合并需要依赖的其他字段名称(基于这个字段内容做合并条件) |
-
-
-步骤二:导出方法开启合并:
-```Java
-    /**
-     * 导出测试单表列表
-     */
-    @PostMapping("/export")
-    public void export(@Validated TestDemoBo bo, HttpServletResponse response) {
-        List<TestDemoVo> list = testDemoService.queryList(bo);
-        // 参数 true 表示开启合并单元格策略
-        ExcelUtil.exportExcel(list, "测试单表", TestDemoVo.class, true, response);
-    } 
-```
-![输入图片说明](https://foruda.gitee.com/images/1700128921644543994/e8d4704f_1766278.png "屏幕截图")
-
-### 4:复杂 Excel 导出示例
-`TestExcelController` 提供了几种导出示例,如果需要可以参照相应方法进行导出。
-
-#### 4.1:单列表多数据导出(模板导出)
-
-模板内容:
-
-![输入图片说明](https://foruda.gitee.com/images/1700124852002972562/d9f57a8c_4959041.png "屏幕截图")
-
-模板位置:`ruoyi-example/ruoyi-demo/src/main/resources/excel/`
-
-导出示例代码:参考 demo 模块 `TestExcelController` 模板写法请查看 `EasyExcel` 文档
-
-导出结果:
-
-![输入图片说明](https://foruda.gitee.com/images/1700124885532359879/0d011d05_4959041.png "屏幕截图")
-
-#### 4.2:多列表多数据导出(模板导出)
-
-模板内容:
-
-![输入图片说明](https://foruda.gitee.com/images/1700125025931981176/105dbaaa_4959041.png "屏幕截图")
-
-模板位置:`ruoyi-example/ruoyi-demo/src/main/resources/excel/`
-
-导出示例代码:参考 demo 模块 `TestExcelController` 模板写法请查看 `EasyExcel` 文档
-
-导出结果:
-
-![输入图片说明](https://foruda.gitee.com/images/1700125054011300002/71869c1d_4959041.png "屏幕截图")
-
-#### 4.3:导出下拉框
-
-`ExcelDictFormat` 注解指定的字典项默认都会转换成下拉框
-
-自定义导出省市区下拉框示例代码:参考 demo 模块 `TestExcelController`
-
-导出结果:
-
-![输入图片说明](https://foruda.gitee.com/images/1700125265411678973/7f767719_4959041.png "屏幕截图")
-
-## Easy Excel 常用注解
-
-`Easy Excel` 提供了丰富的注解可以对导出对象进行定制化操作,这里的注解说明针对的是原生注解,自定义注解会结合转换器一起进行说明。
-
-| 类型    | 注解名称                    | 使用举例                                                                                                       | 说明                                                                                                       |
-|-------|-------------------------|------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
-| 格式化注解 | @DateTimeFormat         | @DateTimeFormat(value=格式化值)                                                                                | 对字符串进行日期格式化 (参照 `java.text.SimpleDateFormat` 书写即可)                                                       |
-| 格式化注解 | @NumberFormat           | @NumberFormat(value=格式化值, roundingMode=舍入模式)                                                               | 对字符串进行数值格式化 (参照 `java.text.DecimalFormat` 书写即可, `roundingMode` 默认 `RoundingMode.HALF_UP`)                |
-| 样式注解  | @ColumnWidth            | @ColumnWidth(value=值)                                                                                      | 设置列宽                                                                                                     |
-| 样式注解  | @ContentFontStyle       | @ContentFontStyle(color=颜色)                                                                                | 可以设置字体类型,颜色,粗细,是否斜体,下划线等,具体可查看注解 `@ContentFontStyle`                                                     |
-| 样式注解  | @ContentLoopMerge       | @ContentLoopMerge(eachRow=行值, columnExtend=列值)                                                             | 设置循环合并的区域                                                                                                |
-| 样式注解  | @ContentRowHeight       | @ContentRowHeight(value=值)                                                                                 | 设置内容行高                                                                                                   |
-| 样式注解  | @ContentStyle           | -                                                                                                          | 设置单元格样式,具体可查看注解 `@ContentStyle`                                                                          |
-| 样式注解  | @HeadFontStyle          | @HeadFontStyle(color=颜色)                                                                                   | 设置表头字体格式,类似 `@ContentFontStyle`,具体可查看注解 `@HeadFontStyle`                                                 |
-| 样式注解  | @HeadRowHeight          | @HeadRowHeight(value=值)                                                                                    | 设置表头行高                                                                                                   |
-| 样式注解  | @HeadStyle              | -                                                                                                          | 设置表头样式,具体可查看注解 `@HeadStyle`                                                                              |
-| 样式注解  | @OnceAbsoluteMerge      | @OnceAbsoluteMerge(firstRowIndex=开始行下标, lastRowIndex=结束行下标, firstColumnIndex=开始列下标, lastColumnIndex=结束列下标) | 根据设置值合并单元格                                                                                               |
-| 属性注解  | @ExcelIgnore            | @ExcelIgnore                                                                                               | 导出忽略该字段                                                                                                  |
-| 属性注解  | @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated                                                                                    | 默认不管加不加 `@ExcelProperty` 的注解的所有字段都会参与读写,加了 `@ExcelIgnoreUnannotated` 注解以后,不加 `@ExcelProperty` 注解的字段就不会参与 |
-| 属性注解  | @ExcelProperty          | @ExcelProperty(value=值, order=排序值, index=下标, converter=转换器)                                                | 默认按照对象属性顺序导出,如果设置了 `order` 以及 `index`,优先级 `index` > `order` > 默认;converter 可以自定义                         |
-
-## 扩展说明
-
-### 自定义转换器实现
-
-由于业务需要,原生注解不一定能够符合需要,因而衍生出了自定义转换器。能够实现定制化的内容转换需要。
-以下以框架中的字典转换器 `ExcelDictConvert` 为例进行说明。
-
-字典转换器 `ExcelDictConvert`,字典转换器使用了自定义注解 `@ExcelDictFormat` 配合使用。
-
-_**注:自定义转换器并非一定需要自定义注解,也可以针对已有的注解进行自定义转换实现。**_
-
-#### 实现方式
-
-自定义转换器需要实现 `com.alibaba.excel.converters.Converter` 接口,实现接口中的方法。
-
-![输入图片说明](https://foruda.gitee.com/images/1700104014304819918/33eb0c42_4959041.png "屏幕截图")
-
-转换方法 `ExcelDictConvert#convertToExcelData` :
-
-![输入图片说明](https://foruda.gitee.com/images/1700104426131801297/72931ef0_4959041.png "屏幕截图")
-
-## 更多功能
-
-更多导出功能使用可以参照 `Easy Excel` [官方文档](https://easyexcel.opensource.alibaba.com/docs/current/api/write)。

+ 0 - 202
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/import.md

@@ -1,202 +0,0 @@
-# 导入功能
-- - -
-
-在本框架中引入了 `Easy Excel` 依赖(对 `Apache POI`进行了封装以及扩展),可以对数据进行导入操作(即读 Excel)。
-
-## 导入功能使用流程说明
-
-### 步骤一:定义导入实体对象
-
-以框架中 `SysUserImportVo` 为例:
-
-```java
-    /**
-     * 用户ID
-     */
-    @ExcelProperty(value = "用户序号")
-    private Long userId;
-
-    // .......................
-    
-    /**
-     * 用户性别
-     */
-    @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_user_sex")
-    private String sex;
-
-    /**
-     * 帐号状态(0正常 1停用)
-     */
-    @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_normal_disable")
-    private String status;
-```
-
-> 说明:<br>
-> 1. 使用 `@ExcelProperty` 注解标注需要导入的属性。
-> 2. 注解 `@ExcelProperty` 中 `value` 属性代表表格头部标题字段,`converter` 代表使用的转换器,后面会详细说明。
-> 3. 注解 `@ExcelDictFormat` 为自定义注解,与自定义转换器结合使用,同样在后面进行详细说明。
-> 4. 对象禁止使用链式注解 `@Accessors(chain = true)`,会找不到set方法。
-
-### 步骤二:使用导入方法
-
-以框架中 `SysUserController#importData` 方法为例:
-
-```Java
-    /**
-     * 导入数据
-     *
-     * @param file          导入文件
-     * @param updateSupport 是否更新已存在数据
-     */
-    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
-    @SaCheckPermission("system:user:import")
-    @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
-    public R<Void> importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception {
-        // 导入方法
-        ExcelResult<SysUserImportVo> result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class, new SysUserImportListener(updateSupport));
-        return R.ok(result.getAnalysis());
-    }
-```
-> 说明:<br>
-> 使用 `ExcelUtil.importExcel` 方法完成导出功能,上述 Demo 传入参数分别是:导入文件流,导入对象类型,导入监听器 `SysUserImportListener`。
-
-## 框架工具使用说明
-
-### 1:字典转换器
-
-字典转换器 `ExcelDictConvert` 与自定义注解 `@ExcelDictFormat` 结合使用,标注在需要转换的属性上。
-
-使用方式一:
-
-```Java
-    /**
-     * 用户性别
-     */
-    @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_user_sex")
-    private String sex;
-```
-
-使用方式二:
-
-```Java
-    /**
-     * 用户性别
-     */
-    @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp="0=男,1=女,2=未知", separator=",")
-    private String sex;
-```
-
-`@ExcelDictFormat` 注解属性说明:
-
-| 属性名称             | 属性类型   | 默认值 | 说明                                |
-|------------------|--------|-----|-----------------------------------|
-| dictType         | String | ""  | 字典的type值 (如: sys_user_sex)        |
-| readConverterExp | String | ""  | 读取内容转表达式 (如: 0=男,1=女,2=未知)        |
-| separator        | String | "," | 与 readConverterExp 属性结合使用,表达式的分隔符 |
-
-### 2:枚举转换器
-
-字典转换器 `ExcelEnumConvert` 与自定义注解 `@ExcelEnumFormat` 结合使用,标注在需要转换的属性上。
-
-使用方式:
-
-```Java
-    /**
-     * 用户类型
-     * </p>
-     * 使用ExcelEnumFormat注解需要进行下拉选的部分
-     */
-    @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class)
-    @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info")
-    private String userStatus;
-```
-
-`@ExcelEnumFormat` 注解属性说明:
-
-| 属性名称      | 属性类型       | 默认值  | 说明                           |
-|-----------|------------|------|------------------------------|
-| enumClass | Enum Class | -    | 字典枚举类型                       |
-| codeField | String     | code | 字典枚举类中对应的 code 属性名称,默认为 code |
-| textField | String     | text | 字典枚举类中对应的 text 属性名称,默认为 text |
-
-
-### 3:导入监听器
-
-#### 3.1:ExcelListener 监听器接口
-
-`ExcelListener` 扩展了 `ReadListener` 接口,增加了获取结果方法。
-
-![输入图片说明](https://foruda.gitee.com/images/1700181723794469524/99bf83c9_4959041.png "屏幕截图")
-
-#### 3.2:DefaultExcelListener 默认监听器
-
-`DefaultExcelListener` 默认监听器在读 Excel 时调用,主要对数据进行校验、解析、异常处理、返回结果等。导入操作时如果没有特别指定则使用该监听器。
-
-#### 3.3:SysUserImportListener 用户导入监听器
-
-`SysUserImportListener` 用户导入监听器是在用户导入时调用的监听器。
-
-该监听器重写了 `invoke` 反射接口,对导入的用户数据进行了校验;重写了 `getExcelResult` 获取结果接口,返回结果数据。 
-
-#### 3.4:ExportDemoListener 带下拉框的导入监听器
-
-`ExportDemoListener` 是对带有下拉框的 Excel 进行处理的导入监听器。
-
-## Easy Excel 常用注解
-
-`Easy Excel` 提供了丰富的注解可以对导出对象进行定制化操作,这里的注解说明针对的是原生注解。
-
-| 类型    | 注解名称                    | 使用举例                                                                                                       | 说明                                                                                                       |
-|-------|-------------------------|------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
-| 格式化注解 | @DateTimeFormat         | @DateTimeFormat(value=格式化值)                                                                                | 对字符串进行日期格式化 (参照 `java.text.SimpleDateFormat` 书写即可)                                                       |
-| 格式化注解 | @NumberFormat           | @NumberFormat(value=格式化值, roundingMode=舍入模式)                                                               | 对字符串进行数值格式化 (参照 `java.text.DecimalFormat` 书写即可, `roundingMode` 默认 `RoundingMode.HALF_UP`)                |
-| 属性注解  | @ExcelIgnore            | @ExcelIgnore                                                                                               | 导出忽略该字段                                                                                                  |
-| 属性注解  | @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated                                                                                    | 默认不管加不加 `@ExcelProperty` 的注解的所有字段都会参与读写,加了 `@ExcelIgnoreUnannotated` 注解以后,不加 `@ExcelProperty` 注解的字段就不会参与 |
-| 属性注解  | @ExcelProperty          | @ExcelProperty(value=值, order=排序值, index=下标, converter=转换器)                                                | 默认按照对象属性顺序导出,如果设置了 `order` 以及 `index`,优先级 `index` > `order` > 默认;converter 可以自定义                         |
-
-## 扩展使用
-
-### 扩展一:自定义转换器实现
-
-由于业务需要,原生注解不一定能够符合需要,因而衍生出了自定义转换器。能够实现定制化的内容转换需要。
-以下以框架中的字典转换器 `ExcelDictConvert` 为例进行说明。
-
-字典转换器 `ExcelDictConvert`,字典转换器使用了自定义注解 `@ExcelDictFormat` 配合使用。
-
-_**注:自定义转换器并非一定需要自定义注解,也可以针对已有的注解进行自定义转换实现。**_
-
-#### 实现方式
-
-自定义转换器需要实现 `com.alibaba.excel.converters.Converter` 接口,实现接口中的方法。
-
-![输入图片说明](https://foruda.gitee.com/images/1700104014304819918/33eb0c42_4959041.png "屏幕截图")
-
-转换方法 `ExcelDictConvert#convertToJavaData` :
-
-![输入图片说明](https://foruda.gitee.com/images/1700182975516396213/d3c020f9_4959041.png "屏幕截图")
-
-### 扩展二:自定义监听器实现
-
-自定义监听器主要用于在读取解析 Excel 数据时进行自定义操作。
-以下以框架中的用户导入监听器 `SysUserImportListener` 为例进行说明。
-
-#### 实现方式
-1. 继承分析事件监听器 `AnalysisEventListener` 以及实现 Excel 监听器 `ExcelListener`。 
-
-![输入图片说明](https://foruda.gitee.com/images/1700184652693497753/09333dac_4959041.png "屏幕截图")
-
-2. 显示使用构造函数,否则将导致空指针。
-
-![输入图片说明](https://foruda.gitee.com/images/1700184759075616584/cf05b0ed_4959041.png "屏幕截图")
-
-3. 实现 `invoke` 方法,对数据进行解析操作,可以在此方法对数据进行合法性判断。
-
-4. 实现 `getExcelResult` 方法,对结果进行操作,例如返回成功、失败的统计数据。
-
-## 更多功能
-
-更多导入功能使用可以参照 `Easy Excel` [官方文档](https://easyexcel.opensource.alibaba.com/docs/current/quickstart/read)。

+ 0 - 124
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/oss.md

@@ -1,124 +0,0 @@
-# 关于OSS模块使用
-- - -
-## 重点注意事项
-
-`桶/存储区域` 系统会根据配置自行创建分配权限<br>
-~~如手动配置需要设置 `公有读` 权限 否则文件无法访问~~(`aliyun` 还需开通跨域配置)<br>
-1.4.0 版本支持配置`公有/私有`权限(`aliyun` 还需开通跨域配置)<br>
-访问站点 后严禁携带其他 `url` 例如: `/`, `/ruoyi` 等<br>
-**阿里云与腾讯云SDK访问站点中不能包含桶名 系统会自动处理** <br>
-**minio 站点不允许使用 localhost 请使用 127.0.0.1** <br>
-**访问站点与自定义域名 都不要包含 `http` `https` 前缀 设置`https`请使用选项处理**
-
-## 代码使用
-
-> 参考 `SysOssService.upload` 用法 <br>
-> 使用 `OssFactory.instance()` 获取当前启用的 `OssClient` 实例<br>
-> 进行功能调用 获取返回值后 存储到对应的业务表
-
-![输入图片说明](https://foruda.gitee.com/images/1678978345529639839/d350ec0b_1766278.png "屏幕截图")
-
-
-## 功能配置
-
-### 配置OSS
-
-> 进入 `系统管理 -> 文件管理 -> 配置管理` 填写对应的OSS服务相关配置<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678978349820700551/1f91a237_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678978354387669856/3a91a3a9_1766278.png "屏幕截图")<br
-![输入图片说明](https://foruda.gitee.com/images/1678978358019307086/0c2523e4_1766278.png "屏幕截图")
-
-<font size="6">**重点说明**</font>
-
-> 云厂商只需修改 `访问站点`对应的域 切勿乱改(云厂商强烈建议绑定自定义域名使用 七牛云必须绑定[官方规定])<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678978362358100362/5c2c4d20_1766278.png "屏幕截图")
-
-> 七牛云 访问站点<br>
-
-
-![输入图片说明](https://foruda.gitee.com/images/1678978366254745764/e93a65ff_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678978369853348732/79e8950e_1766278.png "屏幕截图")
-
-> 阿里云 访问站点
-
-![输入图片说明](https://foruda.gitee.com/images/1678978373981462025/56a70398_1766278.png "屏幕截图")
-
-> 腾讯云 访问站点
-
-![输入图片说明](https://foruda.gitee.com/images/1678978378697093134/785517f3_1766278.png "屏幕截图")
-
-### MinIO 使用 https访问站点
-
-**注意:S3 API 签名计算算法不支持托管 MinIO Server API 的代理方案**
-
-[ minio https 配置方式](https://blog.csdn.net/Michelle_Zhong/article/details/126484358)
-
-### 切换OSS
-
-> 再配置列表点击 `状态` 按钮开启即可(注意: 只能开启一个OSS默认配置)<br>
-> 手动使用 `OssFactory.instance("configKey")` <br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678978383700118702/7f3fa0c5_1766278.png "屏幕截图")
-
-### 扩展分类
-
-> 如有文件分类 建议创建多个 oss配置 进行切换存储<br>
-
-例如: 创建一个 图片存储的 oss配置<br>
-指定唯一的 `configKey` 与 `前缀目录` 或 直接使用独立的`桶`<br>
-独立桶的特点 可以自定义访问权限<br>
-例如: 创建一个私有文件存储桶 不对外开放<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678978389139754119/140be1df_1766278.png "屏幕截图")
-
-> 指定需要使用的配置<br>
-> 使用 `OssFactory.instance("image")` 获取的 `OssClient` 会加载上图的配置 从而达到上传不同的目录或桶
-
-
-![输入图片说明](https://foruda.gitee.com/images/1678978397550123641/1b536881_1766278.png "屏幕截图")
-
-
-### 上传图片或文件
-
-> 进入 `系统管理 -> 文件管理` 点击 `上传文件` 或 `上传图片` 根据选项选择即可 会对应上传到配置开启的OSS内<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678978401028132972/445d058e_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678978404388284503/5459da29_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678978408761764835/c81651fc_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678978412748494539/7bae621f_1766278.png "屏幕截图")
-
-### 列表展示
-
-> 默认展示图片(可预览) 文件会展示路径<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678978416327601385/af1ecb3b_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678978422249633007/19d68eaa_1766278.png "屏幕截图")
-
-> 可以点击 `预览禁用启用` 按钮对是否展示进行更改
-
-![输入图片说明](https://foruda.gitee.com/images/1678978426017014926/4f7fa3f3_1766278.png "屏幕截图")
-
-> 点击禁用后 图片会变成路径展示
-
-![输入图片说明](https://foruda.gitee.com/images/1678978429692592556/0231d778_1766278.png "屏幕截图")
-
-> 也可再 `参数设置` 更改预览状态 将 `OSS预览列表资源` 改为 `false` 即可关闭预览
-
-![输入图片说明](https://foruda.gitee.com/images/1678978433769403801/7d480e76_1766278.png "屏幕截图")
-
-### 删除功能
-
-> 点击列表上方或后方 `删除` 按钮 会根据OSS服务商类型 调用对应的删除(注意: 需确保对应的服务商配置正确)<br>
-> 可勾选多服务商类型的文件进行删除 系统会自动判断
-
-![输入图片说明](https://foruda.gitee.com/images/1678978438265941745/f32edc72_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1678978441938542080/43ed7c3d_1766278.png "屏幕截图")
-
-### 下载功能
-
-> 点击列表后方对应资源的 `下载` 按钮 根据需求填写文件名 点击确认即可完成下载
-
-![输入图片说明](https://foruda.gitee.com/images/1678978448927336261/409af888_1766278.png "屏幕截图")
-![输入图片说明](https://foruda.gitee.com/images/1678978452761792483/ed0a4a72_1766278.png "屏幕截图")

+ 0 - 29
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/page.md

@@ -1,29 +0,0 @@
-# 分页功能
-- - -
-
-## 重点说明
-
-> 项目使用 `mybatis-plus` 分页插件 实现分页功能 大致用法与 MP 一致 [MP分页文档](https://baomidou.com/pages/97710a/) <br>
-> 项目已配置分页合理化 页数溢出 例如: 一共5页 查了第6页 默认返回第一页 <br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678977804058241635/b5cb362d_1766278.png "屏幕截图")
-
-## 代码用法
-
-> `Controller` 使用 `PageQuery` 接收分页参数 具体参数参考 `PageQuery`
-
-![输入图片说明](https://foruda.gitee.com/images/1678977844048821356/1f994221_1766278.png "屏幕截图")
-
-> 构建 `Mybatis-Plus` 分页对象 <br>
-> 使用 `PageQuery#build()` 方法 可快速(基于当前对象数据)构建 `MP` 分页对象
-
-![输入图片说明](https://foruda.gitee.com/images/1678977862816976499/b82c1638_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678977876194578744/eaa7b854_1766278.png "屏幕截图")<br>
-
-具体用法与 `MP` 一致
-
-> 自定义 `SQL` 方法分页 <br>
-> 只需在 `Mapper` 方法第一个参数和返回值 重点: 第一个参数 标注分页对象
-
-![输入图片说明](https://foruda.gitee.com/images/1678977898181729571/6e102731_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1678977906788451483/70979292_1766278.png "屏幕截图")

+ 0 - 158
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/param_check.md

@@ -1,158 +0,0 @@
-# 参数校验
-- - -
-
-参数校验在日常开发中十分常见,在本框架中引入了 `spring-boot-starter-validation` 依赖,底层基于 `hibernate-validator`,可以对参数进行校验。
-
-## 参数校验使用
-
-### 方法一:使用 `@Validated` 注解
-
-#### 步骤一:标注 `@Validated`
-
-`@Validated` 可以标注在类上,或者是参数前。
-
-```Java
-/** 标注在类上 **/
-@Validated
-@RestController
-@RequestMapping("/auth")
-public class AuthController {
-
-    @PostMapping("/login")
-    public R<LoginVo> login(@RequestBody LoginBody body) {
-        // ...
-    }
-
-}
-```
-
-```Java
-/** 标注在参数前 **/
-@PostMapping
-public R<Void> add(@Validated @RequestBody SysUserBo user) {
-    // ...
-}
-```
-
-#### 步骤二:标注校验注解
-
-在参数中加入校验注解。
-
-```Java
-public class SysUserBo {
-
-    @NotBlank(message = "用户账号不能为空")
-    @Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符")
-    private String userName;
-    
-    @NotBlank(message = "用户昵称不能为空")
-    @Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
-    private String nickName;
-    
-    @Email(message = "邮箱格式不正确")
-    @Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符")
-    private String email;
-    
-}
-```
-
-常见校验注解见文末附表。
-
-_注:message 支持 EL 表达式,{max} 直接读取前面的参数值。_
-
-### 方法二:使用校验工具类 `ValidatorUtils`
-
-`org.dromara.common.core.utils.ValidatorUtils`
-
-![输入图片说明](https://foruda.gitee.com/images/1700050047426137432/206bd032_4959041.png "屏幕截图")
-
-使用方式 1:校验所有带有校验注解的属性
-
-```Java
-// 校验所有带有校验注解的属性
-ValidatorUtils.validate(object);
-```
-
-使用方式 2:按照分组校验属性(可以传多个分组)
-
-```Java
-// 按照分组校验属性(可以传多个分组)
-ValidatorUtils.validate(object, group);
-```
-
-## 扩展使用
-
-### 扩展一:自定义校验注解
-
-除了已有的校验注解以外,可以结合业务进行自定义。
-
-以框架中的 `@Xss` 注解为例进行说明。
-
-```Java
-@Xss(message = "用户账号不能包含脚本字符")
-@NotBlank(message = "用户账号不能为空")
-@Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符")
-private String userName;
-```
-
-#### 1:新增 `@Xss` 注解
-
-`org.dromara.common.core.xss.Xss`
-
-![输入图片说明](https://foruda.gitee.com/images/1700048074014527096/b4e230c2_4959041.png "屏幕截图")
-
-#### 2:自定义校验器
-
-自定义校验器实现 `jakarta.validation.ConstraintValidator` 接口。
-
-`org.dromara.common.core.xss.XssValidator`
-
-![输入图片说明](https://foruda.gitee.com/images/1700048474563719650/f9172bdc_4959041.png "屏幕截图")
-
-### 扩展二:自定义分组校验
-
-同一个对象在不同的请求中需要校验的参数不同,则可以使用分组校验。
-
-#### 1:自定义分组
-
-![输入图片说明](https://foruda.gitee.com/images/1700049439236073123/9e0d2e16_4959041.png "屏幕截图")
-
-#### 2:`@Validated` 注解指定分组
-
-![输入图片说明](https://foruda.gitee.com/images/1700049302803077030/c2a985aa_4959041.png "屏幕截图")
-
-#### 3:校验注解中指定分组
-
-![输入图片说明](https://foruda.gitee.com/images/1700049205699437759/96babbd6_4959041.png "屏幕截图")
-
-## 附录:常用校验注解
-
-| 注解               | 使用(只列举特殊参数值)                         | 参数类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 说明                                    |
-|------------------|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|
-| @AssertFalse     | @AssertFalse                         | boolean / Boolean                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 元素值必须为 false                          |
-| @AssertTrue      | @AssertTrue                          | boolean / Boolean                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 元素值必须为 true                           |
-| @DecimalMax      | @DecimalMax(value=值)                 | - BigDecimal <br> - BigInteger  <br> - CharSequence <br> - byte, short, int, long 及其包装类                                                                                                                                                                                                                                                                                                                                                                                            | 元素必须是一个数字,其值必须小于或等于指定的最大值             |
-| @DecimalMin      | @DecimalMin(value=值)                 | - BigDecimal <br> - BigInteger  <br> - CharSequence <br> - byte, short, int, long 及其包装类                                                                                                                                                                                                                                                                                                                                                                                            | 元素必须是一个数字,其值必须大于或等于指定的最小值             |
-| @Digits          | @Digits(integer=整数位值, fraction=小数位值) | - BigDecimal <br> - BigInteger  <br> - CharSequence <br> - byte, short, int, long 及其包装类                                                                                                                                                                                                                                                                                                                                                                                            | 元素必须符合整数位以及小数位范围值                     |
-| @Email           | @Email(regexp=正则表达式, flags=标志)       | CharSequence                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 元素是否符合正则表达式(正则表达式非必传)                 |
-| @Future          | @Future                              | - java.util.Date <br> - java.util.Calendar <br> - java.time.Instant <br> - java.time.LocalDate <br> - java.time.LocalDateTime <br> - java.time.LocalTime <br> - java.time.MonthDay <br> - java.time.OffsetDateTime <br> - java.time.OffsetTime <br> - java.time.Year <br> - java.time.YearMonth <br> - java.time.ZonedDateTime <br> - java.time.chrono.HijrahDate <br> - java.time.chrono.JapaneseDate <br> - java.time.chrono.MinguoDate <br> - java.time.chrono.ThaiBuddhistDate | 元素必须是未来的时刻、日期或时间                      |
-| @FutureOrPresent | @FutureOrPresent                     | 同 @Future                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 元素必须是当前或未来的时刻、日期或时间                   |
-| @Length          | @Length(min=最小值, max=最大值)            | - CharSequence                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 验证字符串是否在包含的 min 和 max 之间              |
-| @Max             | @Max(value=值)                        | - BigDecimal <br> - BigInteger  <br> - byte, short, int, long 及其包装类                                                                                                                                                                                                                                                                                                                                                                                                                | 元素必须是一个数字,其值必须小于或等于指定的最大值             |
-| @Min             | @Min(value=值)                        | - BigDecimal <br> - BigInteger  <br> - byte, short, int, long 及其包装类                                                                                                                                                                                                                                                                                                                                                                                                                | 元素必须是一个数字,其值必须大于或等于指定的最小值             |
-| @Negative        | @Negative                            | - BigDecimal <br> - BigInteger  <br> - byte,short,int,long,float,double 及其包装类                                                                                                                                                                                                                                                                                                                                                                                                      | 元素必须是一个严格的负数(即 0 被视为无效值)              |
-| @NegativeOrZero  | @NegativeOrZero                      | - BigDecimal <br> - BigInteger  <br> - byte,short,int,long,float,double 及其包装类                                                                                                                                                                                                                                                                                                                                                                                                      | 元素必须为负数或 0                            |
-| @NotBlank        | @NotBlank                            | CharSequence                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 元素不能为 null,并且必须至少包含一个非空白字符            |
-| @NotEmpty        | @NotEmpty                            | - CharSequence <br> - Collection <br> - Map <br> - Array                                                                                                                                                                                                                                                                                                                                                                                                                           | 元素不能为 null 或空集合                       |
-| @NotNull         | @NotNull                             | 不限类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 元素不能为 null                            |
-| @Null            | @Null                                | 不限类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 元素必须为 null                            |
-| @Past            | @Past                                | 同 @Future                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 元素必须是过去的瞬间、日期或时间                      |
-| @PastOrPresent   | @PastOrPresent                       | 同 @Future                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 元素必须是过去或现在的瞬间、日期或时间                   |
-| @Pattern         | @Pattern(regexp=正则表达式, flags=标志)     | CharSequence                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 元素必须与指定的正则表达式匹配(正则表达式遵循 Java 正则表达式约定) |
-| @Positive        | @Positive                            | - BigDecimal <br> - BigInteger  <br> - byte,short,int,long,float,double 及其包装类                                                                                                                                                                                                                                                                                                                                                                                                      | 元素必须是一个严格的正数(即 0 被视为无效值)              |
-| @PositiveOrZero  | @PositiveOrZero                      | - BigDecimal <br> - BigInteger  <br> - byte,short,int,long,float,double 及其包装类                                                                                                                                                                                                                                                                                                                                                                                                      | 元素必须为正数或 0                            |
-| @Range           | @Range(min=最小值, max=最大值)             | - BigDecimal <br> - BigInteger  <br> - CharSequence <br> - byte, short, int, long 及其包装类                                                                                                                                                                                                                                                                                                                                                                                            | 验证元素是否在包含的 min 和 max 之间               |
-| @Size            | @Size(min=最小值, max=最大值)              | - CharSequence <br> - Collection <br> - Map <br> - Array                                                                                                                                                                                                                                                                                                                                                                                                                           | 验证元素是否在包含的 min 和 max 之间               |
-| @Valid           | @Valid                               | 对象                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 级联验证                                  |
-
-更多注解可参考包: `org.hibernate.validator`

+ 0 - 144
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions.md

@@ -1,144 +0,0 @@
-# 关于数据权限
-- - -
-* 参考 demo 模块用法(需导入 test.sql 文件)
-
-### 新版数据权限功能:
-1.支持自动注入 sql 数据过滤<br>
-2.查询、更新、删除 限制<br>
-3.支持自定义数据字段过滤<br>
-4.模板支持 spel 语法实现动态 Bean 处理<br>
-5.支持与菜单权限标识符联合使用(2.2.X新功能)
-
-### 数据权限相关代码
-
-| 类                             | 说明              | 功能                                     |
-|-------------------------------|-----------------|----------------------------------------|
-| DataScopeType                 | 数据权限模板定义        | 用于定义数据权限模板                             |
-| DataPermission                | 数据权限组注解         | 用于标注开启数据权限 (默认过滤部门权限)                  |
-| DataColumn                    | 具体的数据权限字段标注     | 用于替换数据权限模板内的 key 变量                    |
-| PlusDataPermissionInterceptor | 数据权限 sql 拦截器    | 用于拦截所有 sql 检查是否标注了 `DataPermission` 注解 |
-| PlusDataPermissionHandler     | 数据权限处理器         | 用于处理被拦截到的 sql 为其添加数据权限过滤条件             |
-| DataPermissionHelper          | 数据权限助手          | 操作数据权限上下文变量                            |
-| SysDataScopeService           | 自定义 Bean 处理数据权限 | 用于自定义扩展                                |
-
-## 忽略数据权限
-
-1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解:
-```
-@InterceptorIgnore(dataPermission = "true")
-```
-
-2.如果需要在业务层忽略数据权限,可调用以下方法:
-```
-# 无返回值
-DataPermissionHelper.ignore(() -> { 业务代码 });
-# 有返回值
-Class result = DataPermissionHelper.ignore(() -> { return 业务代码 });
-```
-
-### 使用方式 `参考demo模块`
-数据权限体系 `用户 -> 多角色 => 角色 -> 单数据权限`
-> 例子: 用户A 拥有两个角色<br>
-> 角色A 部门经理 可查看 本部门及以下部门的数据<br>
-> 角色B 兼职开发 可查看 仅自己的数据
-
-> 创建角色 test1 为 本部门及以下
-
-![输入图片说明](https://foruda.gitee.com/images/1678978669666831574/b51ed0a3_1766278.png "屏幕截图")
-
-> 创建角色 test2 为 仅本人
-
-![输入图片说明](https://foruda.gitee.com/images/1678978674159035056/69cf32ad_1766278.png "屏幕截图")
-
-> 将其分配给用户 test
-
-![输入图片说明](https://foruda.gitee.com/images/1678978680492570269/a47b6afc_1766278.png "屏幕截图")
-
-### 编写列表查询(注意: 数据权限注解只能在 Mapper 层使用)
-
-> 标注数据权限注解 `dept_id` 为过滤部门字段 `user_id` 为过滤创建用户
-
-![输入图片说明](https://foruda.gitee.com/images/1678978687179608427/d6b83c30_1766278.png "屏幕截图")
-
-### 重点注意: 如下情况不生效
-
-> 有自定义实现方法 最终执行的mapper不是这个方法 所以无法生效
->
-> 解决方案: 一直往下点 找到最终的执行mapper重写即可
-
-![输入图片说明](https://foruda.gitee.com/images/1678978692558777291/78b0a3dd_1766278.png "屏幕截图")
-
-### 编写数据权限模板
-
-![输入图片说明](https://foruda.gitee.com/images/1678978697141183499/cfc1cb6a_1766278.png "屏幕截图")
-
-1.`code` 为关联角色的数据权限 `code`<br>
-2.`sqlTemplate` 为 sql 模板<br>
-`#{#deptName}` 为模板变量 对应权限注解的 `key`<br>
-`#{@sdss}` 为模板 Bean 调用 调用其 Bean 的处理方法<br>
-3.`elseSql` 为兜底 sql 处理当前角色与标注的注解 无对应的情况<br>
-例如 数据权限为仅本人 且 方法并未标注具体过滤注解 则 填充 `1 = 0` 使条件不满足 不允许查看<br>
-更详细用法可以参考 `DataScopeType` 注释
-
-### 测试代码
-
-> 使用 `管理员` 用户优先测试
-
-![输入图片说明](https://foruda.gitee.com/images/1678978703250082481/e93a68a5_1766278.png "屏幕截图")
-
-> 使用 `test` 用户测试
-
-![输入图片说明](https://foruda.gitee.com/images/1678978710644676604/d7f80487_1766278.png "屏幕截图")
-
-> 使用 `test` 删除一条不属于自己的数据
-> sql执行为不满足条件 不允许删除
-
-![输入图片说明](https://foruda.gitee.com/images/1678978715711122947/441d61f7_1766278.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1678978720298532619/a35b1147_1766278.png "屏幕截图")
-
-
-> 使用 `test` 修改与删除同理<br>
-> 具体实现为 更新和删除方法 标注数据权限注解
-
-![输入图片说明](https://foruda.gitee.com/images/1678978725329242504/a70491a1_1766278.png "屏幕截图")
-
-### 自定义SQL模板
-
-> 1.首先在角色管理 数据权限下拉框 添加自定义模板<br>
-> 为什么不放置到系统字典问题: 因数据权限与模板绑定 不应随意改动 最好事先定义好
-
-![输入图片说明](https://foruda.gitee.com/images/1678978730563169865/3459ee17_1766278.png "屏幕截图")
-
-> 2.代码 `DataScopeType` 自定义一个SQL模板
-
-![输入图片说明](https://foruda.gitee.com/images/1678978735588305505/3f030c67_1766278.png "屏幕截图")
-
-> 3.标注权限注解
-
-![输入图片说明](https://foruda.gitee.com/images/1678978742259837391/eabe5caa_1766278.png "屏幕截图")
-
-> 4.设置数据权限变量
-
-![输入图片说明](https://foruda.gitee.com/images/1678978746778429543/e211201f_1766278.png "屏幕截图")
-
-> 5.测试
-
-![输入图片说明](https://foruda.gitee.com/images/1678978751875467640/7d210cf4_1766278.png "屏幕截图")
-
-### mybatis-plus 原生方法 增加数据权限过滤
-
-> 首先查看需要重写的方法源码 重点`方法源码` `方法源码` `方法源码`<br>
-> 例如重写 `selectPage` 方法<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678978757955000897/8315695c_1766278.png "屏幕截图")
-
-> 复制源码到自己的 `Mapper` 并增加数据权限注解 注意左边出现重写图标 即为重写成功<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678978763224011694/bbea25a1_1766278.png "屏幕截图")
-
-### 支持类标注
-
-> 获取规则 `方法 > 类` 注意: 类标注后 所有方法(包括父类方法) 都会进行数据权限过滤
-
-![输入图片说明](https://foruda.gitee.com/images/1678978767336534896/fb13ee99_1766278.png "屏幕截图")

+ 0 - 178
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions_control.md

@@ -1,178 +0,0 @@
-# 权限控制
-- - -
-
-本文采用 `Sa-Token` 框架实现权限控制。[官方文档传送门](https://sa-token.cc/doc.html#/)
-
-## 权限校验
-权限校验指的是校验用户是否拥有访问某个 API 的能力。
-
-通常情况下,一个 API 对应一个权限码,如果用户具备当前 API 的权限码,即代表有能力访问该 API。
-
-### 1:权限标识
-在本系统中,每一个菜单功能都有对应的权限标识,可以在菜单管理中进行设置。
-
-> 注:
-> 1. 前后端的权限标识要保持一致。
-> 2. 权限标识可以使用通配符`*`。
-
-![输入图片说明](https://foruda.gitee.com/images/1701086497939145368/133fb327_4959041.png "屏幕截图")
-
-
-### 2:校验方法
-#### 2.1:使用 `@SaCheckPermission` 注解进行校验
-`@SaCheckPermission` 注解是由 `Sa-Token` 框架提供的角色校验注解,可以标注在方法上或类上。
-
-- 单个权限校验:
-
-```Java
-@SaCheckPermission("system:user:list")
-```
-
-- 多个权限校验(或模式,满足任意一个权限即可):
-
-```Java
-@SaCheckPermission(
-    value = {
-        "system:user:list", 
-        "system:user:query"
-    }, 
-    mode = SaMode.OR
-)
-```
-
-- 多个权限校验(与模式,必须满足所有权限):
-
-```Java
-@SaCheckPermission(
-    value = {
-        "system:user:list", 
-        "system:user:query"
-    }, 
-    mode = SaMode.AND
-)
-```
-
-#### 2.2:使用 `StpUtil` 工具类校验
-`StpUtil` 工具类是由 `Sa-Token` 框架提供的权限工具类,提供了常用的校验方法。
-
-- 判断当前用户是否拥有某个权限(返回 `boolean`):
-
-```Java
-StpUtil.hasPermission("system:user:list");
-```
-
-- 单个权限校验:
-
-```Java
-StpUtil.checkPermission("system:user:list");
-```
-如果验证未通过,则抛出异常: `NotPermissionException`
-
-- 多个权限校验(或模式,满足任意一个权限即可):
-
-```Java
-StpUtil.checkPermissionOr("system:user:list", "system:user:query");
-```
-如果验证未通过,则抛出异常: `NotPermissionException`
-
-- 多个权限校验(与模式,必须满足所有权限):
-
-```Java
-StpUtil.checkPermissionAnd("system:user:list", "system:user:query");
-```
-如果验证未通过,则抛出异常: `NotPermissionException`
-
-## 角色校验
-角色校验指的是校验用户是否拥有某个指定角色。
-
-### 1:权限标识
-在本系统中,每个角色都拥有唯一的权限字符。
-
-除了超级管理员角色外,其他角色的权限字符可以通过角色管理进行设置。
-
-![输入图片说明](https://foruda.gitee.com/images/1701085080527279823/3255961d_4959041.png "屏幕截图")
-
-### 2:校验方法
-#### 2.1:使用 `@SaCheckRole` 注解校验
-`@SaCheckRole` 注解是由 `Sa-Token` 框架提供的角色校验注解,可以标注在方法上或类上。
-
-- 单个角色校验
-
-```Java
-@SaCheckRole("superadmin")
-```
-
-- 多个角色校验(或模式,满足任意一个角色即可):
-
-```Java
-@SaCheckRole(
-    value = {
-        "superadmin", 
-        "admin"
-    }, 
-    mode = SaMode.OR
-)
-```
-
-- 多个角色校验(与模式,必须满足所有角色):
-
-```Java
-@SaCheckRole(
-    value = {
-        "superadmin", 
-        "admin"
-    }, 
-    mode = SaMode.AND
-)
-```
-
-#### 2.2:使用 `StpUtil` 工具类校验
-`StpUtil` 工具类是由 `Sa-Token` 框架提供的权限工具类,提供了常用的校验方法。
-
-- 判断当前用户是否拥有某个角色(返回 `boolean`):
-
-```Java
-StpUtil.hasRole("superadmin")
-```
-
-- 单个权限校验:
-
-```Java
-StpUtil.checkRole("system:user:list");
-```
-如果验证未通过,则抛出异常: `NotRoleException`
-
-- 多个权限校验(或模式,满足任意一个角色即可):
-
-```Java
-StpUtil.checkRoleOr("system:user:list", "system:user:query");
-```
-如果验证未通过,则抛出异常: `NotRoleException`
-
-- 多个权限校验(与模式,必须满足所有角色):
-
-```Java
-StpUtil.checkRoleAnd("system:user:list", "system:user:query");
-```
-如果验证未通过,则抛出异常: `NotRoleException`
-
-## 角色权限双重 `OR` 校验
-除了分开校验以外,权限和角色也可以进行组合,表示备选校验。
-
-简单举个例子:
-
-假设某个 API 的权限码为 `system:user:list`,角色 `admin` 可以调用,则可以这样写:
-
-```Java
-@SaCheckPermission(value = "system:user:list", orRole = "admin")
-```
-
-以上权限只需要满足任意一项即可。更多写法可以参考 `Sa-Token` [官方文档](https://sa-token.cc/doc.html#/use/at-check?id=_4%e3%80%81%e8%a7%92%e8%89%b2%e6%9d%83%e9%99%90%e5%8f%8c%e9%87%8d-or%e6%a0%a1%e9%aa%8c)。
-
-## 当前用户的所有权限
-本系统中实现了 `StpInterface` 接口,可以对用户的权限以及角色进行管理,并且可以根据不同的用户类型进行设置。
-
-具体参考类:`org.dromara.common.satoken.core.service.SaPermissionImpl`
-
-## 忽略权限校验
-请参考文档:[网关路由与放行](/ruoyi-cloud-plus/framework/basic/router_release?id=网关路由与放行)

+ 0 - 26
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/router_release.md

@@ -1,26 +0,0 @@
-# 网关路由与放行
-- - -
-
-## 新增路由
-`ruoyi-gateway.yml` 配置文件 增加 `routers` 配置<br>
-**注意: 路径格式为 `/服务路径/controller路径/接口方法路径` `*代表任意一级 **代表任意所有级`**<br>
-下图代表 `resource/**` 将所有 `resource开头的路径` 都路由到 `ruoyi-resource` 服务<br>
-例如: `/resource/sms/code` `resource路由到ruoyi-resource服务` `sms路由到对应的contrller` `code 路由到对应的接口`<br>
-![输入图片说明](https://foruda.gitee.com/images/1669623462957266512/c282932b_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1669623527799049459/201a52db_1766278.png "屏幕截图")
-
-## 放行使用方式
-nacos 中 `ruoyi-gateway.yml` 白名单放行<br>
-**注意: 放行路径格式为 `/服务路径/controller路径/接口方法路径` `*代表任意一级 **代表任意所有级`**<br>
-示例: `/resource/sms/code` 代表 `ruoyi-resource服务 sms的controller code接口`<br>
-![输入图片说明](https://foruda.gitee.com/images/1660622672461635175/屏幕截图.png "屏幕截图.png")
-
-## 注意事项
-
-接口放行后不需要token即可访问<br>
-但是没有token也就无法获取用户信息与鉴权
-
-### 解决方案
-删除接口上的鉴权注解<br>
-删除接口内获取用户信息功能<br>
-删除数据库实体类 自动注入 `createBy` `updateBy` 因为会获取用户数据

+ 0 - 68
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/social.md

@@ -1,68 +0,0 @@
-# 第三方授权功能
-- - -
-## 版本 >= 2.X
-
-## 前置说明
-1. 该功能基于 `JustAuth` 实现,支持多家平台实现第三方授权登录。
-2. 以 `Gitee` 授权登录为例进行本功能的使用说明。
-3. 其他第三方授权配置信息获取方式可参考 `JustAuth` [官方文档](https://www.justauth.cn/guide/)。<br>
-
-   ![输入图片说明](https://foruda.gitee.com/images/1690937097426867003/91d80587_4959041.png "屏幕截图")
-
-## 第三方授权配置
-
-### 申请三方应用(以gitee为例)
-
-![输入图片说明](https://foruda.gitee.com/images/1700641775779304627/1cf1b56f_1766278.png "屏幕截图")
-
-### 更改后端配置 `application-dev.yml`
-
-![输入图片说明](https://foruda.gitee.com/images/1690936741844431943/580f8998_4959041.png "屏幕截图")
-
-**注:内网地址无法回调,请使用外网可以访问的地址。**
-
-![输入图片说明](https://foruda.gitee.com/images/1690940457570856867/ce22df18_4959041.png "屏幕截图")
-
-### 更改前端配置 `login.vue`
-
-![输入图片说明](https://foruda.gitee.com/images/1690937306197173754/5c1ece29_4959041.png "屏幕截图")
-
-## 授权登录(未绑定第三方平台)
-
-### 步骤一:个人中心授权第三方应用
-
-![输入图片说明](https://foruda.gitee.com/images/1690938449386201097/ea375106_4959041.png "屏幕截图")
-
-### 步骤二:同意授权
-
-![输入图片说明](https://foruda.gitee.com/images/1690938522418523183/81b327bf_4959041.png "屏幕截图")
-
-顶部出现授权成功,并跳转到系统首页。<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1690938559178527841/563168e4_4959041.png "屏幕截图")<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1690938636375977741/8ceb77cf_4959041.png "屏幕截图")
-
-查看第三方应用可看到授权成功的个人信息。<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1690938725512311321/5532a2a9_4959041.png "屏幕截图")
-
-## 授权登录(已绑定第三方平台)
-
-### 步骤一:点击登录页面图标
-
-![输入图片说明](https://foruda.gitee.com/images/1690938908352243992/fd044381_4959041.png "屏幕截图")
-
-### 步骤二:同意授权
-
-![输入图片说明](https://foruda.gitee.com/images/1690938522418523183/81b327bf_4959041.png "屏幕截图")
-
-## 解除授权绑定
-
-### 步骤一:个人中心点击解绑第三方应用
-
-![输入图片说明](https://foruda.gitee.com/images/1690939087877969002/4ef324e7_4959041.png "屏幕截图")
-
-### 步骤二:点击确定完成解绑
-
-![输入图片说明](https://foruda.gitee.com/images/1690939108017661775/7236088d_4959041.png "屏幕截图")

+ 0 - 121
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/tenant.md

@@ -1,121 +0,0 @@
-# 多租户功能
-- - -
-## 版本 >= 2.X
-
-## 前置说明(重要)
-1. 本框架多租户功能的实现是基于 [MyBatis-Plus 多租户插件](https://baomidou.com/pages/aef2f2/#tenantlineinnerinterceptor) 的,只支持最简单的隔离。
-2. 本系统默认开启多租户功能。
-3. 多租户业务表建表需要加上租户id `tenant_id`,可参考其他系统表。
-4. 非多租户表可在配置文件进行配置排除。
-5. 只有超级管理员支持切换租户。
-
-## 多租户使用流程(先说结论再展开!)
-0. 开启多租户配置(系统默认已经开启)
-1. 登录界面(可以选择不同租户)
-> 注:如果为租户设置了绑定域名,则只能选择当前域名相关的租户列表。
-2. 设置多租户套餐
-3. 新增/修改租户(需要选择套餐)
-4. 切换租户(仅超级管理员可操作)
-
-## 多租户配置
-`application-common.yml`<br>
-
-> 开关 `enable` 节点不用废话。 <br>
-> 如果不需要过滤租户的表可在 `excludes` 节点下添加。
-
-**注意: 如果已经基于租户模式启动了程序 关闭租户必须删除mysql与redis内的相关数据重新导入sql**
-
-![输入图片说明](https://foruda.gitee.com/images/1680168468127690787/2cd3279e_4959041.png "屏幕截图")
-
-## 忽略租户
-
-1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解:
-```
-@InterceptorIgnore(tenantLine = "true", dataPermission = "false")
-```
-**此处注意事项 使用此注解如果需要开启数据权限 dataPermission = "false" 必须添加 mp的注解默认是忽略数据权限的 会导致数据权限失效**
-
-2.如果需要在业务层忽略多租户,可调用以下方法(推荐使用):
-```
-# 无返回值
-TenantHelper.ignore(() -> { 业务代码 });
-# 有返回值
-Class result = TenantHelper.ignore(() -> { return 业务代码 });
-```
-
-## 动态切换租户
-
-**仅适用于特殊需求业务(例如: 创建租户时, 对该租户操作一些数据, 或者需要去其他租户查一些数据等) 禁止乱用后果自负**
-
-```
-# 无返回值
-TenantHelper.dynamic(租户id, () -> { 业务代码 });
-# 有返回值
-Class result = TenantHelper.dynamic(租户id, () -> { return 业务代码 });
-```
-
-## 登录界面
-
-![输入图片说明](https://foruda.gitee.com/images/1680173982933030545/bca146d7_4959041.png "屏幕截图")
-
-> 注:如果为租户设置了绑定域名,则只能选择当前域名相关的租户列表。
-
-## 租户套餐管理
-### 租户套餐新增
-![输入图片说明](https://foruda.gitee.com/images/1680174317475230288/352957a1_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1680174602877523112/fc194f17_4959041.png "屏幕截图")
-
-> 注:
-> 1、先新增套餐再新增租户,因为租户新增之后无法修改所选套餐。
-> 2、租户所关联的套餐如果后续有修改可以进行同步。
-
-
-## 租户管理
-### 默认租户
-> 注:默认租户无法修改
-
-![输入图片说明](https://foruda.gitee.com/images/1680174738913576400/b6aca11a_4959041.png "屏幕截图")
-
-### 新增租户
-#### 填写表单
-![输入图片说明](https://foruda.gitee.com/images/1680174945220618443/f7181b51_4959041.png "屏幕截图")
-
-#### 选择新增的租户套餐
-![输入图片说明](https://foruda.gitee.com/images/1680174991869792688/0dbaadd6_4959041.png "屏幕截图")
-
-#### 新增完成
-![输入图片说明](https://foruda.gitee.com/images/1680175033853525725/42e64b4d_4959041.png "屏幕截图")
-
-#### 登录租户
-![输入图片说明](https://foruda.gitee.com/images/1680176145378931134/e05f347e_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1680176208161104366/44a935f1_4959041.png "屏幕截图")
-
-### 修改租户
-#### 配置域名
-![输入图片说明](https://foruda.gitee.com/images/1680175251192690133/141fa6a6_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1680175431036971650/db522d39_4959041.png "屏幕截图")
-
-#### 没有配置域名
-![输入图片说明](https://foruda.gitee.com/images/1680175541165540240/95e211f7_4959041.png "屏幕截图")
-
-#### 强调一下:这不是bug!
-> 注:域名的配置就是为了绑定特定租户!
-
-### 同步套餐
-应用场景:租户套餐进行了修改,配置的菜单需要同步到特定租户。
-(不是所有租户都有更新套餐的权利, 这是跟钱挂钩的)
-
-> 点一下按钮的事,图略。
-
-## 切换租户(仅超级管理员)
-> 注:管理员切换租户不是切换用户,切换的只是数据,管理员拥有所有权限。
-
-![输入图片说明](https://foruda.gitee.com/images/1680176324802967804/5c5d6fc3_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1680176431031189788/0c3f924c_4959041.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1680176496555243569/624ec677_4959041.png "屏幕截图")
-

+ 0 - 85
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/user.md

@@ -1,85 +0,0 @@
-# 系统用户相关
-- - -
-
-> 框架采用sa-token控制权限 并对sa-token的api做了一定的业务封装<br>
-
-## 用户登录
-
-> 参考自带多种登录实现 不限制用户数据来源 只需要构建 LoginUser 即可完成登录<br>
-> 例如: `同表不同类型` `不同表` `同表+扩展表`<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1699590555824776931/63d493fc_1766278.png "屏幕截图")
-
-## 获取用户信息
-
-> 完成登录后会生成登录token返回给前端 前端需要再请求头携带token 后端方可获取到对应的用户信息
-
-请求头传递格式: `Authorization: Bearer token`
-
-后端获取用户信息:
-```java
-LoginUser user = LoginHelper.getLoginUser();
-```
-
-## 获取用户信息(基于token)
-```java
-LoginUser user = LoginHelper.getLoginUser(token);
-```
-
-## 获取登录用户id
-```java
-Long userId = LoginHelper.getUserId();
-```
-
-## 获取登录用户账户名
-```java
-String username = LoginHelper.getUsername();
-```
-
-## 获取登录用户所属租户id
-```java
-String tenantId = LoginHelper.getTenantId();
-```
-
-## 获取登录用户所属部门id
-```java
-Long deptId = LoginHelper.getDeptId();
-```
-
-## 获取登录用户类型
-```java
-UserType userType = LoginHelper.getUserType();
-```
-
-## 获取登录用户其他扩展属性
-```java
-Object obj = LoginHelper.getExtra(key);
-```
-
-## 设置登录用户其他扩展属性
-
-参考登录设置 `clientId` 属性
-
-![输入图片说明](https://foruda.gitee.com/images/1699591164562734430/42730add_1766278.png "屏幕截图")
-
-## 判断用户是否为超级管理员
-
-```java
-// 判断当前登录用户
-boolean b = LoginHelper.isSuperAdmin();
-// 判断用户基于id
-boolean b = LoginHelper.isSuperAdmin(userId);
-```
-
-## 判断用户是否为租户管理员
-
-```java
-// 判断当前登录用户
-boolean b = LoginHelper.isTenantAdmin();
-// 判断用户基于角色组
-boolean b = LoginHelper.isSuperAdmin(rolePermission);
-```
-
-## 其他更多操作
-[Sa-Token 官方文档 - 登录认证](https://sa-token.cc/doc.html#/use/login-auth)
-

+ 0 - 12
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/about_join.md

@@ -1,12 +0,0 @@
-# 关于多表查询
-- - -
-## 建议单表查询
-
-文章连接: [大连接查询分解好处](https://java.isture.com/db/mysql/mysql-x-optimize-decompose-connection.html)
-
-![输入图片说明](https://foruda.gitee.com/images/1678979482724037085/1e74f3e1_1766278.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1666336728402711844/52788205_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1666336945935088277/f60e3288_1766278.png "屏幕截图")<br>
-![输入图片说明](https://foruda.gitee.com/images/1666336954686520161/c6c83adc_1766278.png "屏幕截图")<br>
-**(上图出自 <高性能MySql>)**

+ 0 - 19
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/key.md

@@ -1,19 +0,0 @@
-# 主键使用说明
-- - -
-## 关于如何使用分布式id或雪花id
-
-参考 `MybatisPlusConfig` 如需自定义 修改 `Bean` 实现即可
-
-![输入图片说明](https://foruda.gitee.com/images/1678979401707903546/e25f6c06_1766278.png "屏幕截图")
-
-框架默认集成 雪花ID 只需全局更改 主键类型即可
-
-![输入图片说明](https://foruda.gitee.com/images/1678979411517764918/1470df04_1766278.png "屏幕截图")
-
-如单表使用 可单独配置注解
-
-![输入图片说明](https://foruda.gitee.com/images/1678979416033986923/2a4c3736_1766278.png "屏幕截图")
-
-### 重点说明
-* 由于雪花id位数过长 `Long` 类型在前端会失真
-* 框架已配置序列化方案 超越 `JS` 最大值自动转字符串 参考 `BigNumberSerializer` 类

+ 0 - 6
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/test.md

@@ -1,6 +0,0 @@
-# 单元测试
-- - -
-## 参考文章
-[SpringBoot 2.X 整合 JUnit5 及全方位使用手册](https://lionli.blog.csdn.net/article/details/127576604)
-## 参考代码(1.4.0新增)
-![输入图片说明](https://foruda.gitee.com/images/1666973151030696086/6d44f4c2_1766278.png "屏幕截图")

+ 0 - 45
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/transaction.md

@@ -1,45 +0,0 @@
-# 事务相关
-- - -
-若依文档对事务注解的描述 [关于事务](https://doc.ruoyi.vip/ruoyi/document/htsc.html#%E4%BA%8B%E5%8A%A1%E7%AE%A1%E7%90%86)  以下对多数据源事务做补充:
-
-
-## 多服务多数据源事务(框架已默认对接 直接使用seata注解即可)
-
-框架支持对接 `seata` 保证分布式多数据源事务<br>
-详情参考多数据源框架文档连接: https://www.kancloud.cn/tracy5546/dynamic-datasource/2268607
-
-## 本地多数据源事务
-请使用 `@DSTransactional` 注解 会代理 `@DS` 注解切换后的数据源事务做回滚处理<br>
-只要 `@DSTransactional` 注解下任一环节发生异常,则全局多数据源事务回滚。<br>
-如果BC上也有 `@DSTransactional` 会有影响吗?答:没有影响的。
-
-```java
-//如AService调用BService和CService的方法,A,B,C分别对应不同数据源。
-
-public class AService {
-    
-    @DS("a")//如果a是默认数据源则不需要DS注解。
-    @DSTransactional
-    public void dosomething(){
-        BService.dosomething();
-        CService.dosomething();
-    }
-}
-
-public class BService {
-    
-    @DS("b")
-    public void dosomething(){
-        //dosomething
-    }
-}
-
-public class CService {
-    
-    @DS("c")
-    public void dosomething(){
-        //dosomething
-    }
-}
-```
-

+ 0 - 39
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/api_encrypt.md

@@ -1,39 +0,0 @@
-# 数据加解密
-- - -
-
-## 1:API 加密注解 `@ApiEncrypt`
-1. 对于标注了 `@ApiEncrypt` 注解的接口,请求参数都必须进行加密。
-2. 注解的参数 `response` 为响应加密标识,默认 `false` 不加密,为 `true` 表示响应加密。
-3. 加密解密逻辑由过滤器实现,详情可参考 `org.dromara.common.encrypt.filter.CryptoFilter`。
-
-## 2:API 加密配置
-`application-common.yml`
-
-![输入图片说明](https://foruda.gitee.com/images/1701133628809355269/8979704a_4959041.png "屏幕截图")
-
-`.env.development` / `.env.production`
-
-![输入图片说明](https://foruda.gitee.com/images/1709533252413969800/1d0dff25_1766278.png "屏幕截图")
-
-> 注:
-> 1. 注意修改 Nacos 配置。
-> 2. 公私钥与前端配置文件互为配对,如果需要更换请一同更换。
-> 3. 后端公钥对应前端私钥;后端私钥对应前端公钥。
-
-## 3:前端开启加密
-如果需要开启 API 加密,则需要修改 `request` 的 `headers` 内容:
-```Javascript
-headers: {
-  isEncrypt: true
-}
-```
-
-![输入图片说明](https://foruda.gitee.com/images/1701137141916998346/5e839bbe_4959041.png "屏幕截图")
-
-## 4.关于请求响应参数加解密说明
-
-如何加解密请求响应参数看这里 -> [关于请求响应参数解密](/questions/api_encrypt.md)
-
-## 密钥生成说明
-
-![输入图片说明](https://foruda.gitee.com/images/1675577852271308699/9b30258e_1766278.png "屏幕截图")

+ 0 - 45
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md

@@ -1,45 +0,0 @@
-# 多数据源
-- - -
-
-### 框架默认 mysql 其他数据库使用说明
-
-找到 `ruoyi-common-mybatis` 模块在 pom 文件内增加对应的jdbc依赖
-
-![输入图片说明](https://foruda.gitee.com/images/1721098535176969987/d42870ca_1766278.png "屏幕截图")
-
-
-### 关于多数据源事务 具体参考 `事务相关` 文档说明
-
-### 多数据源框架功能介绍
-多数据源框架官方文档: [dynamic-datasource文档](https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611)
-
-* 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。
-* 支持数据库敏感配置信息 加密 ENC()。
-* 支持每个数据库独立初始化表结构schema和数据库database。
-* 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。
-* 支持 自定义注解 ,需继承DS(3.2.0+)。
-* 提供并简化对Druid,HikariCp,BeeCp,Dbcp2的快速集成。
-* 提供对Mybatis-Plus,Quartz,ShardingJdbc,P6sy,Jndi等组件的集成方案。
-* 提供 自定义数据源来源 方案(如全从数据库加载)。
-* 提供项目启动后 动态增加移除数据源 方案。
-* 提供Mybatis环境下的 纯读写分离 方案。
-* 提供使用 spel动态参数 解析数据源方案。内置spel,session,header,支持自定义。
-* 支持 多层数据源嵌套切换 。(ServiceA >>> ServiceB >>> ServiceC)。
-* 提供 基于seata的分布式事务方案。
-* 提供 本地多数据源事务方案。 附:不能和原生spring事务混用。
-
-### 用法说明
-
-> 加载顺序 `方法 => 类 => 默认`<br>
-
-![输入图片说明](https://foruda.gitee.com/images/1678979069737596299/abe8ae7f_1766278.png "屏幕截图")
-
-### 配置方式
-
-![输入图片说明](https://foruda.gitee.com/images/1678979074000345758/b9238f0b_1766278.png "屏幕截图")
-
-### 数据库异构
-
-例如: `mysql + oracle` 参考对应多数据源框架文档 [dynamic-ds文档](https://www.kancloud.cn/tracy5546/dynamic-datasource)
-
-![输入图片说明](https://foruda.gitee.com/images/1678979078387192317/2de94a78_1766278.png "屏幕截图")

+ 0 - 38
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/encrypt.md

@@ -1,38 +0,0 @@
-# 数据加解密
-- - -
-## 框架版本 >= 1.6.0
-
-## 引入依赖
-
-```xml
-<dependency>
-    <groupId>com.ruoyi</groupId>
-    <artifactId>ruoyi-common-encrypt</artifactId>
-</dependency>
-```
-
-## 功能说明
-
-数据库 数据存储加密 查询解密功能<br>
-支持加密算法: `BASE64` `AES` `RSA` `SM2` `SM4`
-
-## 注解 `@EncryptField`
-
-![输入图片说明](https://foruda.gitee.com/images/1675577493013639395/cd920f15_1766278.png "屏幕截图")
-
-## 用法说明
-
-**详细用法可参考案例 TestEncryptController 测试数据库加解密功能**
-
-全局默认加密配置(如果注解不配置则使用全局配置)
-
-![输入图片说明](https://foruda.gitee.com/images/1675577674063566357/dee94786_1766278.png "屏幕截图")
-
-注解可自定义算法与配置
-
-![输入图片说明](https://foruda.gitee.com/images/1675577725117970708/7ee7a833_1766278.png "屏幕截图")
-
-## 密钥生成说明
-
-![输入图片说明](https://foruda.gitee.com/images/1675577852271308699/9b30258e_1766278.png "屏幕截图")
-

+ 0 - 29
ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/idempotent.md

@@ -1,29 +0,0 @@
-# 防重幂等
-- - -
-## 功能介绍
-
-防重功能为防止两条相同的数据重复提交导致脏数据或业务错乱<br>
-**注意: 重复提交属于小概率事件 请不要拿并发压测与之相提并论**<br>
-框架防重功能参考 `美团GTIS防重系统` 使用 请求参数与用户Token或URL 生成全局业务ID<br>
-有效防止 `同一个用户` 在 `限制时间` 内对 `同一个业务` 提交 `相同的数据`
-
-框架防重处理 `支持业务失败或异常` 快速释放限制<br>
-业务处理成功后 会在设置时间内 限制同一条数据的提交<br>
-**注意: 只对同一个用户的同一个接口提交相同的数据有效**
-
-
-
-
-### 美团GTIS系统流程图
-
-[美团 分布式系统互斥性与幂等性问题的分析与解决](https://tech.meituan.com/2016/09/29/distributed-system-mutually-exclusive-idempotence-cerberus-gtis.html)
-
-![输入图片说明](https://foruda.gitee.com/images/1678979231862359032/34f030c5_1766278.png "屏幕截图")
-
-### 使用方法
-
-在Controller标注 `@RepeatSubmit` 注解即可
-
-![输入图片说明](https://foruda.gitee.com/images/1678979236772683145/9fa27e5b_1766278.png "屏幕截图")
-
-![输入图片说明](https://foruda.gitee.com/images/1678979240831458322/8e1fac4b_1766278.png "屏幕截图")

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä