Ray.Hao
|
9deaa2568a
|
chore: 默认激活配置由 youlai 改为 dev
|
2026-09-30 15:42:05 +08:00 |
|
Ray.Hao
|
730473a706
|
chore(ai): 补全 dev、prod 环境的对话模型配置
补充 base-url、api-key、模型标识、采样温度与思考开关,密钥经环境变量 AI_API_KEY 注入
|
2026-09-30 15:41:59 +08:00 |
|
Ray.Hao
|
012cba9b92
|
feat: 部门、字典、日志、菜单、角色、用户列表接口补充权限校验
新增校验:sys:dept:list、sys:dict:list、sys:dict-item:list、sys:log:list、sys:menu:list、sys:role:list、sys:user:list
|
2026-09-30 15:41:42 +08:00 |
|
Ray.Hao
|
52b4760c89
|
chore: 字段注释改为单行并删除方法注释的重复描述
- 常量与字段注释由多行 Javadoc 改为单行
- 删除方法注释中复述参数与流程的描述行
|
2026-09-30 12:40:20 +08:00 |
|
Ray.Hao
|
ab8d9065fb
|
feat(menu): 外链菜单改用 external_url 承载
- 数据大屏由目录改为站内外链,移除三个子菜单
- 外链透传前端的判断由内嵌改为外链
- 提示词同级菜单示例的路径去掉前导斜杠
|
2026-09-30 12:39:22 +08:00 |
|
Ray.Hao
|
1243a311e0
|
chore: 删除启动横幅并将英文注释改为中文
- 移除启动横幅文件与定时任务配置里的英文说明
- 密码认证与角色禁用会话失效处的注释改为中文
- 代码生成的列类型处理注释改为中文,去掉重复的类型列举
- 初始化脚本的表结构与表数据注释改为中文
|
2026-09-27 21:26:44 +08:00 |
|
Ray.Hao
|
607b6c7bb3
|
feat(codegen): 代码生成新增 AI 配置推断并迁移模板资源
- 模板与外部文件移至 resources/codegen、excel、ip2region
- 新增 AI 配置推断接口、表单与返回对象
- 字典项与菜单 SQL、IP 工具、日志配置调整
- docker-compose 与英文 README 更新
- 版本 4.11.0
|
2026-09-26 09:13:16 +08:00 |
|
Ray.Hao
|
9fc49583d9
|
feat: 新增动态表单模块并同步字典与菜单改动
- 表单: 新增定义、数据、快照三表与接口
- 字典: 字典项改为逻辑删除,同字典下值唯一
- 菜单: 移除 alwaysShow,下拉改 types,新增按钮生成与父级校验
- AI: 新增对话服务与提示词
- sql: 同步表结构与菜单权限数据
- 工作流: 新增流程模块与 BPMN 流程
|
2026-09-25 21:07:09 +08:00 |
|
Theo
|
a42172ac52
|
feat(email): 添加HTML格式邮件发送功能
- 在EmailService接口中新增sendHtmlMail方法定义
- 实现SMTP邮件服务中的HTML邮件发送逻辑
- 添加HTML邮件内容的MIME消息构建处理
- 集成UTF-8字符编码支持HTML邮件内容
- 添加HTML邮件发送异常日志记录机制
|
2026-09-11 23:21:03 +08:00 |
|
Ray.Hao
|
34bfeedadf
|
refactor(workflow): 工作流模块改由 ConditionalOnWorkflowEnabled 条件装配
- 移除启动类手工 ComponentScan 排除与 WorkflowModuleConfig、
WorkflowEnvironmentPostProcessor、spring.factories 自动装配配置
- 新增 @ConditionalOnWorkflowEnabled 注解,按 flowable.enabled 决定工作流模块是否生效
- 启动类回归 @SpringBootApplication,各配置属性类改用 @Component 显式注册
|
2026-09-08 16:40:47 +08:00 |
|
Ray.Hao
|
2bc7b49bb6
|
style(system): 移除泛型类型参数中的多余空格
|
2026-09-08 10:43:06 +08:00 |
|
Ray.Hao
|
d4d82db762
|
chore: 默认关闭工作流
|
2026-09-08 10:40:00 +08:00 |
|
Ray.Hao
|
e7785044cc
|
chore: 默认关闭工作流
|
2026-09-08 10:10:10 +08:00 |
|
Ray.Hao
|
baf2dbe509
|
feat: 新增动态表单与工作流模块
- module/form: 动态表单定义、数据、版本快照的增删改查与渲染校验
- module/workflow: Flowable 审批流,含流程设计、发起、审批中心与演示流程
- module/config: 工作流开关 flowable.enabled,关闭时不注册 Bean 并排除引擎自动配置
- auth: 按登录方式拆为 password/sms/qrcode/wxma/session 五个子包
- framework/security: 新增 config、handler,承载安全配置与认证授权失败处理
- application-*.yml: flowable 配置按 dev/prod/youlai 环境拆分
- sql/extensions: 新增 dynamic-form.sql、workflow.sql 增量脚本
- README: 补充目录结构、可选扩展与系统预览截图
|
2026-09-08 10:06:41 +08:00 |
|
Ray.Hao
|
3c9e24d978
|
docs: 精简 JavaDoc 注释
|
2026-09-02 00:02:26 +08:00 |
|
Ray.Hao
|
fd3d7fc654
|
feat: 添加动态表单引擎模块
|
2026-08-30 11:23:30 +08:00 |
|
Ray.Hao
|
b7d11aea4c
|
chore(release): 升级版本至 4.8.0
|
2026-08-26 08:13:35 +08:00 |
|
Ray.Hao
|
6da8ea0fca
|
refactor: 用 RustFS S3 替代 MinIO 并优化 OSS endpoint 协议处理
|
2026-08-25 08:21:10 +08:00 |
|
Ray.Hao
|
7ecbc16b69
|
refactor: RuntimeException 统一为 BusinessException 并规范注释
- 文件上传、代码生成、用户/菜单/角色校验等场景的 RuntimeException 统一替换为 BusinessException
- 阿里云 OSS 上传失败补记日志并保留原始异常 cause
- 修复 prod 微信小程序配置 app-secret 无法绑定 WxMaProperties.secret 字段的问题
- UserServiceImpl 展开通配符 import 并规范化 javadoc
|
2026-08-22 12:00:25 +08:00 |
|
Ray.Hao
|
5085d4c7e0
|
refactor(common): 操作日志采集与落库解耦为端口-适配器
common 层日志切面改为只依赖 framework 层定义的 OperationLogPort 端口,
日志采集逻辑从 common.aspect.LogAspect 迁移至 framework.web.log.OperationLogAspect,
由 system.adapter.log.OperationLogAdapter 实现端口落库 sys_log 表,
通过 LogConverter 完成载荷到实体的转换,消除 common 对 system 的反向依赖。
同步将 system.security.adapter 下的适配器迁移至 system.adapter.security,
保持 system.adapter.<业务域> 的目录组织一致。
版本 4.6.0 -> 4.7.0
|
2026-08-14 00:09:42 +08:00 |
|
Ray.Hao
|
155fc69a78
|
refactor: 移除 project.version 配置避免启动解析异常
- 删除 application.yml 的 project.version 段,banner 与 OpenApi 不再读取该属性
- 移除 banner.txt 的 YouLai Boot Version 行
- OpenApiConfig 不再显示接口文档版本号,删除无用的 Environment 依赖
- 为 config.import: classpath:codegen.yml 补充代码生成模块配置说明注释
|
2026-08-02 14:18:44 +08:00 |
|
Ray.Hao
|
afc1780705
|
fix: 角色分页缺少 updateTime,重构 mybatis 自动填充处理器
AutoFillMetaObjectHandler 重命名为 MetaFieldFillHandler,移除 handler 子包
添加 spring-boot-starter-webmvc-test 测试依赖
|
2026-08-02 09:16:29 +08:00 |
|
Ray.Hao
|
27ea1cf114
|
refactor(system): 重命名包名和类名
- system/security/port → adapter
- system/job → schedule
- system/handler/XxlJobSampleHandler → schedule/XxlJobSample
- system/listener/UserImportListener → service/UserImportReader
- framework/security/port: Javadoc @see 同步更新
|
2026-07-31 09:35:35 +08:00 |
|
Ray.Hao
|
07616d9118
|
refactor: 项目包结构优化
|
2026-07-31 00:21:49 +08:00 |
|
Ray.Hao
|
a4b699a109
|
refactor(apidoc): 将 apidoc 包重命名为 openapi
- Knife4jOpenApiCustomizer.java: 包名 com.youlai.boot.framework.apidoc -> com.youlai.boot.framework.openapi
- OpenApiConfig.java: 包名 com.youlai.boot.framework.apidoc -> com.youlai.boot.framework.openapi
|
2026-07-28 17:33:01 +08:00 |
|
Ray.Hao
|
7b87543978
|
feat: v4.5.0 包结构迁移、MyBatis-Plus 自动填充、Jackson 3.x 适配
- common.annotation -> framework.annotation(DataPermission/Log/RateLimit/RepeatSubmit/ValidField)
- common.base.BaseEntity -> framework.base.BaseEntity(含 createTime/updateTime 自动填充注解)
- BaseQuery/IBaseEnum 保留在 common.base(无框架依赖)
- AutoFillMetaObjectHandler 实现 createTime/updateTime/createBy/updateBy 自动填充
- 实体类(Dept/Role/Config/DictItem/Notice/SysUser)添加 createBy/updateBy @TableField(fill=...)
- Jackson 注解使用 com.fasterxml.jackson.annotation(2.x 兼容层),databind/core 使用 tools.jackson(3.x)
- 代码生成模板 entity.java.vm/form.java.vm 包路径同步更新
- 删除冗余 UserService default 方法、DataPermissionException、DictChangeEvent event 包
- 版本号 4.4.0 -> 4.5.0
|
2026-07-28 17:24:44 +08:00 |
|
Ray.Hao
|
684b89c103
|
fix(entity): 修复 null/零值/空字符串字段无法清空更新的问题
- 给 avatar/mobile/email/remark/targetUserIds/icon/redirect/perm/component/externalUrl/routeName/tagType 字段加 updateStrategy=ALWAYS
- 去除 UserSocialMapper.xml 中 avatar 列冗余的 AS 别名
|
2026-07-18 16:04:37 +08:00 |
|
Ray.Hao
|
ae660f57e9
|
feat(auth): 新增 App 扫码登录 PC 端
- 新增 auth/qrcode 模块:生成票据、轮询状态、换取会话令牌
- SecurityUser 增加 avatar 字段,UserSocial 支持按用户 ID 查认证信息
- 新增 QR_CODE_LOGIN Redis 票据与 A025x 扫码异常码
- security 白名单放行 /api/v1/auth/qr-code/*
|
2026-07-18 01:04:04 +08:00 |
|
Ray.Hao
|
666f4929e5
|
refactor(file): 重构文件存储配置为 file-storage 并增加上传校验
- 合并 AliyunOssProperties/LocalFileProperties/MinioProperties 为 FileStorageProperties
- oss.* 配置前缀统一改为 file-storage.*(type/upload/minio/aliyun/local)
- FileController 增加文件扩展名白名单校验
- spring.servlet.multipart 上限改由 file-storage.upload.max-file-size 驱动
|
2026-07-18 01:03:15 +08:00 |
|
Ray.Hao
|
5f71986d12
|
fix(rate-limit): IP 限流补充 Redis 异常 Fail-Open 放行
|
2026-07-17 00:26:00 +08:00 |
|
Ray.Hao
|
709ee71eba
|
chore: 补充限流配置项与 SQL
|
2026-07-17 00:19:13 +08:00 |
|
Ray.Hao
|
291d473cc3
|
refactor(rate-limit): 完善双层滑动窗口限流实现
|
2026-07-17 00:19:12 +08:00 |
|
Ray.Hao
|
13ed4503ed
|
refactor(rate-limit): 限流升级为双层滑动窗口,新增 IP 全局限流与响应头
- 新增 IpRateLimitFilter:IP 维度全局滑动窗口限流,所有接口生效(默认 1000 次/60 秒)
- RateLimitAspect 固定窗口升级为滑动窗口(Redis ZSET + Lua),与 IP 全局限流叠加
- 提取公共 SlidingWindowScript,统一 Lua 脚本
- 新增 X-RateLimit-Limit/Remaining/Reset 与 Retry-After 响应头
- RateLimitProperties 新增 ip 配置;新增 RateLimitException;dev 环境关闭 IP 限流
|
2026-07-12 21:23:17 +08:00 |
|
Ray.Hao
|
2441efa9ba
|
refactor(security): Ports & Adapters 架构重构|解除反向依赖|抽离 Security Starter 准备
- 新增 2 个端口接口(UserAuthenticationPort / PermissionPort)+ 1 个适配器(PermissionAdapter)
- SecurityUserDetails 用 roles(Set<String>) 替代 authorities,消除 Jackson 序列化问题
- 删除 UserSession,Redis / JWT 直存 SecurityUserDetails
- SecurityUserDetailsService / PermissionService 注入 Port 替代 system Service
|
2026-07-05 16:53:46 +08:00 |
|
Ray.Hao
|
b17bd6bf7c
|
refactor(rate-limit): 限流架构升级为双层滑动窗口,新增IP全局防护与响应头
限流算法从 INCR+EXPIRE 固定窗口升级为 ZSET+Lua 滑动窗口,
新增 IpRateLimitFilter 提供 IP 全局防护(默认 1000次/60s)。
新增 X-RateLimit-Limit/Remaining/Reset 响应头与 Retry-After,
新增 rate-limit.ip.* 配置项控制 IP 全局开关与阈值,
@RateLimit 空注解统一走全局配置,消除硬编码。
|
2026-07-05 00:19:44 +08:00 |
|
Ray.Hao
|
12b226fdc9
|
fix(security): 修复RedisTokenManager会话反序列化类型转换异常
- 提取JsonMapper为共享Bean,统一序列化配置
- 使用convertValue替代直接强转,正确处理嵌套泛型
|
2026-07-03 18:22:48 +08:00 |
|
Ray.Hao
|
c157bbd74c
|
refactor(menu): 外链/内嵌改为 type=E+component 统一判断
|
2026-06-29 22:30:00 +08:00 |
|
Ray.Hao
|
49e3d7a71b
|
refactor: 统一注释规范与代码风格,优化分层结构
|
2026-06-28 19:04:21 +08:00 |
|
Ray.Hao
|
8fd648c2e0
|
fix: 删除编译失败的单元测试文件
|
2026-06-27 13:24:57 +08:00 |
|
Ray.Hao
|
2d249e449d
|
fix: 优化代码注释与导入规范
|
2026-06-26 00:33:39 +08:00 |
|
Ray.Hao
|
6943f12d79
|
fix(codegen): 修复前端模板语法与对齐问题
|
2026-06-25 12:41:02 +08:00 |
|
Ray.Hao
|
6b6c06370f
|
refactor: 统一实体/限流AOP化/精简日志/文件归位
|
2026-06-24 08:11:23 +08:00 |
|
Ray.Hao
|
862e6ebfbc
|
fix(codegen):移除Velocity变量多余的花括号
|
2026-06-16 16:01:36 +08:00 |
|
Ray.Hao
|
a8403613fa
|
token过期改为返回401;CaptchaValidationException重命名为SmsCaptchaException;v4.3.1
|
2026-06-09 15:53:35 +08:00 |
|
Ray.Hao
|
06857f6c88
|
fix: codegen.yml VO 命名规范修正
|
2026-05-25 17:26:57 +08:00 |
|
Ray.Hao
|
1e789e0c46
|
Redis DB dev→0, prod→1
|
2026-05-23 15:12:48 +08:00 |
|
Ray.Hao
|
eebb287095
|
feat(exception): 添加数据权限异常及通用数据库执行异常处理
|
2026-05-23 10:30:44 +08:00 |
|
Ray.Hao
|
65333b9e8e
|
refactor(redis): 适配 Spring Data Redis 4.0 序列化器变更
Jackson2JsonRedisSerializer 在 Spring Data Redis 4.0 中已标记为弃用并计划移除。
替换为 JacksonJsonRedisSerializer,对应 Jackson 3 的 API 变更:
|
2026-05-20 16:02:25 +08:00 |
|
Ray.Hao
|
13079f3d13
|
fix: 修复非超管用户路由参数(params)丢失问题
|
2026-05-14 16:56:06 +08:00 |
|
Ray.Hao
|
7a43e9c38c
|
fix: 已知问题修复
|
2026-04-25 16:29:32 +08:00 |
|