2021-05-03 11:52:53 +08:00
## 计划中
* 邮件
* 钉钉、飞书等通知
2021-05-03 22:43:08 +08:00
2021-10-27 10:17:42 +08:00
## [v1.3.0] 待定
2021-05-03 22:43:08 +08:00
2021-05-03 11:52:53 +08:00
* 工作流
2021-10-28 00:51:57 +08:00
* 修改表单为外置表单
* 新增菜单流程申请
* 请假流程如下
1. 请假人 在流程申请, 点击请假申请,填写表单提交
2. 部门领导( 目前写死admin) 登陆,待办任务中 点击办理, 进行审批
3. hr 登陆( 用户名: hradmin 密码:123456) 待办任务中 点击办理, 进行审批
4. 请假人登陆, 待办任务中, 确认
5. 流程结束
* 请假查询中,可以查询本人的请假申请, 和进度
* 流程跟踪图 待实现
2021-05-03 22:43:08 +08:00
2021-10-27 10:17:42 +08:00
## [v1.2.0] 进行中
2021-10-18 09:41:38 +08:00
2021-10-27 10:17:42 +08:00
* 新增用户前台的昵称、头像的修改
2021-10-18 09:41:38 +08:00
2021-10-27 10:17:42 +08:00
TODO
2021-05-03 22:43:08 +08:00
2021-05-03 11:52:53 +08:00
* 支付
2021-10-10 21:57:18 +08:00
* 用户前台的社交登陆
2021-10-30 10:09:31 +08:00
* 用户前台的修改手机、修改密码、忘记密码
2021-10-09 08:24:17 +08:00
2021-10-27 10:17:42 +08:00
## [v1.1.0] 2021.10.25
2021-10-09 08:24:17 +08:00
* 新增管理后台的企业微信、钉钉等社交登录
* 新增用户前台(例如说,用户使用的小程序)的后端项目 `yudao-user-server`
2021-10-12 08:18:44 +08:00
* 新增公共服务 `yudao-core-service` 项目,通过 Jar 包的方式,提供 `yudao-user-server` 和 `yudao-admin-server` 的共享逻辑的复用
2021-10-27 12:32:57 +08:00
* 新增用户前台的手机登录、验证码登录
2021-10-12 08:18:44 +08:00
* 修复管理后台的用户头像上传 404 的问题,原因是请求路径不对
* 修复用户导入失败的问题,原因是 Lombok 链式与 cglib 读取属性有冲突
2021-10-12 09:24:58 +08:00
* 修复阿里云短信发送失败的问题,原因是 Opentracing 依赖的版本太低,调整成 0.31.0
2021-05-03 11:52:53 +08:00
## [v1.0.0] 2021.05.03
2021-05-03 22:43:08 +08:00
第一个版本,基于 [RuoYi-Vue ](https://gitee.com/y_project/RuoYi-Vue ) 重构,主要是三个方面:
* 代码的重构
* 技术选型的调整
* 后台功能的新增
因此,`v1.0.0` 的更新日志,分成这三方面来写。
### 代码的重构
* 调整整体代码结构,将多个 Maven Module 合并为单个,使用 Java package 进行拆分隔离,如 [图 ](https://static.iocoder.cn/ruoyi-vue-pro-modules.jpg ) 所示。原因是:随着业务逻辑的逐步复杂,多个 Maven Module 的依赖关系的管理,会是一个很大的问题。
2021-10-27 12:32:57 +08:00
* 拆分 [framework ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-framework ) 为多个 Maven Module, 按照 [Web ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-framework/yudao-spring-boot-starter-web )、[Security](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-framework/yudao-spring-boot-starter-security)、[MyBatis](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-framework/yudao-spring-boot-starter-mybatis)、[Redis](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-framework/yudao-spring-boot-starter-redis) 等不同组件,进行封装与拓展。
2021-05-03 22:43:08 +08:00
* 基于 [JUnit5 ](https://junit.org/junit5/ ) 与 [Mockito ](https://github.com/mockito/mockito ),实现单元测试,保证功能的正确性,与代码的可维护性。一直自动化,一直爽!
* 增加 SpringBoot 多环境的配置文件,提供完善的 [deploy.sh ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/bin/deploy.sh ) 部署脚本,以及 [Jenkins 部署教程 ](https://juejin.cn/post/6942098287533129765 )。
* 优化 [Spring Security ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-framework/yudao-spring-boot-starter-security ) 实现权限的代码,提升可读性和维护性。
* 增加本地缓存(菜单、角色、数据字典等等),提升性能。通过 Redis 订阅发布,实现缓存的实时刷新。
* 增加 [VO ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/auth/vo ) 类,作为 API 接口的响应对象,避免数据库实体与前端的直接耦合。
* 优化 [操作日志 ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog ),支持读取 Swagger 作为日志的内容。
* 优化 [定时任务 ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/src/main/java/cn/iocoder/dashboard/framework/quartz ),支持执行失败的重试,更完善的执行日志。
* 优化 [codegen ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen ) 代码生成器,在原先生成 Controller、Service、Mapper、数据库实体、Vue 代码的基础上,额外生成 VO、单元测试的代码。
* 调整文件改用 [数据库 ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/dataobject/file/InfFileDO.java ) 存储,而不是文件系统。原因是,项目在部署多个服务节点时,文件需要做同步。未来,会增加阿里云、七牛云等存储云服务。
* 去除原有数据库的连表查询、递归查询,改为单表操作的方式,多次读取 + 内存拼接。
* 优化 Java 代码的格式,解决 IDEA 代码告警的问题。
2021-05-03 11:52:53 +08:00
2021-05-03 22:43:08 +08:00
### 后台功能的新增
2021-05-03 11:52:53 +08:00
2021-05-03 22:43:08 +08:00
* 增加 API [访问 ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/dataobject/logger/InfApiAccessLogDO.java )与[异常](https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/dataobject/logger/InfApiErrorLogDO.java)日志,方便排查线上 API 的问题。
* 增加 [全局错误码 ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/errorcode/SysErrorCodeDO.java ),统一业务异常的管理。管理后台会支持错误码的管理,支持提示文案的可配置化。
* 增加 [短信模块 ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms ),提供短信渠道、短息模板、短信日志的管理,对接阿里云、云片等主流短信平台。
* 增加 Redis [Key ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/core/RedisKeyDefine.java ) 的管理,知道项目中使用到的 Redis Key 的格式、数据类型、过期时间、描述等等信息。
2021-05-03 11:52:53 +08:00
2021-05-03 22:43:08 +08:00
### 技术选型的调整
2021-05-03 11:52:53 +08:00
2021-05-03 22:43:08 +08:00
* 将 Spring Boot 版本,从 2.1.3 升级到 2.4.5 最新。
* 增加 [bom ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/yudao-dependencies/pom.xml ) 文件,统一 Maven 的依赖管理。
* 引入 [MyBatis Plus ](https://baomidou.com/ ) 组件,简化 MyBatis 使用,提升开发效率。
* 引入 [Redisson ](https://github.com/redisson/redisson ) 组件,作为 Redis 的客户端,提供更强大的 Redis 操作。
* 基于 Redis 实现分布式消息队列的功能。接入 Redis [Pub/Sub ](https://redis.io/topics/pubsub ) 实现广播消费,接入 Redis [Stream ](https://redis.io/topics/streams-intro ) 实现集群消费。
* 去除 [fastjson ](https://github.com/alibaba/fastjson ),统一使用 [Jackson ](https://www.jackson.com/ ) 作为 JSON 库,老爆安全漏洞的悲伤。
* 引入 [MapStruct ](https://mapstruct.org/ ) 组件,实现数据库实体与 VO 类之间的转换。
* 引入 [Lombok ](https://projectlombok.org/ ) 组件,生成 setter、getter 等常用方法,去除冗余代码。
* 引入 Spring [Async ](https://www.iocoder.cn/Spring-Boot/Async-Job/?oschina ) 功能,实现异步任务。例如说,异步记录 API 访问日志、管理员操作日志等等。
* 魔改 [Apollo ](https://github.com/ctripcorp/apollo ) 组件,接入本地数据库,实现内嵌的配置中心。通俗的说,我们可以将原本添加到 `application.yaml` 的配置项,改为添加到数据库中,项目启动会进行读取。
* 引入 [Hutool ](https://github.com/dromara/hutool ) 组件,去除大量重复的工具类,也避免原本 Util 存在一些 bug 的问题。
* 引入 [Screw ](https://github.com/pingfangushi/screw ) 组件,实现数据库文档的生成,虽然好像现在用途较少。
* 引入 [EasyExcel ](https://github.com/alibaba/easyexcel ),提供 Excel 的导入与导出的功能。
* 实现 [Idempotent ](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent ) 组件,实现幂等的功能,可以用来解决 HTTP 重复请求的问题。
* 引入 [Lock4J ](https://gitee.com/baomidou/lock4j ),实现声明式的分布式锁的功能。虽然 Redisson 内置了分布式锁的功能,但是通过注解声明一个 `@Lock4j` 注解的使用方式,更加便利,且满足绝大多数场景。
* 去除原有的服务监控,使用 [SpringBoot Admin ](https://github.com/codecentric/spring-boot-admin ) 替代,提供更完整的监控能力。
* 引入 [SkyWalking ](https://github.com/apache/skywalking ) 组件,实现链路追踪和日志服务的功能。通过链路追踪,我们可以看到一个 API 请求涉及到的 MySQL、Redis 等操作;通过日志服务,我们可以方便的看到每个服务实例的日志。
* 引入 [Resilience4j ](https://github.com/quartz-scheduler ) 组件,实现限流、熔断等功能,保证服务的稳定性。
2021-05-04 10:46:55 +08:00
* 引入 [Knife4j ](https://gitee.com/xiaoym/knife4j ),美化接口文档。原本所有 API 接口文档是缺失的,已经全部补全,可见 < http: // api-dashboard . yudao . iocoder . cn / doc . html > 地址。