Releases: YunaiV/ruoyi-vue-pro
Releases · YunaiV/ruoyi-vue-pro
v1.6.2:新增 OAuth 2.0、SSO 单点登录、多种数据库支持等功能
📈 Statistic
- 总代码行数:84846
- 源码代码行数:52792
- 注释行数:19234
- 单元测试用例数:671
⭐ New Features
- 【新增】对 PostgreSQL 数据库的支持 #151 感谢这个过程中怪物的帮助!
- 【新增】对 Oracle 数据库的支持 #152 感谢这个过程中 安贞、品霖的帮助!
- 【新增】对 SQL Server 数据库的支持 #153 感谢这个过程中 Simon、蜉蝣无垠、牛希尧的帮助!
- 【新增】《开发指南 —— 后端手册》的接口文档、三方登录、异常处理(错误码)、参数校验、分页实现、系统日志、数据库 MyBatis、多数据源、缓存 Redis、本地缓存、定时任务、消息队列、配置中心、单元测试、分布式锁、幂等性、限流熔断、数据库文档、短信配置、开发环境...
- 【新增】《开发指南 —— 运维手册》的开发环境、Linux 部署、Docker 部署、Jenkins 部署、HTTPS 证书、服务监控...
- 【新增】《开发指南 —— 前端手册》的开发规范、菜单路由、Icon 图标、字典数据、系统组件、通用方法、配置读取...
- 【新增】手机验证码登录,美化登录界面,由 #155 贡献
- 【新增】一键改包的程序,快速将项目的 Maven、包名等信息替换成你的 #110
- 【新增】菜单新增是否缓存、是否隐藏的字段 #133 #172
- 【新增】Spring Cache 声明式缓存,使用 Redis 存储 code
- 【新增】腾讯云短信,由 swpthebest 贡献 #118
- 【新增】敏感词,由 dachuan 贡献 #121
- 【新增】数据源配置,为多租户、代码生成支持动态数据源做准备 #138
- 【新增】用户 Token 采用 OAuth2.0 的 Access Token + Refresh Token,提升安全性 #166
- 【新增】基于 OAuth2.0 实现 SSO 单点登录 #176
- 【新增】用户与岗位的关联表,由 anzhen-tech 贡献 #113
- 【新增】MyBatis 字段的加解密功能 code
- 【新增】集成微信 Native、小程序的支付能力,支持 v2 和 v3 的回调数据处理 #142
- 【优化】yudao-module-xx-impl 调整成 yudao-module-xx-biz,更加符合定位 code
- 【优化】简化三方登录的实现,降低理解成本 #137
- 【优化】去除
yudao-module-system
、yudao-module-infra
对yudao-module-member
的依赖 #122 - 【优化】
yudao-framework-test
测试组件的封装,内置 Redis、DB 等多种快速测试的基类 code - 【优化】配置指定默认的 npm 镜像源 #170
- 【优化】字典管理、通知管理、岗位管理、角色管理、错误码管理的排序显示 #174
- 【优化】前端 Token、账号、密码等信息,统一使用 LocalStorage 替代 Cookie 存储 code
- 【优化】上传文件的类型识别,增加基于 filename 的读取 code
🐞 Bug Fixes
- 【修复】角色菜单集合复选框回显不正确 #107
- 【修复】工作流 BPMN 图的 canvas 自适应,解决展示补全的问题 #104
- 【修复】API 访问日志不记录的问题 code
- 【修复】修复忽略租户的 URL,未带租户会报错的问题 code
- 【修复】菜单无法使用外链的问题 code
- 【修复】代码生成器的 vue 模板中,导出 Excel 文件时,文件名未格式化的问题 #133
- 【修复】代码生成时,对话框的日期选择器,在编辑情况下不能回显 #135
- 【修复】在 Windows 下 ftp 上传和下载存在报错的问题 #156
- 【修复】图片上传组件 ImageUpload 上传报错的问题 code
- 【修复】文件上传组件 FileUpload 上传报错的问题 code
- 【修复】form generator 组件上传文件、图片报错的问题 code
- 【修复】富文本编辑器的 Editor 的图片上传报错的问题 code
- 【修复】DO 生成模板,当主键是 String 类型,模板有误 #167
- 【修复】创建用户不分配角色的情况会存在空指针 #171
- 【修复】yudao-ui-admin 启动告警 #173
- 【修复】新建的用户未分配角色时,操作自己信息回报错的问题 code
- 【修复】工作流的编辑无法撤回、crtl 选中的问题 code
- 【修复】支付宝通知回调 BUG 修复 #142
🔨 Dependency Upgrades
- 【升级】spring-boot from 2.5.10 to 2.6.8 :修复 RCE 漏洞,并且 2.5.X 结束声明周期
- 【升级】redisson from 3.16.6 to 3.17.3 :提升 Redisson 客户端的稳定性
- 【升级】mysql-connector-java from 5.1.46 to 8.0.28 :提升 MySQL 客户端的性能
- 【升级】Knife4j from from 3.0.2 to 3.0.3
- 【升级】swagger-annotations from 1.5.22 to 1.6.6
- 【升级】spring-boot-admin from 2.6.2 to 2.6.7
- 【升级】fastjson from 1.2.73 to 2.0.5
- 【升级】resilience4j from 1.7.0 to 1.7.1
- 【升级】jackson from 2.12.6 to 2.13.3
- 【升级】spring-mvc from 5.3.16 to 5.3.20
- 【升级】spring-security from 5.5.5 to 5.6.5
- 【升级】hibernate-validator from 6.2.2 to 6.2.3
- 【升级】junit from 5.7.2 to 5.8.2
- 【升级】mockito from 3.9.0 to 4.0.0
- 【升级】mybatis-plus from 3.4.3.4 to 3.5.2
v1.6.1:支持 OSS 云存储,优化代码生成
📈 Statistic
- 总代码行数:77279
- 源码代码行数:47812
- 注释行数:17676
- 单元测试用例数:537
⭐ New Features
- 【优化】文件存储的功能,支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、FTP、数据库等 #98
- 【新增】《开发文档》的代码生成(新增功能)、功能权限、上传下载等小节完成,可访问 https://doc.iocoder.cn 地址
- 【新增】开发环境下,管理后台每个菜单展示对应的《开发文档》的说明 code
- 【新增】《开发文档》的工作流、代码生成(新增功能)、功能权限、数据权限等小节完成,可访问 https://doc.iocoder.cn 地址
- 【优化】将
yudao-module-tool
合并到yudao-module-infra
模块,统一基础设施 #94 - 【优化】代码生成时,额外生成 MyBatis Mapper XML 文件 #96
- 【新增】开启 TopNav 时,没有子菜单的情况下,隐藏侧边栏 code
🐞 Bug Fixes
- 【修复】仅本人数据权限时,个人中心会报错的问题 #97
- 【修复】修改租户套餐的权限时,本地缓存刷新错误的问题 #99
- 【修复】删除菜单、角色时,本地缓存未刷新的问题 code
- 【修复】登录界面输入不存在的租户时,导致后续请求报错的问题 code
- 【修复】登录超时刷新页面时,跳转登录页面还提示重新登录问题 code
🔨 Dependency Upgrades
- 【升级】apollo-client from 1.7.0 to 1.9.2
- 【升级】guide from 4.1.0 to 5.1.0 :解决 Apollo 在 JDK 17 无法启动的问题
v1.6.0:支持 Flowable 工作流,发布开发文档
- 基于 Flowable 实现工作流,可见
yudao-module-bpm-impl-flowable
模块。
友情提示:原本 Activiti 实现的工作流,在
yudao-module-bpm-impl-activiti
模块,保持同步更新。
📈 Statistic
- 总代码行数:75008
- 源码代码行数:46416
- 注释行数:17132
- 单元测试用例数:341
⭐ New Features
- 【新增】
yudao-module-bpm-impl-flowable
模块,实现 Flowable 工作流 #88 - 【新增】《开发文档》的简介、功能列表、快速启动、技术选型、项目结构、新建模块、SaaS 多租户等小节完成,可访问 https://doc.iocoder.cn 地址
🐞 Bug Fixes
- 【修复】正常租户登陆后退出,切换到过期租户时造成的
tenant.ignore-urls
配置失效的问题,比如无法获取验证码图片造成无法登录 #91
🔨 Dependency Upgrades
暂无,计划升级 Spring Boot 2.6.X
v1.5.1:优化多租户功能,新增租户套餐,增强多租户底层封装
⚠️ Warning
暂无,主要优化多租户功能:
- 创建租户时,自动创建用户、角色等信息
- 支持租户套餐,自定义每个租户的菜单、操作、按钮等权限信息
📈 Statistic
- 总代码行数:71249
- 源码代码行数:43921
- 注释行数:16341
- 单元测试用例数:341
⭐ New Features
- 【新增】后端
yudao.tenant.enable
配置项,前端VUE_APP_TENANT_ENABLE
配置项,用于开关租户功能。 commit - 【优化】调整默认所有表开启多租户的特性,可通过
yudao.tenant.ignore-tables
配置项进行忽略,替代原本默认不开启的策略 commit - 【新增】通过
yudao.tenant.ignore-urls
配置忽略多租户的请求,例如说 ,例如说短信回调、支付回调等 Open API commit - 【新增】新增
@TenantIgnore
注解,标记指定方法,忽略多租户的自动过滤,适合实现跨租户的逻辑 commit - 【新增】租户套餐的管理,可配置每个租户的可使用的功能权限 commit
- 【优化】新建租户时,自动创建对应的管理员账号、角色等基础信息 commit
- 【优化】Redis 最低版本 5.0.0 检测,解决搭建环境过程中无法理解 XREADGROUP 指令的报错 commit
🐞 Bug Fixes
🔨 Dependency Upgrades
- 【升级】spring-boot from 2.5.9 to 2.5.10
- 【升级】mybatis-plus from 3.4.3.4 to 3.5.1
v1.5.0:优化前端界面,修复重构多 Maven Module 产生的 Bug
⚠️ Warning
- 修复各种多 Maven Module 重构带来的 Bug,感谢大量群友的 PR 支持!
- 跟进 ruoyi-vue 3.4.0 ~ 3.8.1 版本,感谢这么优秀的开源项目!
📈 Statistic
- 总代码行数:69299
- 源码代码行数:42687
- 注释行数:15888
- 单元测试用例数:278
⭐ New Features
- 【优化】使用 Lombok 简化 JsonUtils 工具类 #73
- 【新增】兼容 Node 16 版本,通过升级 BPMN-JS 相关库 commit
- 【新增】前端的表格右侧工具栏组件支持显隐列,具体可见【用户管理】功能 commit
- 【新增】前端的菜单导航显示风格 TopNav(false 为 左侧导航菜单,true 为顶部导航菜单),支持布局的保存与重置 commit1 commit2
- 【新增】前端的网页标题支持根据选择的菜单,动态展示标题 commit
- 【新增】字典标签样式回显,例如说开启的状态展示为 primary 蓝色,禁用的状态为 info 灰色 commit
- 【新增】前端的 iframe 组件,方便内嵌网页 commit
- 【新增】在基础设施-配置管理菜单,可通过修改
yudao.captcha.enable
配置项,动态修改登录是否需要验证码 commit - 【新增】在代码生成的预览界面,支持一键复制代码 commit
🐞 Bug Fixes
- 【修复】数据权限的
DEPT_AND_CHILD
范围时,未设置自己所在的部门 #72 - 【修复】Knife4j 接口文档 404 的问题,原因是
spring.mvc.static-path-pattern
配置项,影响了基础路径 commit - 【修复】修复文件访问地址错误 #68
- 【修复】工作流程发起以及审批异常,由
@NotEmpty
校验、和 Long 类型异常导致 #73 - 【修复】自定义 DefaultStreamMessageListenerContainerX 实现,解决 Redisson Stream 读取不到数据返回
null
导致 NPE 问题 commit - 【修复】部门更新后,本地缓存不刷新的问题 #77
- 【修复】获取拥有指定的角色用户时,返回错误的 id 编号 #79
🔨 Dependency Upgrades
*【修复】Maven 构建的一些错误提示 #78
v1.4.0:重构成多 Maven Module 的代码结构
⚠️ Warning
大版本重构,基于 Maven Module 的方式拆分多模块,希望大家多多提点建议!
📈 Statistic
- 总代码行数:69118
- 源码代码行数:42571
- 注释行数:15847
- 单元测试用例数:278
⭐ New Features
- 【重构】大模块按照多 Maven Module 的方式拆分,提升可维护性,为后续重构 onemall 提供基础
- 【移除】将
yudao-core-service
模块移除,替换成每个 Maven Module 暴露对应的yudao-module-***-api
模块 - 【新增】Spring Security 支持读取多种用户类型,从不同的数据库表,从而实现单项目提供管理后台、用户 APP 的不同 RESTful API 接口
- 【新增】Spring Security 新增 AuthorizeRequestsCustomizer 抽象类, 自定义每个 Maven Module 的 URL 的安全配置
- 【新增】代码生成器支持多 Maven Module 的方式生成代码,支持管理后台、用户 APP 两种场景的 RESTful API 的生成,支持 H2 SQL 脚本的生成
- 【新增】每次发布大版本时,将 yudao-ui-admin 编译后,放到 yudao-server 项目中,可以快速体验,无需搭建前端开发环境
- 【重构】将数据库文档调整到 tool 模块,更加明确
- 【优化】代码生成器的前端展示效果,例如说 Java 包路径合并
🐞 Bug Fixes
- 【修复】用户无权限访问 指定 API 时,未返回 FORBIDDEN 结果码
- 【修复】定时任务刷新本地缓存时,无租户上线文,导致查询报错
- 【修复】配置中心只加载了删除的配置
- 【修复】管理后台 UI 超时登录后,返回登陆界面时,由于未登陆加载不到信息,导致报错的问题
🔨 Dependency Upgrades
- 【升级】spring-boot from 2.4.12 to 2.5.9,最新的 Spring Boot 2.6.X 在等更流行一些,稳定第一
- 【升级】Spring Boot Admin from 2.3.2 to 2.6.2,提供更好的监控能力
- 【移除】Apache FreeMarker 依赖,修改 Screw 使用 Velocity 作为模板引擎
- 【升级】redisson from 3.16.6 to 3.16.8
v1.3.0:新增工作流的功能
⚠️ Warning
基于 Activiti 7.X 版本实现工作流功能,支持可配置的动态表单、自定义的业务表单。
下个版本会提供基于 Flowable 6.X 版本实现的工作流!
📈 Statistic
- 总代码行数:61594
- 源码代码行数:37931
- 注释行数:14225
- 单元测试用例数:278
⭐ New Features
- 【优化】引入 form generator 0.2.0 版本,并重构相关代码
- 【修改】修改部门负责人,从 String 字符串,调整成和后台用户的用户编号绑定
- 【新增】流程表单,支持动态进行表单的配置
- 【新增】工作组,用于支持指定工作组进行任务的审批
- 【新增】流程模型的管理,支持新增、导入、编辑、删除、发布流程模型
- 【新增】我的流程的管理,支持发起流程
- 【新增】待办任务的管理,支持任务的审批通过与不通过
- 【新增】已办任务的管理,支持详情的查看
- 【新增】任务分配规则,可指定角色、部门成员、部门负责人、用户、用户组、自定义脚本等维度,进行任务的审批
- 【新增】引入 bpmn-process-designer 0.0.1 版本,提供流程设计器的能力
- 【优化】新增 LambdaQueryWrapperX 类,改成使用 Lambda 的方式选择字段,避免手写导致字段不正确
🐞 Bug Fixes
- 【修复】biz-data-permission 组件的缓存机制,导致部分 SQL 未进行数据过滤
- 【修复】codegen 生成代码时,delete 接口补充 dataTypeClass 属性,避免 Swagger 打印 WARN 日志
🔨 Dependency Upgrades
- 【升级】redisson from 3.16.3 to 3.16.6,解决 Stream 在调试场景下会存在 NPE 的问题
- 【升级】spring-boot from 2.4.5 to 2.4.12,最新的 Spring Boot 2.6.X 在等更流行一些,稳定第一
- 【升级】druid from 1.2.4 to 1.2.8,提升数据库连接池的稳定性
- 【升级】dynamic-datasource from 3.3.2 to 3.5.0,修复动态数据源切换的问题
v1.2.0:新增多租户、数据权限的功能
⚠️ Warning
这个版本新增了多租户与数据权限两个重量级的功能,建议花点时间进行了解与学习。
⭐ New Features
-
【新增】多租户,支持 Web、Security、Job、MQ、Async、DB、Redis 组件
-
【新增】数据权限,内置基于部门过滤的规则
-
【新增】用户前台的昵称、头像的修改
-
【新增】用户前台的微信公众号、微信小程序的社交登陆的 API 接口
完整功能,需要等基于 Uniapp 实现的用户前台一起~ 努力 coding 中,胖友可以 star 持续关注一波!
-
【优化】管理后台的登陆成功后,LoginUser 使用统一方法补全信息
🐞 Bug Fixes
- 【修复】通知和字典查询接口的 @PreAuthorize 权限标识错误
- 【修复】代码生成的 Java 类路径缺少 modules 目录
- 【修复】代码生成的 Test 单元测试类的引入 Util 工具类的包路径不正确
🔨 Dependency Upgrades
- 【引入】mockito-inline 3.6.28:Mockito 提供对 final、static 的支持
v1.1.0:增加管理后台的企业微信、钉钉等社交登录
- 新增管理后台的企业微信、钉钉等社交登录
- 新增用户前台(例如说,用户使用的小程序)的后端项目
yudao-user-server
- 新增公共服务
yudao-core-service
项目,通过 Jar 包的方式,提供yudao-user-server
和yudao-admin-server
的共享逻辑的复用 - 新增用户前台的手机登录、验证码登录
- 修复管理后台的用户头像上传 404 的问题,原因是请求路径不对
- 修复用户导入失败的问题,原因是 Lombok 链式与 cglib 读取属性有冲突
- 修复阿里云短信发送失败的问题,原因是 Opentracing 依赖的版本太低,调整成 0.31.0
v1.0.0:初始版本
第一个版本,基于 RuoYi-Vue 重构,主要是三个方面:
- 代码的重构
- 技术选型的调整
- 后台功能的新增
因此,v1.0.0
的更新日志,分成这三方面来写。
代码的重构
- 调整整体代码结构,将多个 Maven Module 合并为单个,使用 Java package 进行拆分隔离,如 图 所示。原因是:随着业务逻辑的逐步复杂,多个 Maven Module 的依赖关系的管理,会是一个很大的问题。
- 拆分 framework 为多个 Maven Module,按照 Web、Security、MyBatis、Redis 等不同组件,进行封装与拓展。
- 基于 JUnit5 与 Mockito,实现单元测试,保证功能的正确性,与代码的可维护性。一直自动化,一直爽!
- 增加 SpringBoot 多环境的配置文件,提供完善的 deploy.sh 部署脚本,以及 Jenkins 部署教程。
- 优化 Spring Security 实现权限的代码,提升可读性和维护性。
- 增加本地缓存(菜单、角色、数据字典等等),提升性能。通过 Redis 订阅发布,实现缓存的实时刷新。
- 增加 VO 类,作为 API 接口的响应对象,避免数据库实体与前端的直接耦合。
- 优化 操作日志,支持读取 Swagger 作为日志的内容。
- 优化 定时任务,支持执行失败的重试,更完善的执行日志。
- 优化 codegen 代码生成器,在原先生成 Controller、Service、Mapper、数据库实体、Vue 代码的基础上,额外生成 VO、单元测试的代码。
- 调整文件改用 数据库 存储,而不是文件系统。原因是,项目在部署多个服务节点时,文件需要做同步。未来,会增加阿里云、七牛云等存储云服务。
- 去除原有数据库的连表查询、递归查询,改为单表操作的方式,多次读取 + 内存拼接。
- 优化 Java 代码的格式,解决 IDEA 代码告警的问题。
后台功能的新增
- 增加 API 访问与异常日志,方便排查线上 API 的问题。
- 增加 全局错误码,统一业务异常的管理。管理后台会支持错误码的管理,支持提示文案的可配置化。
- 增加 短信模块,提供短信渠道、短息模板、短信日志的管理,对接阿里云、云片等主流短信平台。
- 增加 Redis Key 的管理,知道项目中使用到的 Redis Key 的格式、数据类型、过期时间、描述等等信息。
技术选型的调整
- 将 Spring Boot 版本,从 2.1.3 升级到 2.4.5 最新。
- 增加 bom 文件,统一 Maven 的依赖管理。
- 引入 MyBatis Plus 组件,简化 MyBatis 使用,提升开发效率。
- 引入 Redisson 组件,作为 Redis 的客户端,提供更强大的 Redis 操作。
- 基于 Redis 实现分布式消息队列的功能。接入 Redis Pub/Sub 实现广播消费,接入 Redis Stream 实现集群消费。
- 去除 fastjson,统一使用 Jackson 作为 JSON 库,老爆安全漏洞的悲伤。
- 引入 MapStruct 组件,实现数据库实体与 VO 类之间的转换。
- 引入 Lombok 组件,生成 setter、getter 等常用方法,去除冗余代码。
- 引入 Spring Async 功能,实现异步任务。例如说,异步记录 API 访问日志、管理员操作日志等等。
- 魔改 Apollo 组件,接入本地数据库,实现内嵌的配置中心。通俗的说,我们可以将原本添加到
application.yaml
的配置项,改为添加到数据库中,项目启动会进行读取。 - 引入 Hutool 组件,去除大量重复的工具类,也避免原本 Util 存在一些 bug 的问题。
- 引入 Screw 组件,实现数据库文档的生成,虽然好像现在用途较少。
- 引入 EasyExcel,提供 Excel 的导入与导出的功能。
- 实现 Idempotent 组件,实现幂等的功能,可以用来解决 HTTP 重复请求的问题。
- 引入 Lock4J,实现声明式的分布式锁的功能。虽然 Redisson 内置了分布式锁的功能,但是通过注解声明一个
@Lock4j
注解的使用方式,更加便利,且满足绝大多数场景。 - 去除原有的服务监控,使用 SpringBoot Admin 替代,提供更完整的监控能力。
- 引入 SkyWalking 组件,实现链路追踪和日志服务的功能。通过链路追踪,我们可以看到一个 API 请求涉及到的 MySQL、Redis 等操作;通过日志服务,我们可以方便的看到每个服务实例的日志。
- 引入 Resilience4j 组件,实现限流、熔断等功能,保证服务的稳定性。
- 引入 Knife4j,美化接口文档。原本所有 API 接口文档是缺失的,已经全部补全,可见 http://api-dashboard.yudao.iocoder.cn/doc.html 地址。