Ruoyi-Plus-Uniapp 新特性
分支说明
- master: 默认分支,多租户分支
- workflow: 多租户工作流分支
- single:移除所有多租户逻辑的分支
核心理念
- 代码即文档 - 通过规范化命名和完善注释实现代码自解释
- 全栈统一 - 前后端命名规范、类型定义、接口管理保持一致
- 开发友好 - 注重开发体验和可维护性,减少冗余代码
一、后端重构优化
1.1 基础架构重构
四层架构设计
- 采用标准四层架构:Controller → Service → DAO → Mapper,职责清晰分离
- Service层:不继承任何基类,直接实现业务接口,保持轻量和灵活
- DAO层:独立数据访问层,继承
IBaseDao<Entity>接口,实现buildQueryWrapper()方法构建查询条件 - Mapper层:只继承
BaseMapper<Entity>,专注SQL执行 - 数据类型规范:DAO和Mapper层只返回Entity类型,Service层使用
MapstructUtils.convert()进行BO/VO转换
查询增强组件
- 增强 MyBatis-Plus 查询功能,Query增强为PlusQuery,LambdaQuery增强为PlusLambdaQuery 支持聚合函数及条件自动处理
- 查询条件统一在DAO层通过
buildQueryWrapper(Bo)方法构建,自动处理null值判断 - 支持精确匹配、模糊查询、时间范围查询等多种查询方式的灵活组合
响应结果封装
- 重构 TableDataInfo 为 PageResult,统一返回数据为
R<PageResult<T>>里面包含分页信息(是否最后一页 页码 每页条数等)和数据列表 - 完善 R 类注释,统一 API 响应结果封装,优化成功和失败消息返回方法
- 增加安全获取 data 方法和标准 API 响应结构
1.2 配置与环境管理
应用配置重构
- 增加前后端唯一标识符应用ID,做好不同项目间的数据隔离
- 重命名 RuoYiConfig 为 AppConfig,更新相关配置项
- 增加core核心包相关工具类功能
1.3 数据库与字典系统
数据库结构调整
- 重构数据库表命名规范,统一使用 sys_ 前缀 修改 gen_table 为 sys_gen_table,gen_table_column 为 sys_gen_table_column
- 逻辑删除统一修改为 isDeleted
- 性别字典修改:女0 男1 未知2,sys_user_sex 改为 sys_user_gender
- 修改字典数据主键 dict_code 改为 dict_data_id
字典系统重构
- 系统中统一采用 1=是/正面状态,0=否/负面状态 的约定
- 重构字典类型和字典值,字典数据默认值统一为 1,否为 0
- 重构字典枚举命名以 Dict 开头,字典枚举统一放在core/dict包下 提高代码可发现性
- 优化字典实现类
1.4 租户系统完善
租户功能增强
- 统一获取租户 ID 方案,提供兜底租户 ID,确保租户 ID 不为空 可以随时开启或者关闭租户功能不产生脏数据
- OSS 存储加上租户 ID 前缀作为目录区分
- 新增租户需要同步角色,增加角色同步到租户功能 因为开发过程角色也属于业务的一部分 实现同步功能可以最小化改动来供新租户使用
1.5 权限与安全系统
权限标识符规范化
- 菜单权限标识符为:模块:表:标识符 格式
- 如 system:user:view/query/add/update/delete/import/export
- 代码生成默认生成权限控制部分 打开注释即可启用
认证系统优化
- 登录实现迁移到系统模块 auth 包下,保持 admin 模块简洁
- 重命名授权类型和设备类型为认证方式和应用类型
- 移除客户端管理,减少冗余代码,精简实现 主要分为两个客户端即可 由枚举UserType进行控制管理
- 增加miniapp小程序模块,增加mp模块,实现对小程序(包括微信小程序的完整实现,以及QQ 支付宝 京东 抖音等各类小程序的扩展实现和预留实现)以及微信公众号的完整实现 开箱即用
- 实现小程序 公众号多个配置同时使用以及租户间的数据隔离
1.6 文件管理系统
OSS 系统增强
- 重构 OSS 模块 抽离出接口层OssStrategy,可通过不同实现类实现不同的存储方式 如S3、本地文件等
- 重构 OSS 模块同时支持 S3 和本地文件上传
- 增加转换远程图片到 OSS 的接口实现 增加OSS文件的目录管理功能,支持多租户隔离 实现素材管理
- 头像存储统一修改为字符串存储链接
- 增加图片和文件前端/移动端直传功能,一键即可开启直传,支持多种云服务
1.7 WebSocket 通讯模块重构
WebSocket 多租户与多连接支持
- 完整多租户隔离:实现三级映射结构(tenantId -> userId -> sessionId -> WebSocketSession),确保不同租户间的连接和消息完全隔离
- 多设备多连接支持:同一用户可在多个设备/浏览器标签页建立多个连接,避免互相挤号,所有连接独立管理
- 智能消息分发:向用户发送消息时自动推送到用户的所有活跃连接,确保多设备同步接收
- 租户权限控制:
- 超级管理员:可查看和管理所有租户的WebSocket连接
- 租户管理员:只能查看和管理本租户的WebSocket连接
- 普通用户:只能使用自己的WebSocket连接
- 跨租户消息功能:超级管理员可发送跨租户消息和全局广播消息
- 连接管理 API:提供完整的WebSocket管理控制器,支持连接统计、在线用户查询、消息推送、连接断开等管理功能
- 多连接会话管理:精确的会话生命周期管理,支持单个连接的精确移除,不影响用户的其他连接
- 多格式心跳检测:支持简单字符串、JSON 格式等多种心跳消息格式
- 分布式消息分发:基于 Redis 发布订阅的跨服务实例消息分发,支持租户上下文动态切换
1.8 系统功能模块
序列化模块增强和重构
- 重构序列化模块名称为serialmap,因为只涉及序列化,不涉及反序列化,因为不叫translation,命名上不够恰当
- 调整序列化注解为SerialMap,调整注解属性更符合规范 converter转换器 source来源 param额外参数 entityClass数据源实体类 targetField 目标映射字段
- 增加序列化注解实现FieldMapImpl,实现通用字典映射转换器,同时实现缓存,减少后续序列化实现的重复样板代码
监控与日志
- monitor 监控增加通知功能
- 完善操作日志、登录日志等页面优化
- 重构日志注解的使用和类的命名 Log注解属性使用operType操作类型,指定字典DictOperType为操作类型枚举
- 抽离登录日志发布者到 log 模块为 LoginLogPublisher 实现日志发布异步保存操作
代码生成增强
- 完善代码生成界面使用体验,固定 tab 页签和弹窗高度
- 实现主子表代码生成功能
- 增加并实现代码生成表字段的默认值功能
- 处理 Excel 导入更新实现和参数传递
1.9 国际化系统
消息国际化
- 增删改查等消息实现后端返回国际化 默认情况还是由前端处理国际化
- 通过接口常量实现管理和分类,去除 code 硬编码
- 菜单国际化后端返回时增加国际化键名计算
- 增加I18nMessageInterceptor国际化消息拦截器,简化国际化消息处理,无需花括号包围
1.10 高级功能模块
支付系统
- 集成 wxjava 微信支付 SDK 和 支付宝 SDK,实现完整的支付解决方案
- 统一支付服务接口,支持微信支付、支付宝、余额支付等多种支付方式
- 支付回调统一处理,根据不同支付方式自动路由到对应处理器
- 支付模块支持租户数据隔离和智能刷新数据,自动重试请求支付状态
业务扩展
- 完成公告功能的可用性,实现精准推送和查阅
- 实现已读未读统计等功能
1.11 部署与运维
Docker 部署
- 优化 docker-compose 相关编排名称 统一相关命名
- 在主应用添加远程调试参数,支持本地 idea 远程调试
- 完美适配 Docker容器化部署
轻松开发和维护
- 全部代码注释完善,使用 Javadoc 规范
- 统一使用 Lombok 注解简化代码,减少样板代码
- 统一包管理和依赖管理规范 提供统一的包使用规范 提供业务模块供开发者直接用于开发业务逻辑
- 重构代码生成器,支持主子表生成,优化代码生成体验,接口路径、方法名、变量名等语义化且唯一,快速定位
二、前端重构优化
2.1 架构重构
目录结构调整
- 重构为 composables 目录(组合式),lang 改为 locales
- store 目录统一命名为 stores,提升语义化 layout命名为layouts directives 命名为 directives
- 路由模块路由进行归类和分拆管理
- 调整前端项目结构与后端结构基本统一
组件命名规范化
- 全局统一组件命名,不使用 index,提升开发体验
- 自定义组件统一使用首字母大写驼峰命名,ElementPlus 组件保持连字符
- 所有页面组件改为首字母小写的驼峰,后端菜单进行适配
类型重构
- 全局统一类型命名规范,与后端保持一致 减少使用认知负担 如Bo Vo等
- 请求响应类型统一使用
R<T>,减少冗余代码 ,分页类型统一使用R<PageResult<T>>,减少冗余代码
2.2 工具类与组合函数函数重构
Utils部分逻辑 重构为 Composables组合函数 发挥vue3的组合式API优势
- 移除 utils/auth.ts,封装 useToken 到 composables
- 移除 utils/permission.ts,改为 composables/useAuth 组合函数
- 移除 utils/theme.ts,改为 composables/useTheme 组合函数
- 移除 utils/i18n,改为 composables/useI18n,全局使用自定义 i18n
- 移除animate.ts,改为 composables/useAnimation 组合函数
- 移除dict.ts,改为 composables/useDict 组合函数
- 移除request.ts,改为 composables/useHttp 组合函数 使用http.get, http.post 等方法进行请求
- 移除sse.ts,改为 composables/useSSE 组合函数
- 移除websocket.ts,改为 composables/useWS 组合函数
- 移除i18n.ts,改为 composables/useI18n 组合函数
- 移除auth.ts,改为 composables/useToken 组合函数
- 增加useTableHeight 组合函数,优化表格高度计算
- 增加useSelection 组合函数,处理表格全选和取消全选
- 增加useDownload 组合函数,处理文件下载逻辑
工具类功能增强
- 增加boolean.ts,封装布尔值相关方法
- 增加date.ts,封装日期相关方法
- 增加cache.ts,封装缓存相关方法
- 增加format.ts,封装格式化相关方法
- 增加function.ts,封装函数相关方法 如防抖、节流 拷贝等
- 增加modal.ts,封装模态框相关方法 统一调用为show开头的前缀如showMsgSuccess、showMsgError等 showConfirm、showPrompt等
- 增加object.ts,封装对象相关方法
- 增加string.ts,封装字符串相关方法
- 增加tab.ts,封装标签页导航操作相关工具函数
- 抽离树形相关方法为tree.ts,封装树形结构相关方法
- 增加class.ts,封装 DOM 操作相关方法
- 增加to.ts,封装安全异步执行工具函数集 减少try catch 的使用
- 增加validators.ts,封装表单验证相关方法
- 完善 utils/crypto.ts,进行方法扩充,jsencrypt 改名为 rsa
2.3 样式系统重构
样式系统优化
- 为全部样式文件添加完善备注
- 重构分类简化所有样式文件
- 完善 UnoCSS 配置进行增强:颜色配置、间距变量、字体配置等
布局组件重构
- 重构 Layout 页面相关组件,统一取消 index 命名
- 调整 ParentView 组件到 layout,移动 TopNav 组件到 navbar 目录
- 重新调整归类Layout层组件目录结构,调整样式控制实现
- 优化导航栏、页签效果,调整鼠标滚轮滚动效果
2.4 表单与表格增强
表单组件系统
- 增加各类表单组件: AFormCascader 级联选择 AFormCheckbox 复选框 AFormDate 日期选择 AFormEditor 富文本编辑器 富文本组件接入基于WangEditor AFormFileUpload 文件上传 AFormlmgUpload 图片上传 AFormlnput 输入框 AFormRadio 单选框 AFormSelect 下拉选择 AFormSwitch 开关选择 AFormTreeSelect 树形选择
表格功能增强
- 移除vxetable,vxetable 组件重构为 el-table 组件,实现跨页选择功能
- 封装 useSelection 组合函数处理表格全选和取消全选
- 增加 useTableHeight 优化表格显示效果,让分页组件保持固定位置
2.5 权限指令增强
权限自定义指令
- 完善重构权限自定义指令,支持延迟加载组件
- 扩充指令:permi、role、admin、superadmin、permiAll、roleAll 等
- 移除全局 proxy 代理使用,进行对应代码适配转换
2.6 媒体库功能
AOssMediaManager 组件
- 添加媒体库功能组件 AOssMediaManager 增强图片上传
- 增加替换功能,优化图片管理体验
- 增加目录管理功能,支持多租户隔离,可以对图片进行分类管理,可以对图片进行批量操作 批量移动等(移动只是修改文件对应的所在目录id)
- 配合后端实现前端文件直传功能 一个属性即可配置开启
2.7 iconify引入图标功能重构菜单图标
图标系统重构
- 引入 iconify 图标库,支持多种图标格式
- 重构菜单图标使用 iconify 图标,实现图标库管理功能,方便进行维护和扩展
- 优化图标选择组件,支持多种图标格式和自定义图标
- 图标组件重构为Icon,支持图标名称类型提示,支持海量图标库
2.8 国际化系统
前端国际化
- 增强useI18n 组合函数,增强t函数,实现智能提示
- 前端实现菜单国际化,增加统一键名
- 引入 ElementPlus 国际化资源,优化字体大小选择组件
2.9 性能优化
实时通信
- SSE 连接增加重连退避策略,支持手动重连和状态监控
- 实现动态退避策略的 WebSocket 连接管理,支持多租户上下文和多连接场景
构建优化
- 优化 Vite 配置
代码优化
- 全框架取消使用 reactive 函数,统一使用 ref 函数
- 移除原生滚动,改用 el-scrollbar 滚动,优化滚动体验
- 优化重构 tree 页面模板
- 重构代码生成页面结构和实现,代码职责更加清晰
三、移动端重构优化
3.1 UniApp 框架重构
框架改造
- 基于 unibest 框架进行重量级重构改造,移除不必要模块
- 增加应用 ID 配置管理,模仿前端实现
- 实现基础的 tabbar 页面,不使用原生 tabbar,使用自定义组件实现,可以更灵活地控制样式和功能
- 增加分包管理,可以实现管理员端和代码示例等的分包加载,优化小程序加载速度
- 插件重构,单一原则,分拆插件,提高复用性,增加静态目录插件,实现静态目录文件类型自动生成
目录结构重构
- 重新调整插件目录结构,分拆插件分别维护
- 复用前端 composables 目录下的部分组合函数函数,优化移动端开发体验
- 封装 pinia 的相关模块:dict、tabbar、user 等
3.2 网络请求与认证
HTTP 请求封装
- 封装移动端 useHttp,实现移动端 API 加密解密
- 统一请求拦截和响应处理机制
小程序登录认证
- 实现微信小程序登录和公众号登录,模块化管理
- 实现 unionid/手机号关联绑定用户账号唯一性
- 用户手机实现无账户则自动注册
- 实现登录页面的自动登录开关,以及多种登录方式的支持
- 实现手机号注册和登录功能,支持验证码登录和密码登录
3.3 组合式函数与工具类
Composables 组合函数函数
- 复用前端 useDict、useAuth 等组合函数函数
- 增加移动端 usePayment 组合函数,封装支付相关逻辑
- 增加 useScroll 组合函数,封装滚动相关逻辑
- 增加 useTheme 组合函数,封装主题相关逻辑
- 移动端 useWebSocket 组合函数,支持多租户WebSocket连接管理
工具类函数增强
- 复用前端的 utils 工具类库部分功能:boolean.ts、date.ts、format.ts、function.ts、object.ts、string.ts 等
- 新增 tenant.ts,封装租户相关逻辑
- 新增 validators.ts,封装移动端表单验证相关方法
3.4 组件库重构
WotUI 组件重构
- 重构 wot-ui 组件库所有组件,使用最新的 vue3 和 typescript 语法进行重构
- 提高代码可读性、自行维护性和可扩展性
- 重构单位统一为 rpx,移动端获得更好体验
- 增加 wd-paging 组件,实现下滑分页加载功能
- 增加wd-rich-text富文本组件,实现富文本读写
图标组件系统
- 增加 wd-iconify 组件,支持 iconify 图标库
- 增加 wd-icon 组件,支持 iconify 图标库和 json 图标
- 重构了图标库近 400 个图标,包含线条图标和实心图标两大类
- 可以方便在示例代码中搜索使用
3.5 小程序功能增强
多平台支持
- 支持微信小程序完整功能实现
- 预留 QQ、支付宝、京东、抖音等各类小程序的扩展实现
- 统一小程序 API 调用接口
示例代码系统
- 增加完善和齐全 wd 组件示例代码,可以直接看到效果
- 效果判断统一有代码查看和复制按钮,方便开发者查看和使用
- 提供丰富的组件使用示例和最佳实践
四、最新版本更新 (2024年8.4-9.22)
4.1 后端核心升级
依赖版本升级
- Spring Boot: 3.2.8 → 3.2.10,提升性能与安全性
- MyBatis-Plus: 3.5.7 → 3.5.8,优化SQL执行效率
- Sa-Token: 1.38.0 → 1.39.0,增强权限管理功能
- EasyExcel: 3.3.4 → 4.0.3,提升Excel处理性能
- Redisson: 3.33.0 → 3.36.0,优化分布式缓存
- Hutool: 5.8.29 → 5.8.31,修复Jakarta兼容性问题
安全性大幅提升
- 全局XSS过滤:默认开启XSS过滤,提高系统安全性
- 异常信息净化:去除返回前端异常信息中的HTML标签
- 依赖漏洞修复:修复Scala库版本漏洞,限制高风险依赖版本
- 权限验证增强:优化登录状态判断和权限校验逻辑
租户系统完善
- 租户缓存优化:修复一级缓存key未区分租户的问题
- 租户套餐管理:增加重名校验,优化套餐管理逻辑
- 字典同步功能:新增同步租户字典功能,支持租户间数据同步
- 租户控制开关:租户相关controller支持动态开关控制
4.2 支付系统重大升级 💳
微信支付 v2/v3 智能切换
- 自动版本识别 ⭐:根据配置自动选择 v2 或 v3 API,无需手动指定
- v2 模式:仅配置
mchKey时自动使用 - v3 模式:配置
apiV3Key+certSerialNo+ 证书时自动使用
- v2 模式:仅配置
- 双版本并存:支持不同appid使用不同API版本,灵活配置
- 策略模式实现:
WxPayV2Strategy和WxPayV3Strategy独立实现,架构清晰
微信支付 v3 公钥模式 ⭐ 新特性
- 智能公钥识别:自动识别平台证书或公钥文件
- 文件名检测:包含
public、pubkey、pub_key、publickey关键词 - 内容检测:
-----BEGIN PUBLIC KEY-----标识
- 文件名检测:包含
- 轻量级部署:公钥文件体积小,适合容器化部署
- 配置简化:支持直接配置公钥内容,无需文件管理
- 自动模式切换:
WxPayConfigBuilder自动配置公钥模式参数
证书配置灵活性增强 🔧
- 多种配置方式:
- ✅ 文件路径模式:支持
classpath:和文件系统路径 - ✅ PEM 内容模式:直接配置证书内容,无需文件
- ✅ 环境分离:开发/生产证书自动切换
- ✅ 文件路径模式:支持
- 智能内容识别:自动判断是文件路径还是 PEM 内容
- 证书序列号支持:完整支持 v3 证书序列号配置
支付配置优化
- 表单字段优化:优化支付配置表单字段与提示信息,增加 v3 公钥模式说明
- 租户隔离实现:支付配置实现完整的租户数据隔离,配置ID格式:
{tenantId}:{paymentMethod}:{appid} - 动态配置加载:平台配置支持启用禁用的动态加载更新
- 回调处理增强:统一支付回调处理,支持多种支付方式和 v3 签名验证
- 订单金额计算:支持微信支付v3回调及自动计算订单金额
4.3 移动端WD UI组件库全面升级
核心组件增强
- wd-textarea:支持自动高度最大行数限制和固定行数显示
- wd-button:默认防冒泡处理,新增隐形按钮功能
- wd-upload:支持预览图大小配置,实现文件直传功能
- wd-paging:支持计算属性动态参数,新增前置后置插槽
- wd-navbar:支持状态栏字体颜色、标题加粗等个性化配置
新增功能组件
- wd-voice-recorder:录音组件,支持音频录制功能
- 富文本编辑器:增强富文本组件,支持图片视频上传
- 文件直传:一键开启直传功能,支持阿里云、腾讯云等多平台
- 小程序更新检测:自动检测小程序版本更新功能
交互体验优化
- wd-search:支持圆角大小设置,提升视觉效果
- wd-cell:支持右侧flex值配置,灵活控制布局宽度
- wd-action-sheet:支持DictItem数组传递,简化字典选择
- wd-tabbar:默认开启底部安全区域适配,避免遮挡问题
4.4 前端界面现代化升级
组件系统重构
- AModal组件:替换el-dialog,支持响应式识别和弹窗抽屉切换
- 图标库双引擎:同时支持iconfont和iconify图标库,无感切换使用
- Element Plus现代化:优化组件样式,实现现代化界面设计
- 可拖拽面板:新增AResizablePanels组件,支持面板拖拽调整
布局主题优化
- 背景色层级系统:引入多层级背景色系统,优化视觉层次
- 悬停效果统一:统一导航栏工具项悬停样式,提升交互一致性
- 侧边栏优化:调整Logo组件对齐方式,优化边框和阴影效果
- 打印功能:新增系统打印功能,支持页面内容打印
4.5 代码生成器智能化
模板生成优化
- 实体类路径调整:entity包调整到domain包,符合DDD设计理念
- 分组验证支持:添加分组验证和OSS翻译自动适配
- 查看逻辑生成:自动生成ADetailDialog组件和查看功能
- 主子表增强:完善主子表代码生成,支持复杂业务场景
开发体验提升
- Vue目录统一:生成目录改为src,可直接复制到前端项目
- 权限注解生成:默认生成权限控制注解,打开注释即可启用
- Excel处理:优化Excel导入导出代码生成逻辑
4.6 媒体库系统
图片处理引擎
- 多图合成GIF:支持多张图片合成动态GIF图像
- 复杂海报生成:提供强大的海报设计和生成功能
- 二维码生成:内置二维码生成工具,支持自定义样式
- 字体颜色工具:丰富的字体和颜色处理工具类
文件管理增强
- 目录管理:支持文件目录分类管理,提升文件组织能力
- 租户隔离:完整的多租户文件隔离机制
- 直传功能:前端/移动端文件直传,减少服务器压力
4.7 数据库结构优化
表结构调整
- 部门区划码:部门表增加area_code字段,支持省市区区划
- 表名规范化:products→product,orders→order,避免复数命名
- 商品字段增强:新增商品编码、原价、折扣等字段
- 订单状态字典:完善订单状态枚举,包含支付、发货、完成等
SQL文件管理
- 分类存储:数据库脚本分为sys、job、app三个部分
- 新增表脚本:每种数据库提供new.sql用于新业务表管理
4.9 国际化系统增强
多语言支持
- 移动端国际化重构:支持英语、阿拉伯语、德语等多种语言
- 语言选择器:新增自定义语言选择器组件
- 动态语言切换:支持语言缓存和动态加载
- HTTP请求适配:自动在请求头中添加当前语言信息
4.10 部署运维优化
容器化部署增强
- 环境变量占位符:支持${变量名:默认值}语法,避免敏感信息硬编码
- 远程调试支持:Docker容器支持本地IDE远程调试
- 编排优化:优化docker-compose配置,简化部署流程
- 文件上传路径:Docker构建增加文件上传路径配置
开发体验提升
- Claude Code集成:提供AI辅助开发的智能上下文支持
- ESLint优化:完善代码规范检查,提升代码质量
- 文档完善:更新开发指南和使用文档
五、架构重构与AI集成 (2024年10月)
5.1 四层架构重构 🏗️
Controller-Service-DAO-Mapper分层重构
- Service层解耦:移除对
IBaseService和BaseServiceImpl的继承,Service层更加轻量和灵活 - DAO层重构:新增独立 DAO 层,负责查询条件构建和数据访问
- DAO接口继承
IBaseDao<Entity>,提供统一的数据访问接口 - DAO实现继承
BaseDaoImpl<Mapper, Entity>,封装常用数据操作
- DAO接口继承
- Mapper层规范:Mapper仅继承
BaseMapper<Entity>,专注SQL执行 - 职责明确分离:
- Controller层:参数验证、响应包装
- Service层:业务逻辑处理、类型转换(Entity ↔ Bo/Vo)
- DAO层:查询条件构建、数据访问
- Mapper层:纯SQL执行
数据类型规范化
- Entity类型统一:DAO层和Mapper层只返回Entity类型,不允许返回Vo/Bo
- 类型转换规范:Service层使用
MapstructUtils.convert()进行类型转换 - 分页转换优化:使用
PageResult.convert(Class)简单转换,PageResult.map(Function)处理复杂业务逻辑
查询条件构建
- buildQueryWrapper方法:所有查询条件统一在DAO层通过
buildQueryWrapper(Bo)构建 - PlusLambdaQuery增强:自动处理null值,无需手动判空
- PlusQuery支持:支持表别名和字符串列名,适用复杂联表查询
5.2 LangChain4j AI集成 🤖
AI能力引入
- LangChain4j框架集成:引入企业级LLM应用开发框架
- 多模型支持:统一接口支持OpenAI、Azure OpenAI、通义千问等主流大模型
- AI配置模块:独立的langchain4j配置模块,支持动态配置和热更新
- 环境变量配置:支持通过环境变量配置API密钥,避免敏感信息硬编码
- 功能开关控制:提供
LANGCHAIN4J_ENABLED开关,可动态启用/禁用AI功能
AI聊天功能实现
- AI聊天接口:实现完整的AI聊天REST API和流式聊天接口
- 会话管理:支持创建会话、清除会话、获取会话历史等功能
- WebSocket集成:通过WebSocket实现AI聊天实时消息推送
- 统一返回格式:所有AI接口返回
R<T>格式,保持接口一致性 - 前端组件:新增
AAiChat组件,提供完整的AI聊天界面和交互体验 - 动态显示:根据后端功能配置动态显示/隐藏AI聊天入口
AI应用场景
- 智能对话:基于上下文的智能问答系统
- 文本生成:内容创作、摘要生成、文本改写等
- 语义理解:意图识别、情感分析、关键信息提取
- 代码辅助:代码生成、代码审查、bug分析建议
AI工具链
- Prompt模板管理:结构化Prompt模板管理,支持变量替换
- Memory管理:会话记忆和上下文管理,实现连贯对话
- Tool调用:AI Agent支持调用外部工具和API
- RAG支持:检索增强生成,结合知识库提升回答准确性
- 向量模型优化:移除本地向量模型依赖,减少包体积,支持按需启用
5.3 开发规范文档完善 📚
Claude Code智能提示
- CLAUDE.md重构:新增四层架构详细说明和最佳实践
- 工具类优先原则:强调优先使用项目现有工具类,避免重复造轮子
- 46+工具类目录:详细列出后端25+、前端11、移动端11个常用工具类
- 代码模板扩充:提供完整的6层代码模板(Controller、Service、DAO、Mapper、Bo、Vo)
AGENTS.md同步更新
- 多AI助手支持:适配Claude Code、GitHub Copilot、Cursor、Windsurf、Codeium等
- 统一规范说明:各AI助手共享相同的架构规范和开发指南
- 错误示例对比:提供正确与错误的代码对比,帮助理解最佳实践
架构规范文档
- 四层架构指南:详细说明各层职责、调用关系和数据流转
- 常见场景速查:提供分页查询、树形数据、复杂查询等常见场景的标准实现
- 工具类使用指南:每个工具类的详细用法和使用场景说明
5.4 测试体系完善 🧪
集成测试全覆盖
- 系统模块测试:完善用户、角色、菜单、部门、字典等核心模块的集成测试
- 业务模块测试:新增AI聊天、首页、统计、系统功能配置等业务接口测试
- 监控模块测试:添加缓存监控、登录日志、操作日志、通知公告等监控接口测试
- 租户模块测试:完善租户管理相关接口的集成测试覆盖
测试基础设施
- Forest HTTP客户端集成:使用Forest进行HTTP接口测试,简化测试代码
- 动态端口支持:支持Spring Boot随机端口测试,提升测试灵活性
- 测试数据清理:提供测试数据清理脚本,确保测试环境干净
- 工具类单元测试:新增StringUtils、DateUtils等核心工具类的单元测试
测试覆盖率提升
- 核心模块P0接口:核心功能接口测试覆盖率提升约42%
- CRUD完整性测试:确保所有增删改查接口的完整测试覆盖
- 边界条件测试:添加参数校验、权限校验等边界条件测试用例
5.5 代码生成器优化 ⚙️
生成规范调整
- 实体类路径优化:entity包调整到domain包,符合DDD领域驱动设计
- DAO接口命名规范:统一DAO接口命名为
I{Entity}Dao格式 - 查看功能生成:自动生成
ADetail组件和查看详情功能 - 权限注解生成:默认生成
@SaCheckPermission权限控制注解
代码模板增强
- OSS翻译适配:自动生成OSS字段的序列化映射配置
- Vue目录统一:生成目录改为src,可直接复制到前端项目
- 主子表完善:增强主子表代码生成,支持复杂业务场景
5.6 前端组件系统升级 🎨
新增核心组件
- AModal组件:替换el-dialog,支持响应式识别,实现弹窗/抽屉自动切换
- ADetail组件:通用详情展示组件,支持分组显示和自定义插槽
- AFormEditor组件:富文本编辑器组件,基于WangEditor实现
- AResizablePanels组件:可拖拽调整大小的面板组件
- AImportExcel组件:优化导入Excel功能,支持模板下载和子表导入
组件功能优化
- 图标系统双引擎:同时支持iconfont和iconify图标库,无感切换
- 密码字段支持:ADetail组件支持密码类型字段的安全显示
- 富文本字段支持:ADetail组件支持富文本类型字段的渲染
- 行数控制:新增lines1/lines2/lines3属性,灵活控制长文本显示
路由与权限重构
- 路由模块化:路由配置拆分为常量路由和动态路由(系统、工作流、工具)
- 路由守卫重构:permission.ts重构为guard.ts,放置于router目录下
- 权限指令优化:支持延迟加载组件,扩充permi、role、admin等权限指令
- 动态菜单优化:菜单加载和权限验证逻辑优化
5.7 依赖版本升级 📦
后端依赖升级
- Spring Boot: 3.3.5 → 3.4.1,性能和安全性提升
- MyBatis-Plus: 3.5.9 → 3.5.11,SQL执行效率优化
- Hutool: 5.8.31 → 5.8.35,工具类功能增强
- Redisson: 3.39.0 → 3.43.0,分布式缓存优化
- SnailJob: 1.2.0 → 1.4.0,定时任务调度增强
- WarmFlow: 升级至 1.6.6 正式版,工作流功能完善
前端依赖优化
- 移除await-to-js:使用项目自定义的
to.ts工具类替代 - 移除vxe-table:统一使用el-table,减少依赖体积
- 富文本编辑器:新增WangEditor依赖,提供强大的编辑能力
六、2025年最新集成 (11月-12月)
6.1 物联网通信模块 📡
MQTT 客户端集成 (mica-mqtt 2.5.7)
- 高性能物联网通信:基于 t-io 异步非阻塞,支持百万级并发连接
- 多协议支持:完整支持 MQTT v3.1/v3.1.1/v5.0
- QoS 0/1/2:三种服务质量等级,适配不同业务场景
- 配置文件自动订阅:通过
global-subscribe配置自动订阅主题 - 全局消息监听器:统一处理所有订阅消息,支持 Topic 路由分发
- 遗嘱消息支持:Last Will 机制实现设备异常断线通知
- 保留消息:Retained Message 持久化,新订阅者立即接收
- SSL/TLS 加密:支持安全连接
- 多租户隔离:通过 Topic 前缀实现租户间数据隔离
- 完整示例代码:提供 12 个使用示例,涵盖所有常用功能
应用场景:
- 物联网设备管理
- 实时数据采集
- 设备状态监控
- 远程控制指令下发
RocketMQ 消息队列集成 (Apache RocketMQ 5.x)
- 分布式消息队列:支持海量消息堆积和高吞吐量
- 消息类型支持:普通消息、顺序消息、延时消息、事务消息
- 统一工具类:
RMSendUtil提供同步/异步发送,简化使用 - 消费者模式:支持集群消费和广播消费
- 消息追踪:完整的消息轨迹追踪
- 死信队列:自动处理消费失败消息
- Spring Boot 集成:基于
@RocketMQMessageListener注解的消费者配置 - 多租户支持:消息 Tag 支持租户ID隔离
应用场景:
- 异步解耦
- 削峰填谷
- 最终一致性
- 广播通知
- 日志收集
6.2 AI 能力全面增强 🤖
LangChain4j 企业级集成
- 多模型统一接口:支持 OpenAI、Claude、DeepSeek、通义千问、Ollama
- 智能模型切换:根据配置自动选择最优模型提供商
- 流式聊天:实时返回 AI 回答,提升用户体验
- WebSocket 集成:通过 WebSocket 实现实时 AI 聊天功能
- 对话记忆管理:基于 Redis 的会话记忆,支持上下文连贯对话
- RAG 支持:检索增强生成,结合知识库提升回答准确性
- Prompt 模板管理:结构化 Prompt 模板,支持变量替换
- Token 统计:实时统计 Token 使用情况,成本可控
- 环境变量配置:API 密钥支持环境变量,避免硬编码
- 功能开关:
LANGCHAIN4J_ENABLED开关,动态启用/禁用 - 前端组件:AAiChat 组件提供完整的 AI 聊天界面
AI 应用场景:
- 智能客服机器人
- 代码生成助手
- 文档问答系统
- 内容创作辅助
- 数据分析助手
- 智能搜索
6.3 页面设计器 🖼️
可视化拖拽设计
- 三栏式设计界面:左侧组件面板、中间设计画布、右侧属性面板
- 拖拽交互:支持从组件面板拖入画布、画布内部拖拽排序
- 嵌套容器:支持 Row/Col 布局组件嵌套,实现复杂页面结构
- 实时预览:设计器内实时预览效果,所见即所得
- 撤销重做:Ctrl+Z/Y 快捷键支持,完整的编辑历史
30+ 组件库
- 表单组件:单行输入、多行输入、数字输入、选择器、日期选择、开关、单选、多选、上传、富文本等
- 卡片组件:统计卡片、数据卡片、信息卡片、空状态卡片、表格卡片、列表卡片、天气卡片、通知卡片等
- 图表组件:折线图、柱状图、饼图、环形图、雷达图、漏斗图等(基于 ECharts)
- 布局组件:行容器、列容器、分割线,支持灵活的页面布局
AI 智能辅助
- AI 生成:描述需求,一句话自动生成组件配置
- AI 优化:一键优化字段名、占位文本、校验规则
- 快捷示例:内置 6 个常用场景示例,秒生成常见页面
- 用户注册表单
- 商品发布表单
- 订单查询表单
- 员工信息录入
- 活动报名表单
- 问卷调查表单
代码生成
- 完整 Vue SFC:一键生成完整的 Vue 单文件组件代码
- 分离代码查看:支持分别查看 Template、Script、Types 代码
- 三种生成模式:
- 页面模式:生成独立页面组件
- 弹窗模式:生成 AModal 弹窗组件,支持尺寸配置
- 抽屉模式:生成抽屉组件,支持方向配置
- 表单校验:自动生成表单校验规则
- JSON 配置:支持配置导入导出,实现设计复用
- 预览联动:预览设置自动同步到代码生成
组件属性配置
- 动态属性面板:根据选中组件动态显示可配置属性
- 图标选择器:卡片组件图标支持可视化选择
- 数据配置:支持配置选择器选项、表格列、图表数据等
- 样式配置:支持配置宽度、间距、对齐等样式属性
技术架构:
- Vue 3 + TypeScript + Element Plus
- Composition API + Pinia 状态管理
- 四层架构:UI层、逻辑层、配置层、渲染层
使用场景:
- 快速搭建管理后台页面
- 表单页面快速开发
- 数据展示页面设计
- 原型设计和需求确认
6.4 多媒体处理能力 🎨
海报生成引擎
- 复杂海报合成:支持多图层、文字、二维码的海报设计
- GIF 动图生成:多张图片合成动态 GIF
- 字体颜色工具:丰富的字体和颜色处理工具类
- 模板化设计:预定义海报模板,快速生成
文本转语音 (TTS)
- 火山引擎 TTS:集成火山引擎文字转语音服务
- 多音色支持:支持多种音色和语速调节
- 流式生成:支持流式返回音频数据
- 格式支持:支持 MP3、WAV 等多种音频格式
6.5 客户端工具包 🛠️
HTTP 客户端工具
- Forest HTTP 客户端:声明式 HTTP 客户端,简化接口调用
- 请求拦截器:统一请求头、签名、加密处理
- 重试机制:自动重试失败请求
- 负载均衡:支持多服务器轮询
其他工具增强
- 加密解密工具:AES、RSA、SM2、SM4 国密算法支持
- ID 生成器:雪花算法、UUID、NanoID 等多种ID生成策略
- 验证码生成:图形验证码、短信验证码
- 二维码工具:二维码生成和解析
6.6 Claude Code 智能开发体验 🧠
AI 辅助开发完善
- CLAUDE.md 重构:详细的四层架构说明和最佳实践
- AGENTS.md 新增:支持多种 AI 助手(Claude Code、Copilot、Cursor、Windsurf)
- 工具类优先原则:强调优先使用框架现有工具类,避免重复造轮子
- 46+ 工具类目录:后端 25+、前端 11、移动端 11 个常用工具类详细列表
- 完整代码模板:Controller、Service、DAO、Mapper、Bo、Vo 六层模板
- 错误示例对比:提供正确与错误的代码对比
- 常见场景速查:分页查询、树形数据、复杂查询等常见场景标准实现
6.7 开发体验持续优化 ⚡
项目结构优化
- 模块化设计:各功能模块独立,按需引入
- 依赖版本管理:统一依赖版本,避免冲突
- 自动配置增强:基于
@AutoConfiguration的自动配置,开箱即用
文档体系完善
- 在线文档站点:基于 VitePress 构建的完整文档系统
- 模块文档完善:每个模块提供详细的使用文档和示例代码
- 快速开始指南:各模块提供快速开始指南,5分钟上手
- 故障排查章节:常见问题和解决方案
测试体系增强
- 集成测试覆盖:核心模块 P0 接口测试覆盖率提升约 42%
- 单元测试:工具类单元测试完善
- 使用示例测试:各模块提供完整的使用示例测试代码
- 测试文档:详细的测试指南和最佳实践
6.8 配置管理增强 ⚙️
环境变量支持
- 占位符语法:支持
${变量名:默认值}语法 - 敏感信息保护:API 密钥等敏感信息通过环境变量配置
- 多环境适配:开发、测试、生产环境配置分离
功能开关控制
- 模块开关:所有新增模块提供
enabled开关 - 按需启用:根据实际需求启用功能,减少资源占用
- 动态配置:支持运行时动态调整部分配置
2025年更新总结:
本次更新重点关注物联网通信、AI能力集成、页面设计器、多媒体处理、客户端工具包和智能开发体验,为框架注入了强大的企业级功能:
- 🚀 物联网就绪:MQTT + RocketMQ 提供完整的物联网解决方案
- 🤖 AI赋能:LangChain4j 集成主流大模型,开启智能化应用时代
- 🖼️ 页面设计器:可视化拖拽设计、30+组件、AI智能生成、一键代码导出
- 🎨 多媒体能力:海报生成、TTS 语音合成等多媒体处理能力
- 🛠️ 工具齐全:HTTP客户端、加密工具、ID生成器等开箱即用
- 🧠 智能开发:Claude Code 上下文工程,AI辅助开发体验升级
- 📚 文档完善:在线文档站点,每个模块详细文档和示例
每个端的重构都遵循模块化、标准化的原则,确保代码质量和可维护性。最新版本的更新重点关注架构分层清晰化、AI能力集成、测试体系完善、代码生成优化、组件系统升级、物联网通信、多媒体处理和智能化开发体验提升,为企业级应用提供更强大的技术支撑和更高效的开发体验。
