# 更新日志

# Diboot v2.5.0 release notes (2022/04/02)

# 内核 diboot-core & core-starter v2.5.0

🎉 新增:

  • attachMore新增alias别名字段,避免出现多个同对象的冲突情况
  • attachMore接口增加attachMoreSecurityCheck安全检查方法
  • 新增FAIL_AUTHENTICATION认证失败的状态码
  • 字符串工具类S新增S.extractToken,从请求头中提取token

🍻 优化:

  • 重构数据权限的实现为基于字段名以便适配更多场景
  • 优化数据权限检查增加缓存,避免重复解析
  • 优化JsonResult、JSON、V工具类(thanks for @emptypoint)
  • BeanUtils.convertValueToFieldType支持反序列化转换
  • 支持中间表1-n非主键绑定
  • jacksonHttpMessageConverters配置优化及支持LocalDateTime
  • 优化updateTime为新建时数据库赋值更新时统一填充
  • 升级依赖版本:spring boot 2.6.5, mybatis-plus 3.5.1

🐛 修复:

  • Fix bug: 绑定缓存的Entity信息热更新后未同步刷新的问题

# IAM starter组件 diboot-IAM-starter v2.5.0

🎉 新增:

  • 系统配置功能
  • AuthService新增OAuth2SSOServiceImpl,支持通过OAuth2单点登录接入
  • IamSecurityUtils新增支持logout(user)支持强退指定用户

🍻 优化:

  • token检查安全加固,支持拦截非系统颁发的伪造token
  • 优化updateTime为新建时数据库赋值更新时统一填充
  • 用户体系相关表主键更改为雪花id,便于数据同步场景的处理。

🐛 修复:

  • Fix bug: 组织根id判断的 equals(0) 结果错误问题

# 文件starter组件 diboot-file-starter v2.5.0

🍻 优化:

  • ddl中创建时间数据类型由timestamp改为datetime

# 消息通知starter组件 diboot-message-starter v2.5.0

🍻 优化:

  • ddl中创建时间数据类型由timestamp改为datetime
  • 优化updateTime为新建时数据库赋值更新时统一填充

# 定时任务starter组件 diboot-scheduler-starter v2.5.0

🍻 优化:

  • 移除entity中的createByName字段,替换为VO中绑定字段
  • 拆分提取QuartzSchedulerService定义,便于用户扩展
  • 优化updateTime为新建时数据库赋值更新时统一填充

# 移动端starter组件 diboot-mobile-starter v2.5.0

🍻 优化:

  • ddl中日期时间数据类型由timestamp改为datetime

# 移动端前端 diboot-mobile-ui v2.5.0

🍻 优化:

  • 代码注释优化(thanks 小强君)
  • 移动端页面布局优化

🐛 修复:

  • fix: 修复列表数据获取后依然显示加载的问题

# PC前端 diboot-antd-admin v2.5.0

🎉 新增:

  • 支持多tab打开页面
  • 系统配置功能
  • 支持OAuth2 SSO单点登录登出默认实现

🍻 优化:

  • 页面紧凑化全局样式调整,更大化可显示区域
  • 移除refMultiForm
  • 优化定时任务的日志显示
  • 优化减少attachMore的获取请求
  • 默认端口统一为9528,避免与cloud服务端口冲突

🐛 修复:

  • Fix bug: 岗位表单再次打开时未清除的问题

# PC前端 diboot-element-admin v2.5.0

🎉 新增:

  • 系统配置功能
  • 支持OAuth2 SSO单点登录登出默认实现

🍻 优化:

  • 页面紧凑化全局样式调整,更大化可显示区域
  • 优化定时任务的日志显示
  • 优化减少attachMore的获取请求
  • 移除refMultiForm
  • Element-ui 升级至 2.15.7

# 开发工具 diboot-devtools v2.5.0

🎉 新增:

  • 新用户自动开通高级功能7天订阅体验 (废除引荐码)
  • 后端字段支持配置可选“乐观锁”生成@version注解
  • 搜索区的关联字段可切换“下拉” 或 “左树”展示形式,支持直接生成左树右列表
  • 新增outputPathBase配置项,支持将组件的基础代码生成到指定路径下

🍻 优化:

  • devtools 前端CRUD生成页面 默认加载最新的快照,并支持重置&暂存
  • 优化组件初始化检查逻辑,未生成时仅提示不再强制跳转,仅初次跳转

🐛 修复:

  • fix:配置了模块策略时VO绑定字段更新时生成的package路径错误的问题
  • fix:列名不填导致网络异常报错的问题

# 微服务版(企业版) diboot-cloud v2.5.0

🎉 新增:

  • auth-center统一认证中心 与 user-center 用户中心 从原auth-server模块剥离,便于后期维护
  • 支持SSO单点登录&统一退出(用于企业门户)
  • 支持Portal首页门户,支持client客户端应用单点接入管理(用于企业门户)
  • 支持多租户与其权限体系配置功能(用于SaaS系统)
  • 集成Skywalking,支持微服务性能监控、链路追踪、日志收集
  • 新增用户体系相关数据同步接口,用于子系统同步用户相关数据
  • 新增@InnerApi注解,用于服务间后端调用接口
  • 初始数据可执行脚本程序,一键初始化全部基础数据

🍻 优化:

  • 服务模块下的各环境配置文件统一优化
  • 模块拆分与命名统一优化
  • 登录方式统一调整为授权码模式
  • 优化updateTime为新建时数据库赋值更新时统一填充
  • 前端支持多tab页打开页面,及页面紧凑化样式优化
  • 升级diboot-core内核组件及 diboot-antd-admin 至 2.5.0
  • 升级依赖版本: spring-cloud 2021.0.1,spring-boot 2.6.5

# 工作流版(企业版)diboot-workflow v2.5.0

🎉 新增:

  • 表单设计器新增支持公式计算(数字计算、日期计算等)
  • 表单设计器新增自动编号组件
  • 表单设计器新增级联选择器组件
  • 表单数据CRUD动态管理功能
  • 表单输入框等支持从接口中设置默认值数据
  • 表单字段显示受控的支持
  • 新增流程发起暂存功能
  • 新增任务执行时指定下一节点执行人
  • 流程设计支持服务任务
  • 流程设计支持子流程
  • 流程设计支持信号事件配置
  • 流程设计多实例支持配置候选组

🍻 优化:

  • 优化任务处理界面,增大页面空间,优化UI,布局紧凑
  • 优化流程设计器页面,增大设计区空间,优化UI
  • 优化表单设计器页面,增大设计区空间,优化UI
  • 优化antd版本支持多tab页打开页面,及页面紧凑化样式优化
  • 优化andt切换至表单设计器、流程设计器自动收起侧边栏
  • 升级diboot基础组件及前端项目 至 2.5.0
  • 升级依赖版本: flowable 6.7.2

🐛 修复:

  • 修复部分列表排序异常
  • 修复管理员无权处理自己流程的问题
  • 修复流程开始节点跟流程调用节点,执行报错问题
  • 修复网关处驼峰转化到这变量无法填充问题
  • 修复并行中驳回导致并行其他节点处于待办状态(增加id配置约定_begin,_end)
  • 修复节点字段隐藏导致发起和任务处理时无法正常提交

# Diboot v2.4.0 release (2022/01/02)

# 内核 diboot-core & core-starter v2.4.0

🎉 新增:

  • 关联绑定执行切换为异步并发执行,进一步提升查询性能
  • @BindQuery注解支持添加多个组合为OR查询
  • @BindDict注解支持逗号拆分匹配

🍻 优化:

  • KeyValue替换为LabelValue避免使用时混淆
  • AttachMore支持远程过滤、及附加查询条件、支持跨表树形(异步)构建
  • 更新加密脱敏策略的默认实现为空实现
  • 数据权限相关类package移至data.access
  • 移除异步执行器TaskExecutor的bean name指定
  • V、S、D等系列工具类的优化 (thanks for @emptypoint)
  • 升级依赖版本:spring boot 2.6.2

🐛 修复:

  • Fix bug: 数据权限检查在某些情况下过滤条件重复的问题
  • Fix bug: DynamicMemoryCacheManager缓存过期判断问题

# 文件组件 diboot-file-starter v2.4.0

🎉 新增:

  • 新增LockedWriteHandler,支持导出excel的sheet页锁定某列
  • 新增FreezePaneWriteHandler,支持导出的excel动冻指定行与列以及自动冻结表头
  • 新增@ExcelComment,支持添加表头批注
  • 新增文件删除接口

🍻 优化:

  • Excel支持大数据量的分页导入分批写入
  • Excel上传的过程优化,包括支持类型推断、上传合法数据、下载错误数据、错误记录标注、异常提示等
  • @ExcelBindDict注解支持逗号拆分匹配
  • 升级依赖版本:easyexcel 3.0.5

🐛 修复:

  • Fix bug: 上传文件的备注信息未成功保存的问题

# IAM组件 diboot-IAM-starter v2.4.0

🍻 优化:

  • 组织相关列表页查询支持名称的模糊查询
  • Operation改为OperationCons,避免与swagger3注解冲突导致书写繁琐

🐛 修复:

  • Fix bug: 修正非mysql数据库脚本中的permission_id命名错误

# 消息通知组件 diboot-message-starter v2.4.0

🍻 优化:

  • 发送消息支持通过模板code查询模板
  • 支持自动填充创建人id值

# 定时任务组件 diboot-scheduler-starter v2.4.0

🍻 优化:

  • 优化定时任务初始化逻辑
  • 支持自动填充创建人id值

# 移动端组件 diboot-mobile-starter v2.4.0

🍻 优化:

  • 简化小程序、公众号使用配置
  • 支持IamMember和IamUser关联
  • 默认初始化移动端的登录账号密码 admin/123456
  • nickname改为可空,适配微信接口调整
  • 升级依赖微信开发包 weixin-java-* 至 4.2.0

# 移动端前端 diboot-mobile-ui v2.4.0

🎉 新增:

  • 支持用户名密码、微信公众号、小程序 登录的对接实现
  • 增加CRUD示例页面
  • 增加个人中心页面
  • 增加IamUser绑定微信登陆
  • 增加上传组件、选择器、checkbox、地区选择器、时间选择器、卡片、描述等组件 🍻 优化:
  • 系列页面及组件的多端适配调整优化
  • 升级uviewui至1.8.5、适配HBuilder新版本

# PC前端 diboot-antd-admin v2.4.0

🎉 新增:

  • 上传文件管理功能
  • echarts依赖

🍻 优化:

  • 调整attachMore相关的命名调用等
  • 下拉选项支持远程搜索、支持联动、支持跨表树形(异步)构建
  • excel导入导出优化,错误提示优化,支持导出错误数据等
  • 优化消息模板管理功能
  • 优化行编辑组件支持树

🐛 修复:

  • Fix bug: 校验或enhance方法抛出异常后,提交状态未消除的问题

# PC前端 diboot-element-admin v2.4.0

🎉 新增:

  • 上传文件管理功能
  • echarts依赖

🍻 优化:

  • 调整attachMore相关的命名调用等
  • 下拉选项支持远程搜索、支持联动、支持跨表树形(异步)构建
  • excel导入导出优化,错误提示优化,支持导出错误数据等
  • 优化消息模板管理功能
  • 优化行编辑组件支持树

🐛 修复:

  • Fix bug: 修复checkbox提交异常回显失败的问题
  • Fix bug: import组件remove方法无法调用的问题

# 工具 diboot-devtools v2.4.0

🎉 新增:

  • 新增移动端页面生成(基于 diboot-mobile-ui)
  • 面板组件支持常规统计图表的生成
  • 数据表管理新增“参考库建表”,支持常用的省市区建表及数据导入
  • 数据表管理新增“批量添加字段”功能
  • swagger接口文档支持切换为Springdoc(替代Springfox)
  • 快照实现优化(移除开关、自动保存)(thanks @梦想家)

🍻 优化:

  • PC端CRUD页面生成支持配置生成远程搜索及多选搜索
  • 前端生成相关的性能优化、组件分组与命名优化
  • 配置n-n关联时支持自定义中间表表名
  • 支持JDK17

🐛 修复:

  • fix Mysql5.7 0000-00-00日期报错问题

# 微服务版(企业版) diboot-cloud v2.4.0

🎉 新增:

  • 关联绑定支持跨服务绑定(分属于不同服务里的对象间可互相绑定)

🍻 优化:

  • KeyValue 替换为 LabelValue以避免使用时混淆
  • Excel上传的过程优化,包括支持类型推断、上传合法数据、下载错误数据、错误记录标注、异常提示等
  • @BindDict @ExelBindDict 注解支持逗号拆分匹配
  • Operation -> OperationCons 以避免与swagger注解冲突
  • 调整上传文件白名单与大小限制
  • 移除actuator依赖提升安全性
  • 升级diboot基础组件及 admin-ui 至 2.4.0
  • 升级依赖版本: spring-cloud 2021.0.0,spring-boot 2.6.2

# 工作流版(企业版)diboot-workflow v2.4.0

🎉 新增:

  • 上传文件管理功能

🍻 优化:

  • 流程图查看优化,基于bpmn.js渲染流程图替代flowable的图片流程图
  • 超大表格布局下的表单设计功能性能优化
  • 动态表单导入外部表后,允许更改表单名称与字段标签名
  • 升级diboot基础组件及 admin-ui 至 2.4.0
  • 升级依赖版本: flowable 6.7.1

# diboot v2.3.1 release

# 内核 diboot-core & core-starter v2.3.1

🎉 新增:

  • 新增@ProtectField注解实现字段加密与脱敏,支持安全等保
  • BindEntityList新增支持多个ID拼接存储的值进行拆解绑定
  • BindFieldList新增支持orderBy排序
  • 新增diboot.global.init-sql全局配置,关闭sql自动初始化检查
  • 新增InvalidUsageException用于提示错误的调用

🍻 优化:

  • 优化请求参数的合法检查、异常信息过滤等安全防护
  • 优化PagingJsonResult添加空构造方法,便于反序列化
  • 优化BaseService的N-N更新接口实现
  • 升级依赖版本:spring boot 2.5.5, mybatis-plus 3.4.3.4...

🐛 修复:

  • Fix bug: 优化select字段逻辑特定情况下误转换有AS别名字段的问题

# 文件组件 diboot-file-starter v2.3.1

🍻 优化:

  • 优化文件类型黑白名单及合法检查逻辑

# IAM组件 diboot-IAM-starter v2.3.1

🎉 新增:

  • 新增IamSecurityUtils.getCurrentUserId(),直接返回用户id

🍻 优化:

  • 优化异步日志保存类,指定异步executor,避免多异步执行器场景下冲突
  • 用户角色更新接口实现逻辑优化
  • 升级依赖版本: shiro1.8.0

🐛 修复:

  • Fix bug: 下载接口添加@log日志注解报异常问题

# 消息通知组件 diboot-message-starter v2.3.1

🍻 优化:

  • 邮件通道默认支持发送HTML格式邮件
  • 优化异步日志保存类,指定executor,避免多异步执行器场景下冲突
  • 优化message的模板id允许为空,支持不依赖模板的消息记录

# 定时任务组件 diboot-scheduler-starter v2.3.1

🍻 优化:

  • 新增createByName字段冗余,移除IAM依赖
  • 定时任务对象新增saveLog是否记录日志开关
  • 定时任务名称支持自定义及模糊查询
  • 优化异步日志保存类,指定executor,避免多异步执行器场景下冲突

# 移动端组件 diboot-mobile-starter (新组件) v2.3.1

🎉 🎉🎉:

  • 支持H5账号密码登录、微信小程序登录与注册、微信公众号登录与注册
  • 组件自动配置,iam-member移动端成员表自动初始化
  • 提供配套 diboot-mobile-ui (uni-app版) 前端框架

# 移动端前端 diboot-mobile-ui (新组件) v2.3.1

🎉 🎉🎉:

  • 基于uni-app基础轻量封装
  • 支持H5账号密码登录
  • 支持微信小程序登录与自动注册
  • 支持微信公众号登录与自动注册

# PC前端 diboot-antd-admin v2.3.1

🍻 优化:

  • 调整attachMore请求逻辑,兼容自定义attachMore和通用attachMore接口
  • 新增自定义开区间查询
  • 定时任务支持配置标题及日志开关
  • 新增可编辑表格
  • 调整文件上传大小为10M
  • 引入图片预览组件

🐛 修复:

  • Fix bug: 点击上传的文件项弹窗异常问题

# PC前端 diboot-element-admin v2.3.1

🍻 优化:

  • 调整attachMore请求逻辑,兼容自定义attachMore和通用attachMore接口
  • 新增自定义开区间查询
  • 定时任务支持配置标题及日志开关
  • 新增可编辑表格
  • 调整文件上传大小为10M

# 工具 diboot-devtools v2.3.1

🎉 新增:

  • devtools引荐活动,输入邀请码,双方各获一周前端生成使用期限
  • 前端生成新增支持关联场景的集成方案,使面板组件易于集成
  • 前端代码生成后自动格式化
  • 前端列表生成支持可选editable可编辑表格

🍻 优化:

  • 支持PostgreSQL 12+版本
  • N-N关联配置支持自定义属性名
  • 字段自动填充实现改为生成MP的MetaObjectHandler实现类

🐛 修复:

  • fix:1-n的详情页设置保存快照后恢复回显异常问题
  • fix:后端代码删除后,之前的关联设置未能正确回显的问题
  • fix:非id,uuid主键的已有表生成后端代码报错的问题

# 微服务 diboot-cloud v2.3.1

🎉 新增:

  • 用户列表新增excel上传下载功能

🍻 优化:

  • 配置简化优化,包路径优化,common基础组件改为starter,增加自动配置,业务模块无需再配置scan "com.diboot"
  • auth-server中的resource server配置移至yml中
  • scheduler定时任务新增saveLog是否记录日志开关,定时任务名称支持自定义及模糊查询
  • message模块邮件通道支持发送HTML格式邮件
  • 依赖升级

🐛 修复:

  • fix:图片文件下载的弹窗预览异常问题

# diboot v2.3.0 release

# diboot-core & core-starter

🎉 新增:

  • 新增redis及无状态相关可选自动配置实现
  • 新增支持“删除撤回”的后端接口
  • BindQuery支持配置Strategy空值处理策略

🍻 优化:

  • 优化关联绑定缓存及资源占用相关代码
  • 优化绑定VO及getViewObjectList等接口仅select必需字段
  • 优化支持含转义关键字的列绑定
  • 优化BaseCrudRestController中的泛型定义
  • 优化starter中的配置参数支持输入提示
  • 优化单元测试,添加默认配置文件等
  • 升级依赖版本:spring boot 2.5.3, mybatis-plus 3.4.3.1...

🐛 修复:

  • Fix bug: 特殊场景下的绑定结果中map为null报错的问题

# diboot-file-starter

🎉 新增:

  • 新增@ExcelOption注解,支持导入导出字典字段为excel“下拉选项”形式

🍻 优化:

  • 优化starter中的配置参数支持输入提示
  • 预览时页面显示的总数由分页数量优化为导入的总数量
  • 升级依赖版本

# diboot-IAM-starter

🎉 新增:

  • 新增EncryptCredential加密处理,支持登录加密场景
  • 新增redis及无状态相关自动配置实现
  • 新增配置参数支持便捷开启无状态

🍻 优化:

  • 优化starter中的配置参数支持输入提示
  • 移除IamUserService中的*SortByOrg接口
  • 升级依赖版本

🐛 修复:

  • Fix bug: getParentOrgIds接口某种数据场景下报NPE的问题

# diboot-message-starter

🍻 优化:

  • 邮件通道支持发送附件
  • 优化starter中的配置参数支持输入提示
  • 升级依赖版本

# diboot-scheduler-starter

🍻 优化:

  • 优化starter中的配置参数支持输入提示
  • 清理过期代码,升级依赖版本

# 前端 diboot-antd-admin

🍻 优化:

  • 删除操作增加支持撤回
  • 优化角色权限选择UI,叶子节点平铺
  • 优化文件上传下载组件细节
  • 优化全局样式定义
  • 优化搜索框支持可清除
  • 搜索框支持回车搜索和列表选择后搜索
  • 优化退出清空token相关逻辑

# 前端 diboot-element-admin

🍻 优化:

  • 更换富文本编辑器为tinymce
  • 删除增加支持撤回操作
  • 优化角色权限选择UI,叶子节点平铺
  • 优化文件上传下载组件细节
  • 优化全局样式定义
  • 优化搜索框支持可清除
  • 搜索框支持回车搜索和列表选择后搜索

# diboot-devtools

🎉 新增:

  • 数据表管理支持表前缀/模块及Entity类名自定义;
  • 数据表管理新增索引管理功能;
  • 数据表管理支持删除表、重命名表;
  • CRUD列表与表单页面支持树结构的生成;
  • CRUD前端生成配置支持保存快照,恢复快照;
  • 前端列表、详情、时间轴、导出等,可选ID字段;
  • 前端列表表格可对满足条件的字段进行缩略展示相关配置和生成;
  • 支持线上订阅

🍻 优化:

  • 页面系列样式及交互优化;
  • 前端生成的代码格式优化;
  • 面板列表倒序排列;
  • 优化:生成后端代码后,应用不重启,在设计器中也能够读取到对应的关联字段;

🐛 修复:

  • fix:多个面板容器存在时,之前的面板预览样式丢失的问题;
  • fix:偶发的关联显示字段不显示或不能设置的问题;
  • fix:被关联表在ER图中,不显示字典关联的字典数据列表的问题;
  • fix:系列具有列表配置功能的前端组件在读取历史配置信息后不能正确回显的问题;

# diboot v2.2.1

# diboot-core & diboot-core-starter

🎉 新增:

  • @BindQuery注解新增strategy参数,支持空值处理策略(默认忽略空字符串)
  • 基于Spring的内存缓存实现(BaseCacheManager),并优化绑定缓存实现
  • SqlFileInitializer新增executeMultipleUpdateSqlsWithTransaction,支持事务的多SQL更新
  • BaseService新增IService的getMap(queryWrapper)等接口
  • @CollectThisApi注解,自动提取注解对应的rest接口
  • 工具类 S.splitToList,D.formatDurationLabel等

🍻 优化:

  • 关联绑定的实现中字段名列名的转换由规则转换改为精确转换
  • 支持BindField&BindDict组合使用
  • BeanUtils.convertValueToFieldType支持LocalDateTime转换

🐛修复:

  • 修复@BindQuery查询不支持自定义逻辑删除字段的问题
  • 升级依赖jar至最新(spring boot 2.4.5, mybatis-plus 3.4.2等)

# diboot-IAM starter

🎉 新增:

  • 权限纠错功能,支持上线前自动检查配置的错误接口
  • IamOrgService新增getParentOrgIds接口,支持获取部门的上级ids

🍻 优化:

  • @log日志记录支持POST等非url参数

# diboot-file starter

🎉 新增:

  • 静态方法excel文件流读取
  • FileStorageService.upload(inputStream, fileName)接口

🍻 优化:

  • 最小粒度重写替换excel上传本地存储

# diboot-scheduler starter

🎉 新增:

  • diboot.component.scheduler.enable参数,以支持开发环境暂停定时任务启动

🍻 优化:

  • BindJob替换为CollectThisJob

# diboot-message starter(新组件)

🎉 Starter启动自动安装依赖的数据表 🎉 支持自定义扩展消息发送,默认实现mail提供简单邮件发送 🎉 支持@TemplateVariable注解实现自定义模版变量和自动提取 🎉 启用devtools,自动生成初始样例controller代码到本地

# diboot devtools

🎉 新增:

  • 非订阅用户可见前端生成页面(不可提交)
  • 消息模块初始化代码生成

🍻 优化:

  • cloud环境下支持生成模块下的CommonController

# 前端项目 diboot-antd-admin

🎉 新增:

  • 消息模版功能
  • 消息发送记录功能
  • 权限纠错功能,上线前自动检查配置的错误接口
  • dashboard新增注意事项
  • tinymce富文本编辑器

🍻 优化:

  • 系列代码与依赖升级,与ant design pro3.0.1版本一致
  • 新建按钮权限配置,增加自定义权限code输入方式
  • 文件上传图片显示大小一致
  • 权限配置页面添加“按钮”的操作交互更直观

# 前端项目 diboot-element-admin

🎉 新增:

  • 消息模版功能
  • 消息发送记录功能
  • 权限纠错功能,上线前自动检查配置的错误接口
  • dashboard新增注意事项

🍻 优化:

  • 文件上传图片显示大小一致
  • 权限配置页面添加“按钮”的操作交互更直观

# diboot v2.2.0

# diboot-core v2.2.0 & diboot-core-starter v2.2.0

🎉新增:

  • BatchUpdateEntitiesDTO,用于批量更新操作
  • HttpHelper、AnnotationUtils工具类
  • JsonResult增加JsonResultFilter返回值过滤器接口,用于统一过滤返回给前端的字段

🔨增强:

  • 数据字典添加子项排序功能
  • Dictionary字典新增app_module字段,支持多模块复用场景
  • BindQuery兼容支持IService接口的查询
  • BindQuery比对条件增加ENDSWITH,支持“以?结尾”的LIKE查询
  • 扩展D日期工具类,增加中英文月份星期等方法

🍻优化:

  • 默认json转换改为jackson,及JSON工具类适配jackson优化
  • Cons类增加常用状态枚举:ENABLE_STATUS、RESULT_STATUS
  • core中剥离字典表依赖,字典绑定接口化,字典service实现类和mapper移至core-starter,以适配cloud及缓存等场景
  • BaseController中buildQueryWrapper接口拆分为buildQueryWrapperByDTO和buildQueryWrapperByParams,避免歧义
  • BaseEntity中的获取主键值的方法getPrimaryKey重命名为getPrimaryKeyVal
  • BeanUtils.convertToStringKeyObjectMap支持lambda参数
  • BaseService公开IService的query、update等取wrapper接口
  • SqlHandler改为SqlFileInitializer并从core-starter移至core

🐛修复:

  • where条件为空时,数据权限拦截报NPE的问题
  • 角色权限表单不设置权限时提交出错的问题
  • 升级依赖支持spring-boot 2.4.1,mybatis-plus 3.4.1
  • 移除fastjson依赖,commons-io依赖

# diboot-IAM starter v2.2.0

🎉新增:

  • 新增预置 组织机构、岗位、人员管理功能基础代码
  • 新增无状态的实现StatelessJwtAuthFilter,以兼容session及无状态两种方式

🔨增强:

  • IamOperationLog、IamResourcePermission新增app_module字段,支持多模块复用场景

🍻优化:

  • IAM基础表重命名: iam_frontend_permission 改成 iam_resource_permission,iam_role_permission 改成 iam_role_resource
  • DefaultJwtRealm依赖的service改为懒加载,避免循环依赖冲突
  • 去掉cacheManager配置项,改用直接重写@bean的方式配置缓存实现类
  • shiro初始化相关优化
  • 组件名 iam-base 改为iam,升级shiro starter至1.7.0
  • 移除自动升级逻辑、移除ShiroProxyConfig类

# diboot-file starter v2.2.0

🔨增强:

  • UploadFile新增app_module字段,支持多模块复用场景
  • 文件存储接口化,以支持灵活替换不同的文件存储形式

🍻优化:

  • 字典导入,当字典字段允许空时,excel未填写不报错。非字典字段导入的判空提示兼容@NotNull注解。
  • 上传文件大小配置参数兼容支持: spring.servlet.multipart.max-request-size
  • 升级easy-excel至2.2.7

# diboot-scheduler starter v2.2.0

🎉新增:

  • 新增定时任务组件starter,自动初始化
  • 封装Quartz定时任务统一管理及日志的更优实践
  • @BindJob注解提供定时任务定义,自动收集提取定时任务实例及参数,便于前端管理

# diboot-devtools starter v2.2.0

🎉新增:

  • 面板设计器支持"时间轴"组件生成
  • 面板设计器支持"通用表单"组件生成
  • 面板设计器支持 "Tabs 标签栏"生成,可自定义标签栏,也可与数据字段关联
  • 表单类型新增"二维码",支持二维码的显示和下载
  • 表单字段支持自定义按钮及其处理方法,如弹框选择数据
  • 支持对表单中的字段是否支持更新的配置生成
  • 在面板选择的时候,可进行面板的新建与编辑
  • 对定时任务组件的初始代码controller代码生成
  • 支持diboot-cloud微服务项目下的生成

🔨增强:

  • 详情页设计中添加多个从对象列表,可配置tab显示
  • 1-1,n-1关联字段属性名支持编辑
  • 生成的关联对象下拉框组件支持可搜索
  • 表单页 可配置 字段是否可修改,适配有些字段新增后不可改的场景

🍻优化:

  • 空样例值的字段更改为非空时,先填充默认值,再执行更新,避免报错无法更新
  • 不生成表单页时,同步提示确认是否取消“删除”
  • 1-1,n-1绑定的时候,更新代码的逻辑优化
  • 页面、面板配置区域可展开为更宽的宽度
  • 前端事件编排能力优化
  • 前端页面、面板设计器系列功能性改进、交互优化

🐛修复:

  • 前端upload组件,增加multiple的props属性。修复limitCount大于1,只能文件单个文件的问题
  • 自动添加的页面权限中,更改功能中缺少获取详情接口的问题
  • Boolean类型和日期类型的字段生成的代码,非空校验和回显的问题。
  • 解决有依赖open-feign环境下的冲突问题
  • 移除disabled是否启用参数,非开发环境下依赖devtools将报错提示。

# diboot-antd-admin v2.2.0 & diboot-element-admin v2.2.0 前端项目

🎉新增:

  • IAM相关: 组织机构管理、岗位管理、人员管理功能
  • 数据字典添加排序功能
  • scheduler: 定时任务管理

🍻优化:

  • 对于不可更改和不可删除的数据字典进行更改与删除的限制
  • 菜单权限页面改名为资源权限页面,对应的表由iam_frontend_permission改为iam_resource_permission
  • 数据字典列表不显示其子项的系列操作按钮
  • 数据字典列表中显示出子项的编码值

🐛修复:

  • 角色权限表单中不设置权限时,表单不能提交的问题

# diboot v2.1.2

# diboot-core v2.1.2 && diboot-core-starter v2.1.2

  • 🔨增强 @Bind*关联绑定注解,condition支持两个字段的关联,如"this.user_type=type AND this.user_id=id"
  • 🔨增强 @Bind关联绑定支持嵌套绑定(设置deepBind=true),如被绑定对象为VO(仍然有@Bind关联绑定注解),则再执行VO对象中的关联绑定
  • 🔨增强 @BindEntityList注解新增orderBy属性,配置被绑定实体集合的排序
  • 🍻优化: jdbc url读取支持自定义url参数,以支持shardingsphere等个性化配置
  • 🍻优化: buildTree支持自定义parentId属性名、children属性名
  • 🍻优化:JsonResult增加泛型参数,以适配微服务等场景
  • 🍻优化:diboot-core去掉starter依赖,改为依赖spring-framework,以避免微服务等场景的依赖冲突
  • 🍻优化: BaseService添加mybatis-plus的query(),lambdaQuery(),update(),lambdaUpdate()构建接口
  • 🍻优化: 增加DataAccessControlInteceptor重构数据权限拦截实现
  • 🍻优化: Dictionary字典增加tenantId字段冗余,以支持多租户场景
  • 🍻优化: is_deleted逻辑删除字段添加select = false,从select中剔除
  • 🍻starter 新增升级逻辑
  • 🍻升级依赖组件: Spring framework 5.2.9,Spring Boot 2.3.4,Mybatis-Plus 3.4.0,fastjson 1.2.74
  • 🍻该版本相关文档优化
  • 🐛修复: @Bind*关联绑定注解condition条件中的LIKE条件解析错误问题
  • 🐛修复: @BindQuery中Comparison.IN对于List类型字段查询未生效的问题
  • 🐛修复: DictionaryVO中的关联注解错误

# IAM-base-starter v2.1.2

  • 🎉新增:@Log注解+操作日志功能后端实现
  • 🍻重命名CacheManager实例名为shiroCacheManager,避免跟其他CacheManager冲突
  • 🍻实体增加tenantId字段冗余,以支持多租户场景
  • 🍻starter 新增升级逻辑
  • 🐛修复: url mapping注解为空时,提取注解权限报NPE的问题
  • 升级依赖组件: okhttp 4.9.0

# diboot-file-starter v2.1.2

  • 🍻实体增加tenantId字段冗余,以支持多租户场景
  • 🍻starter 新增升级逻辑
  • 升级依赖组件: okhttp 4.9.0

# diboot-devtools-starter v2.1.2

  • 🎉新增:用于组件集成的前端设计与生成功能(devtools企业版)
  • 🎉新增:组件编排功能(devtools企业版)
  • 🎉新增:组件布局功能(devtools企业版)
  • 🎉新增:列表页支持列表的多选与批量删除功能的生成
  • 🍻优化:增大BigDecimal的默认长度
  • 🍻优化:生成前端代码的格式系列优化
  • 🍻优化:支持IDEA社区版下运行(移除scope:provided即可)
  • 🍻优化:对前端页面生成功能的系列优化
  • 🐛修复: devtools一张表中有2个字段关联同一张表(或同表的同一字段)时,生成的对象属性名/asName属性名重复
  • 🐛修复: devtools图片上传改了context-path后,生成的url路径还是/api
  • 🐛修复: 系统自动生成的put权限没有/{id}的问题
  • 🐛修复: 重新生成子路由页面后,父路由的菜单图标丢失的问题
  • 🐛修复: 生成具有图片的element多栏详情页时,图片超出当前列的边界的问题

# diboot v2.1.1

# diboot-core v2.1.1

  • 🔨增强@BindQuery注解,支持跨表字段的动态Join查询

  • 🎉新增@BindFieldList注解,用于绑定某个字段的集合

  • 🎉新增@DataAccessCheckpoint注解,以支持数据权限相关处理

  • 🎉新增@Accept(name)注解,支持非同名字段间的值拷贝

  • 🎉新增:V.equals()对Map类型的比较

  • 🍻优化BindQuery注解,支持BETWEEN绑定List类型对象

  • 🍻优化: 统一注入request到BaseController中,移除方法中的request参数

  • 🍻优化:BaseCrudRestController,类定义中移除VO泛型参数,改为调用时指定VO类,以适配多个VO

  • 🍻优化:批量大小BatchSize支持可配置

  • 🍻优化: @Bind注解的中间表查询解析支持首选调用对应Mapper执行,无Mapper再用JDBC

  • 🍻优化:动态关联的逻辑删除字段的处理

  • 🍻优化:主键不为Long时,查询列表默认是用createTime倒序排序

  • 🍻BaseServiceImpl增加beforeCreateEntity,用以Insert前字段值的填充

  • 🍻BaseExtEntity添加Deprecated注解,不再推荐继承

  • 🍻fastjson默认配置增加条件初始化,首选以用户自定义配置为准

  • 🍻fastjson默认配置移除日期格式的全局配置,以字段指定为准

  • 🐛修复: ContextHelper缓存支持刷新,以解决启用热更新时报错的问题

  • 升级依赖组件: Spring Boot 2.3.1,Mybatis-Plus 3.3.2,fastjson 1.2.72

  • 文档优化完善

# diboot-devtools v2.1.1

  • 🎉新增:前端界面设计器,可以根据自己需求定制化地配置前端页面功能项
  • 🎉新增:前端代码生成功能,根据设计器配置结果,可生成带关联的CRUD、导入导出等完整功能
  • 🎉新增:前端代码生成后对前端项目的路由进行自动配置
  • 🎉新增:前端代码生成后对前端项目菜单、按钮权限的自动配置
  • 🎉新增:组件初始化页面,由之前版本的随项目启动自动生成基础代码改为手动点击按钮生成
  • 🎉新增:diboot.devtools.output-path配置项,以简化devtools对于生成后端代码路径的配置
  • 🎉新增:在设置关联字段后,可以设置在当前表中绑定关联的实体
  • 🎉新增:多种与前端相结合的表单类型
  • 🍻优化:优化后端代码生成,支持DTO,ListVO,DetailVO相关生成及绑定
  • 🍻优化:n-n关联的中间表后端代码生成,默认中间表不再生成VO, DTO, Controller相关代码
  • 🍻优化:字段关联配置以点击弹出配置面板呈现
  • 🍻优化:数据结构管理页面,左侧表列表栏可折叠
  • 🍻优化:支持在中文路径、带有空格路径下的项目中启动
  • 🍻优化:提升devtool启动速度

# IAM-base v2.1.1

  • 🎉新增:BaseLoginUser用以可登录的用户类继承,并支持附加扩展对象
  • 🎉新增:配置参数 diboot.iam.enable-permission-check,结合anno-urls=/**配置,可忽略权限检查,便于开发环境调试
  • 🍻更新:shiro版本至最新,优化shiro相关自动配置
  • 🍻去除extdata相关继承,移除BeanUtils

# diboot-file v2.1.1

  • 🎉新增@ExcelBindField注解,用于excel导入导出自动转化name-id
  • 🎉新增@ExcelBindDict注解,用于excel导入导出自动转化字典name-value
  • 🎉新增文件上传策略,适配前端项目diboot-**-admin
  • 🍻升级依赖组件版本至当前最新:easyexcel、okhttp

# 两套前端项目

# diboot v2.0.5

# diboot-core 基础内核 v2.0.5:

  • 🐛修复: 中间表关联时,如果附加目标表字段的扩展条件,条件未生效的bug,如: this.id=user_role.user_id AND user_role.role_id=id AND code='ADMIN'

  • 🐛修复: PostgreSQL数据库下,对于注解绑定关联的扩展条件,可能存在的数据类型不匹配的问题

  • 🐛修复: SQLServer批量插入未返回entity ID且报错的问题

  • 🐛修复: Oracle大写问题导致某些情况下无法绑定有附加条件的注解

  • ✨n-n关联的中间表查询中支持动态按需添加中间表的is_deleted=0逻辑删除条件

  • ✨jdbc url参数支持从多数据源配置中的主数据源参数中读取

  • BindAnnotationGroupCache更名为ParserCache,并增加其他解析过程中的缓存

  • BusinessException增加单String参数,指定错误信息

  • 🎉JsonResult增加Status状态码对应的静态初始化方法,更便于书写,如:JsonResult.OK(data)

  • 🎉BaseService增加用于批量增删改1对多关联数据的系列接口: create/update/deleteEntityAndRelatedEntities

  • 🎉BaseService增加检测唯一性的接口exists(IGetter<T> getterFn, Object value)

  • 🎉V增加validateBean方法,用于手动校验基于validator注解的bean校验

  • 🎉RelationsBinder增加单个entity/vo参数的绑定接口

  • 🎉SqlExecutor中增加validateQuery方法,用于starter执行验证性SQL

  • 🎉BaseCrudController中增加afterDeleted()方法,用于删除后的扩展处理

# diboot-devtools 开发助理 v2.0.5:

  • 🔨生成本地Controller的Base类改为默认BaseCustomCrudController,不再继承父类url mapping,支持通过配置启用父类url继承

  • 🔨生成entity的字段时自动检测父类BaseCustomEntity的属性,父类中存在的,不再重复生成定义

  • 🔨非空字段的样例数据不再强制填写,未填写时可直接提交,由devtools自动生成

  • 🔨关联字段的可选字段限定与当前column同类型字段(默认选中id/uuid),as字段显示String类型字段,使选择更方便

  • 🎨BaseExtCustomEntity被删除后不再重新生成,以支持不需要extdata的场景

  • 🎨Date日期类型,字段加上注解 @JSONField(format = ""),以兼容fastjson全局配置覆盖format的问题)

  • 🎉字段定义数据类型增加BigDecimal类型

  • 🎉基于diboot-iam组件,初始生成iam相关的controller至本地

  • 🎉基于diboot-file组件,初始生成UploadFileController至本地

  • 💄配置页面UI样式优化

# diboot-iam-base 身份认证基础组件 v2.0.5:

  • 🎉RBAC角色权限模型 + JWT的认证授权 实现,支持刷新token

  • 🎉简化的BindPermission注解,支持兼容shiro的简化权限绑定与自动鉴权

  • 🎉自动提取需要鉴权的后端接口, 借助前端系统权限设置页面,智能、快速地配置前后端菜单、按钮与权限关联

  • 🎉支持灵活的扩展能力(扩展多种登录方式、灵活替换用户实体类、自定义缓存等)

  • 🎉Starter启动自动安装依赖的数据表

  • 🎉加密方式更改为MD5+盐

  • 🎉登录页增加验证码支持

  • 🎉权限支持修改后立即生效

  • 🎉启用devtools,自动生成IAM相关基础代码到本地

# diboot-file 文件处理组件 v2.0.5:

  • ✨基于EasyExcel轻量封装

  • 🎉封装常用的文件本地存储、上传下载、图片压缩水印等常用处理

  • 🎉Starter启动自动安装依赖的数据表

  • 🎉支持Java标准注解的校验

  • 🎉支持@BindDict注解实现字典name-value转换

  • 🎉提供完善的校验错误提示

  • 🎉启用devtools,自动生成初始样例controller代码到本地

# 两套前端项目

# diboot v2.0.4

# diboot-core 基础内核 v2.0.4

  • PagingJsonResult增加IPage参数构造方法,支持Ipage转换为PagingJsonResult();
  • BaseCrudRestController增加afterDeleted(),用于删除后的处理
  • BaseService,BaseCrudRestController增加批量删除多个id的接口
  • BaseService增加判断是否存在的exists接口
  • DictionaryService.getKeyValueList()查询结果按sort_id排序
  • DictionaryService增加接口,支持同时添加/删除父子节点
  • 默认加入lombok注解支持常用bean的链式调用
  • BeanUtils增加distinctByKey(list, key)方法,支持对List按指定字段去重
  • /list查询,url中的空字符串参数不再参与构建QueryWrapper
  • BaseConfig增加取不到返回指定默认值的方法
  • EntityList更名为ValidList并简化使用调用,用于校验List
  • 构建工具由gradle切换到maven
  • 优化完善example示例代码
  • Fix bug: 通过Spring获取service实例如果是代理的情况下,解析不到泛型Entity的问题
  • Fix bug: 修复关联数据被物理删除后,关联绑定报错的问题

# diboot-devtools 开发助理 v2.0.4

  • 生成的Entity、VO中增加 @Accessors(chain = true) Lombok注解,默认支持链式调用
  • Swagger @API注解优化:value改为tags: @API(tags="") ?
  • 优化devtools启动成功的打印信息便于找到
  • 初始化自动生成身份认证组件IAM-base所需的controller代码
  • 依赖了diboot-iam-base组件,则生成Controller中添加BindPermission注解
  • Fix bug: PostgreSQL配置未指定schema时,提取schema错误的问题
  • Fix bug: deleted, createTime字段不存在时生成的带注解属性的类型错误的问题

# diboot-iam-base v2.0.4-RC2

  • 开箱即用的RBAC角色权限模型
  • 基于JWT的认证授权,支持申请token、刷新token
  • 简化的BindPermission注解,支持菜单+操作两级权限控制
  • 支持BindPermission注解自动收集并更新至数据表
  • 预置用户名密码登录(密码带盐加密), 并支持多种登录方式扩展
  • 预置默认用户实体,并支持灵活替换用户类型
  • 默认启用内存缓存,并支持自定义缓存实现类

# diboot v2.0.3

# Diboot-core 基础内核:

  • BindEntity、BindEntityList注解支持非Entity类型的对象属性绑定。示例: @BindEntity(…) XxVo xxVo; @BindEntityList(…) List xxVoList;
  • BindQuery基于request参数去绑定请求属性,Entity中含默认值的自带属性(除is_deleted外)不再参与转换QueryWrapper。
  • PropertiesUtils改为使用environment获取配置参数,以兼容yml配置。
  • 数据校验BindingResult转由DefaultExceptionHandler中统一处理,移除Controller中的BindingResult参数
  • 优化pagination分页默认的排序字段为id(与create_time等效,查询效率更高),不存在id字段的查询清除默认排序
  • JsonResult参数优化,去掉变参参数
  • diboot-component-*组件包装成starter并移至diboot-v2-starter项目下
  • 默认依赖SpringBoot版本升级为2.2.1.RELEASE
  • Fix bug: 修复pagination分页有升降序混合时的排序字段顺序错误的问题

# Diboot-devtools 开发助理:

  • devtools初始化时自动生成各层Base父类、DictionaryController类、ExceptionHandler类等便于扩展的初始代码。
  • 表关联设置新增/更新时,devtools自动创建/更新索引,并记录索引SQL
  • 表关联配置与代码生成的操作逻辑优化,支持配置生成绑定全类型注解(@BindField @BindEntity @BindEntityList)
  • 关联字段改名时,自动同步修改生成的VO中的注解绑定的属性名&字段名
  • 字段名填写完后自动检查是否为数据库关键字&保留字,如是则提示
  • 支持配置是否生成Mapper XML文件,默认true生成
  • 增加新建表数据库表表名大小写混用的情况的校验提示
  • parent_id的表自身关联生成的显示名属性命名优化为 parent前缀,如parentName,便于理解
  • Fix bug: 用yml配置文件生成表关联时出现读不到application.properties文件异常
  • Fix bug: jdbc url中参数值出现/时提取数据库名错误的问题

# diboot v2.0.3-RC2

# diboot-core 内核:

  • 优化BaseCrudRestController,引入Entity,VO泛型,用于简化子类代码。
  • 优化帮助文档(增加介绍视频等)
  • 优化starter中的初始化SQL相关实现代码

# diboot-devtools开发助理:

  • 默认生成BaseCrudMappingRestController,绑定RequestMapping及Swagger,简化子类代码。
  • 增加diboot.devtools.base-controller-class-name配置项,以支持自定义BaseController类,生成的Controller代码将继承自该类
  • 增加对无is_deleted、create_time字段的数据表的生成注解支持
  • 在新增中间表关联后,devtools生成的中间表可以马上显示在列表中
  • 优化完善生成的Swagger注解
  • devtools接口url增加版本号,用于支持多版本
  • Fix bug:
    • contextPath为/的情况下devtools报错
    • 解决新增和更新数据字典子项存在的bug问题
    • 解决多个字段选择相同的数据字典,生成或更新代码后,vo代码中存在重复属性的问题

# diboot-component-*:

  • 将diboot-component-* 组件包装为对应的starter

# diboot v2.0.3-RC1

# diboot-core:

  • 数据字典初始化SQL脚本转移至core-starter,由core-starter自动安装
  • 依赖组件版本升级(Spring boot 2.1.8,Mybatis-plus 3.2.0,Fastjson 1.2.60)
  • 关联绑定支持ORACLE大写字段名
  • S.toLowerCaseCamel(),S.toSnakeCase()优化,兼容Oracle列名与字段名转换
  • 数据字典字典重命名为: description,is_deletable,is_editable 以避免Oracle关键字冲突
  • 增加添加层级数据字典的接口
  • 绑定时的cloneEntity方法移至BeanUtils,便于他处调用
  • V.isNumber更改为判断所有数字类型(含整数,浮点数,负数)
  • 移除BeanUtils中不生效的Lambda缓存
  • Fix bug: 绑定注解的condition中有等于字符串附加条件时执行异常的问题

# diboot-devtools开发助理:

  • starter自动安装初始化
  • 支持MySQL,MariaDB,ORACLE,SQLServer, PostgreSQL数据库
  • UI操作数据结构与关联关系维护
  • 数据结构联动代码,支持代码生成与同步更新本地代码
  • 支持关联关系图
  • 支持添加数据字典
  • 支持Lombok等参数配置开关

# diboot-shiro, diboot-component-*

  • shiro权限基础组件优化
  • 增加文件组件,消息组件

# diboot v2.0.2

# diboot-core v2.0.2

  • 增加了BindEntity注解,用于支持Entity/DTO 自动转换为QueryWrapper对象:
    • Entity或者DTO中非等于的比较,添加注解如@BindQuery(comparison = Comparison.LIKE) 进行声明;
    • Controller里调用super.buildQueryWrapper(entityOrDto) 或者直接调用 QueryBuilder.toQueryWrapper(entityOrDto) 即可进行转换。
  • 优化Pagination对象属性定义,支持在Controller中自动绑定参数值
  • 移除了diboot-core中非必须的依赖
  • 修复BeanUtils.buildTree()中抓取属性值id的问题

# diboot v2.0.1

# diboot-core v2.0.1

New features:

  • @BindDict注解 自动绑定数据字典(枚举值)的显示值Label
  • @BindField注解 自动绑定其他表的字段
  • @BindEntity注解 自动绑定关联表Entity
  • @BindEntityList注解 自动绑定关联表Entity集合
  • 通用Controller简单包装(BaseController, BaseCrudRestController)
  • 通用Service简单包装 (BaseService)
  • 提供分页的简单包装 Pagination
  • 关联绑定支持MybatisPlus的IService的所有实现类相关Entity的绑定,不再强制要求继承diboot的BaseService
  • 绑定调用类优化并更名为RelationsBinder
  • Entity/EntityList对象绑定时使用克隆,避免Entity对象引用导致非预期的修改结果
  • RequestTimeFilter请求响应时间过滤器,记录耗时操作
  • BeanUtils、S、D、V、Encryptor等常用的工具类
  • 增加默认的异常处理类DefaultExceptionHandler
  • 升级依赖SpringBoot至2.1.6,Mybatis-plus至3.1.2