ruoyi-vue-pro/更新日志.md

14 KiB
Raw Permalink Blame History

计划中

  • 邮件
  • 钉钉、飞书等通知
  • Vue3 支持

📝 TODO

  • 支付

  • 升级 mybatis plus 最新版本,优化多租户的实现

  • RedisKeyDefine 的发现机制

[v.1.5.0] 计划 2022.02.28 发布

  • 基于 flowable 实现工作流
  • 基于 uniapp 实现小程序,完成用户中心相关的功能(社交登陆、修改密码、忘记密码、修改个人信息等等功能)

[v1.4.0] 2022.02.04

⚠️ 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] 2022.01.24

⚠️ 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 日志
  • 【修复】Swagger 文档由于写错 @ApiImplicitParam 注解的 name 和 dataTypeClass 属性,导致文档生成失败

🔨 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.28Mockito 提供对 final、static 的支持

[v1.1.0] 2021.10.25

  • 新增管理后台的企业微信、钉钉等社交登录
  • 新增用户前台(例如说,用户使用的小程序)的后端项目 yudao-user-server
  • 新增公共服务 yudao-core-service 项目,通过 Jar 包的方式,提供 yudao-user-serveryudao-admin-server 的共享逻辑的复用
  • 新增用户前台的手机登录、验证码登录
  • 修复管理后台的用户头像上传 404 的问题,原因是请求路径不对
  • 修复用户导入失败的问题,原因是 Lombok 链式与 cglib 读取属性有冲突
  • 修复阿里云短信发送失败的问题,原因是 Opentracing 依赖的版本太低,调整成 0.31.0

[v1.0.0] 2021.05.03

第一个版本,基于 RuoYi-Vue 重构,主要是三个方面:

  • 代码的重构
  • 技术选型的调整
  • 后台功能的新增

因此,v1.0.0 的更新日志,分成这三方面来写。

代码的重构

  • 调整整体代码结构,将多个 Maven Module 合并为单个,使用 Java package 进行拆分隔离,如 所示。原因是:随着业务逻辑的逐步复杂,多个 Maven Module 的依赖关系的管理,会是一个很大的问题。
  • 拆分 framework 为多个 Maven Module按照 WebSecurityMyBatisRedis 等不同组件,进行封装与拓展。
  • 基于 JUnit5Mockito,实现单元测试,保证功能的正确性,与代码的可维护性。一直自动化,一直爽!
  • 增加 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 地址。