Commit Graph

1268 Commits

Author SHA1 Message Date
00bf4b5a8b chore(task): 2026-01-20 20:33:10 +08:00
6c305f4cd1 fix(task): 优化下载通知任务的执行频率和时间范围
- 移除未使用的ZtMessageProducerService和NotificationAuthUtils依赖注入
- 将定时任务执行时间从每天21点调整为每天9点和21点
- 将查询时间范围从24小时缩短为12小时,提高查询效率
- 保持用户去重逻辑以避免重复发送通知
2026-01-20 20:26:51 +08:00
82e844a779 feat(notify): 添加微信订阅消息去重功能
- 在 WechatSubscribeTemplateConfigEntity 中新增 dedupSeconds 字段用于配置去重窗口
- 将去重配置从事件模板映射复制到通知配置实体中
- 集成 RedisTemplate 实现基于时间窗口的消息去重机制
- 支持三种去重模式:永久去重(0)、不设去重(负数)、窗口期去重(正数)
- 实现基于 Redis 分布式锁的重复消息过滤逻辑
- 为非永久去重场景生成唯一数据库幂等键以避免冲突
2026-01-20 20:19:44 +08:00
c3fcfdd633 ```
style(app): 调整日期格式显示

- 将日期时间格式从 yyyy-MM-dd HH:mm 修改为 yyyy-MM-dd
```
2026-01-20 18:51:52 +08:00
a8156976be feat(puzzle): 添加免费拼图通知任务功能
- 在MemberPuzzleMapper中新增listFreeUnpurchased方法用于查询指定时间范围内生成且未购买的免费拼图记录
- 新增FreePuzzleNotificationTask定时任务类,每天晚7点执行免费拼图通知
- 添加SQL映射配置实现免费拼图记录的查询逻辑
- 实现微信订阅通知触发机制,向符合条件的用户发送免费拼图领取通知
- 集成景区信息查询和会员信息获取功能用于通知内容构造
2026-01-20 18:35:57 +08:00
ce48bd00c9 feat(task): 添加优惠券领取和过半提醒定时任务
- 新增优惠券领取通知定时任务,每小时执行一次查询最近2小时内领取的优惠券
- 新增优惠券有效期过半提醒定时任务,每天18点执行
- 引入ScenicRepository和ScenicV2DTO用于获取景区基础信息
- 修改processNotification方法提取公共逻辑到processRecords方法
- 在微信订阅消息变量中增加景区ID和景区名称字段
- 优化优惠券相关查询逻辑和数据处理流程
2026-01-20 17:11:20 +08:00
c5df277e6c feat(task): 添加优惠券过期提醒定时任务
- 实现优惠券过期提醒功能,每天20点执行
- 实现优惠券临期提醒功能,每天8点执行
- 集成微信订阅消息通知服务
- 查询指定时间范围内已领取的优惠券记录
- 构建优惠券信息变量并触发通知
- 添加异常处理和日志记录机制
2026-01-20 16:58:36 +08:00
9a31e71e42 refactor(coupon): 移除优惠券相关模块代码
- 删除优惠券控制器相关类,包括 AppCouponController 和 CouponController
- 移除优惠券记录控制器 CouponRecordController
- 删除优惠券数据访问层接口及实现类
- 移除优惠券相关的实体类、请求响应对象
- 清理业务逻辑层中与优惠券相关的服务接口及实现
- 从 PriceBiz 中移除优惠券相关导入依赖
- 从任务类 DownloadNotificationTasker 中移除优惠券相关导入
- 删除优惠券相关的 MyBatis 映射文件
2026-01-20 16:30:47 +08:00
e268d236f4 fix(coupon): 修复优惠券重复领取和状态检查逻辑
- 修改数据库查询方法返回类型为List以支持多条记录查询
- 更新AutoCouponServiceImpl中的重复领取检查逻辑
- 在CouponServiceImpl中实现可用优惠券筛选功能
- 优化优惠券状态验证逻辑并改进错误信息提示
- 修复使用优惠券时的状态判断条件
2026-01-20 15:53:33 +08:00
143426db1f refactor(glm): 优化 GLM 客户端实现
- 添加 @Lazy 注解以延迟初始化 GLM 客户端
- 避免应用启动时不必要的资源消耗
- 提高系统启动性能和内存使用效率
2026-01-20 15:52:27 +08:00
fcc4b06295 refactor(goods): 优化视频片段更新状态检查逻辑
- 移除无新片段情况下的冗余日志输出
- 将视频未关联任务的日志级别从error调整为warn
- 保持原有的业务逻辑判断不变
2026-01-20 15:52:13 +08:00
f876dc59fa feat(task): 添加资源通知定时任务功能
- 实现了每日19点执行的资源通知定时任务
- 查询当日新增人脸数据并获取相关会员信息
- 整合景区、视频和照片资源统计数据
- 集成微信订阅消息推送服务
- 构建资源通知模板变量并触发消息发送
- 添加异常处理和日志记录机制
2026-01-20 15:34:46 +08:00
8e6d10ad95 feat(watermark): 调整水印模板布局为原图完整显示
- 将原图区域从90%高度调整为100%完整高度
- 添加底部扩展10%区域用于信息展示
- 更新PuzzleDefault和PuzzlePrint模板的画布尺寸计算逻辑
- 修改二维码尺寸计算基准为原始图片高度
- 调整布局参数常量命名以反映新的设计思路
2026-01-20 11:36:25 +08:00
42bf3d3d0a refactor(puzzle): 优化拼图记录查询逻辑
- 移除 BigDecimal 导入并修改拼图数量统计方式
- 使用关联表查询替换直接的数量统计方法
- 更新拼图记录查询逻辑,通过关联表获取数据
- 添加对空值的过滤处理确保数据完整性
- 修改内容页面转换方法,支持免费状态判断
- 删除价格计算相关依赖和服务调用
- 添加 MemberPuzzleEntity 和 FreeStatus 常量支持
- 从关联记录读取免费状态替代价格计算逻辑
2026-01-20 11:24:57 +08:00
679f2d3a79 feat(order): 添加退款单号幂等性支持并完善订单状态流转验证
- 在RefundRequest中新增refundNo字段作为退款单号幂等键
- 添加订单状态、支付状态、退款状态流转验证逻辑
- 完善updateRefundStatus方法支持退款单号和支付平台退款单号参数
- 优化createRefundRecord方法增加退款单号重复性检查和幂等处理
- 重构支付回调处理逻辑统一状态更新方式
- 增强订单状态流转的安全性和一致性校验
2026-01-19 21:28:24 +08:00
3084afc6a7 fix(pricing): 修复升级检查中的支付金额处理逻辑
- 移除 resolvePaidAmount 方法中对 purchasedDetails 的依赖
- 添加支付金额为空时的异常抛出机制
- 在升单结果中添加补差价金额的判断逻辑
- 更新文档中标注支付金额为必填字段
- 优化打包优惠计算中的补差价处理流程
2026-01-19 20:28:36 +08:00
91626626f4 feat(pricing): 优化升单价格计算逻辑支持补差价功能
- 修改 UpgradeBundleDiscountResult 和 UpgradeOnePriceResult 中 estimatedFinalAmount 字段含义为补差价金额
- 在 UpgradeCheckRequest 中新增 paidAmount 字段用于传递已支付金额
- 在 UpgradeCheckResult 中新增 bestUpgradeType 和 bestPayableAmount 字段提供最优升单建议
- 在 UpgradePriceSummary 中新增 paidAmount 字段记录已支付金额
- 更新价格计算服务实现,加入已支付金额处理逻辑
- 新增 normalizeAmount、calculateSupplementAmount 等工具方法确保金额计算精度
- 修复测试代码中的数据类型不匹配问题
2026-01-19 20:25:44 +08:00
b1cfef278d Merge branch 'order_update'
# Conflicts:
#	src/main/java/com/ycwl/basic/pricing/CLAUDE.md
2026-01-19 19:54:59 +08:00
c42474256e fix(LyCompatibleController): 修复视频列表获取逻辑
- 修改了ContentPageVO的获取方式,使用filter过滤掉contentId为null的记录
- 使用findFirst替换getFirst避免空指针异常
- 确保只有有效的contentId才会被用于后续的视频查询操作
2026-01-19 19:32:09 +08:00
63180159d2 feat(puzzle): 实现免费拼图下载时自动添加水印功能
- 在AppPuzzleController中新增水印相关依赖注入
- 添加免费拼图判断逻辑,区分付费与免费拼图下载流程
- 实现addWatermarkForFreePuzzle方法处理水印添加
- 集成景区信息、人脸信息、二维码等水印模板数据
- 添加水印任务创建与等待机制,支持30秒超时处理
- 增加水印操作的日志记录与异常处理机制
- 优化免费拼图下载的安全性保护措施
2026-01-19 18:58:08 +08:00
e647ad75c6 feat(clickhouse): 实现统计数据查询的时间序列填充功能
- 将日期时间处理从旧的 Date 和 SimpleDateFormat 迁移到新的 Java 8 时间 API
- 添加小时级别数据序列填充功能,确保每个小时都有数据记录
- 添加日期级别数据序列填充功能,确保每天都有数据记录
- 实现缺失时间段的数据自动补零机制
- 重构查询方法以支持连续时间序列数据返回
- 提高统计图表数据完整性和可视化效果
2026-01-17 16:58:23 +08:00
4a07f5bba9 fix(puzzle): 修复拼图生成服务中的打印队列关联ID问题
All checks were successful
ZhenTu-BE/pipeline/head This commit looks good
- 将硬编码的0L替换为实际的拼图记录ID
- 确保打印队列记录能正确关联到对应的拼图生成记录
- 更新代码注释以明确ID的用途和关联关系
2026-01-17 03:24:43 +08:00
1f7e6d69f4 fix(app): 修复拼图记录ID传递问题
- 将硬编码的0L替换为实际的recordId参数
- 确保拼图记录能够正确关联到puzzle_record表
- 移除打印特有标识注释,统一使用拼图记录ID逻辑
2026-01-17 03:05:07 +08:00
50aaf7cb1a refactor(puzzle): 移除边缘渲染任务数据访问层
- 删除了 PuzzleEdgeRenderTaskMapper 接口文件
- 移除了对应的 MyBatis XML 映射文件
- 清理了数据库操作相关的实体映射配置
- 移除了任务领取、成功标记、失败标记等数据库操作方法
- 删除了查询下一条可领取任务的业务逻辑实现
2026-01-17 02:50:10 +08:00
f2c739160a feat(printer): 添加图片类型字段支持不同来源图片处理
- 在 MemberPrintEntity 和 MemberPrintResp 中新增 imageType 字段
- 根据 sourceId 自动设置图片类型为移动上传或普通照片
- 拼图类型图片明确标记为 PUZZLE 类型
- 修改图片来源判断逻辑从 sourceId 改为 imageType 字段
- 更新数据库映射文件添加 image_type 字段映射
2026-01-17 02:45:14 +08:00
2efc66292e fix(order): 修复优惠券使用请求中的景区ID设置问题
- 将优惠券使用请求中的景区ID从缓存结果字符串改为订单实际景区ID
- 添加空值检查以避免潜在的空指针异常
- 确保景区ID正确传递为字符串格式
2026-01-17 01:57:01 +08:00
0eced869fa feat(pricing): 支持无限量优惠券功能
- 修改数据库更新逻辑以支持无限量优惠券
- 当 total_quantity 为 NULL 或 <= 0 时不限制使用数量
- 使用 COALESCE 函数处理空值情况
- 更新 SQL 条件判断逻辑以兼容无限量场景
2026-01-17 01:55:49 +08:00
aa2611d369 feat(printer): 添加拼图打印功能支持
- 在ImageWatermarkOperatorEnum中新增PUZZLE_PRINT类型
- 在WatermarkEdgeService中添加PuzzlePrint水印模板支持
- 修改ImageWatermarkFactory对PUZZLE_PRINT类型的处理逻辑
- 移除PuzzleBorderStage并创建专用的拼图打印处理管线
- 实现createPuzzlePrintPipeline方法用于拼图水印处理
- 添加preparePuzzleWatermarkConfig方法准备拼图专用水印配置
- 更新打印机服务中的拼图处理流程以使用新的水印配置
2026-01-17 01:55:37 +08:00
6a8f679540 feat(clickhouse): 添加打印样片页面访问统计功能
- 实现按小时统计访问打印样片页面人数的功能
- 实现按日期统计访问打印样片页面人数的功能
- 在ClickHouse查询服务中添加相应的SQL查询方法
- 在MySQL查询服务中添加接口实现
- 更新统计图表合并逻辑,支持打印样片访问数据展示
- 修改mergeChartData方法以支持三组数据合并
- 在MyBatis映射文件中添加对应的SQL查询语句
- 完善相关接口定义和文档注释
2026-01-16 20:15:41 +08:00
4fac129c3a feat(image): 启用边缘端水印处理并优化徕卡模板布局算法
- 将边缘端处理默认启用状态从false改为true
- 将边缘端处理超时时间从30秒调整为10秒
- 将徕卡水印模板的固定像素配置转换为基于1920x1080的百分比配置
- 新增多种百分比常量包括底部区域、Logo大小、边距、字体大小等
- 实现动态计算实际像素值的方法替代固定数值
- 在PrinterServiceImpl中注入WatermarkEdgeService依赖
- 配置水印处理流程启用边缘服务和存储适配器
2026-01-16 18:56:29 +08:00
830dd17071 feat(printer): 添加自定义打印图片URL功能
- 在CreateVirtualOrderRequest中新增printImgUrl字段
- 修改createVirtualOrder方法支持自定义打印图片URL参数
- 实现当提供printImgUrl时优先使用该URL进行打印
- 更新服务接口和实现类以支持新的参数传递
- 添加相应的文档注释说明新功能特性
2026-01-16 18:30:39 +08:00
83c831887e refactor(service): 移除视频URL内网代理逻辑
- 删除移动端商品服务中的视频URL内网地址代理转换代码
- 移除PC端资源服务中的视频URL内网代理处理逻辑
- 简化视频URL设置流程,直接使用原始URL地址
- 清理相关的异常处理和日志记录代码
2026-01-16 18:14:25 +08:00
5ab2882777 refactor(watermark): 将水印布局配置改为百分比方式
- 将固定像素配置改为基于1920x1080的百分比配置
- 添加底部距离、二维码大小、位置等百分比常量
- 修改二维码位置计算逻辑为基于百分比的方式
- 调整景区名和日期时间文字的布局和对齐方式
- 移除原有的固定偏移计算方法
- 优化文字区域的垂直居中对齐效果
2026-01-16 17:43:31 +08:00
a5a9ff09f2 feat(watermark): 添加边缘端水印处理功能
- 引入 WatermarkEdgeService 支持边缘端渲染
- 在 WatermarkConfig 中添加边缘端相关配置参数
- 在 WatermarkStage 中实现边缘端处理逻辑和降级机制
- 修改 ImageWatermarkOperatorEnum 的默认输出格式为 jpg
- 移除已废弃的 DefaultImageWatermarkOperator 类
- 更新 GoodsServiceImpl 使用边缘端处理水印
- 优化 PuzzleEdgeWorkerIpInterceptor 允许本地回环地址访问
- 修正 PrinterDefaultWatermarkTemplateBuilder 样式常量名称
2026-01-16 17:25:19 +08:00
83e47ed843 refactor(goods): 移除预览功能并优化水印处理逻辑
- 移除了 sourceGoodsListPreview 接口及相关实现
- 新增 WatermarkEdgeService 和 FaceService 依赖注入
- 实现边缘端水印处理支持,包含降级机制
- 优化二维码和头像文件处理流程
- 统一水印处理的异常处理和资源清理逻辑
2026-01-16 17:19:31 +08:00
e9a4c26a83 refactor(watermark): 调整徕卡水印模板构建器的画布布局策略
- 画布大小改为原图大小(不再扩展底部区域)
- 原图收缩后放置在画布上半部分,为底部留出空间
- 计算原图收缩后的区域高度和底部区域起始Y坐标
- 将原图元素从画布顶部调整为收缩后放在画布上半部分
- 调整Logo、帧途文字和二维码元素的Y坐标计算方式
- 更新布局说明文档以反映新的设计策略
2026-01-16 17:07:48 +08:00
8c76a4fb03 refactor(printer): 简化人脸二维码生成逻辑
- 移除原有的复杂二维码生成和文件操作代码
- 使用 pcFaceService.bindWxaCode 方法替代
- 直接重定向到生成的二维码 URL
- 消除临时文件创建和删除操作
- 简化 HTTP 响应处理流程
2026-01-16 16:26:47 +08:00
8198b0c537 feat(watermark): 添加拼图水印模板构建器
- 实现拼图默认水印模板构建器,支持原图区域和底部信息区域布局
- 实现拼图打印水印模板构建器,增加四周白边设计
- 配置二维码、头像、景区名和日期时间的文字布局
- 支持动态数据绑定和图片元素的COVER模式显示
- 提供可选的头像圆形裁剪功能和右对齐文字显示
2026-01-16 16:16:59 +08:00
0235d1d121 feat(watermark): 添加水印边缘渲染模板构建功能
- 实现抽象水印模板构建器基类提供通用构建工具方法
- 定义水印模板构建器接口规范模板构建契约
- 实现徕卡风格水印模板构建器支持底部扩展布局
- 实现普通风格水印模板构建器支持左下角布局
- 实现打印专用水印模板构建器支持缩放和偏移
- 创建水印边缘任务服务统一管理模板构建流程
- 添加水印请求参数类定义边缘渲染所需字段
- 实现水印模板构建结果类封装模板元素和动态数据
- 集成拼图边缘渲染任务服务实现异步渲染机制
2026-01-16 15:21:38 +08:00
8d5a10cce1 feat(puzzle): 添加水印拼图功能支持
- 在 PuzzleEdgeRenderTaskEntity 中新增 taskType 和 watermarkType 字段
- 添加 TASK_TYPE_PUZZLE 和 TASK_TYPE_WATERMARK 常量定义
- 新增 PuzzleWatermarkMapper 依赖注入
- 实现 handleWatermarkTaskSuccess 方法处理水印拼图任务成功逻辑
- 修改 taskSuccess 方法根据任务类型分别处理原始拼图和水印拼图
- 新增 createWatermarkRenderTask 方法创建水印拼图边缘渲染任务
- 为水印拼图任务添加独立的存储目录和文件命名规则
- 实现水印拼图结果写入 puzzle_watermark 表的功能
2026-01-16 13:56:29 +08:00
eba727b446 feat(puzzle): 添加拼图水印功能支持
- 创建 PuzzleWatermarkEntity 实体类用于存储拼图水印信息
- 定义水印类型、URL、关联记录ID等关键字段
- 实现 PuzzleWatermarkMapper 数据访问层接口
- 提供新增水印记录的 insert 方法
- 添加批量查询水印的 listByRecordIds 方法
- 实现按记录和类型查询单条水印的 getByRecordAndType 方法
- 支持按人脸ID和水印类型进行条件查询
- 为拼图不同场景下的水印版本管理提供数据支撑
2026-01-16 13:55:40 +08:00
27a18096b5 feat(face): 添加小程序码异步预生成功能
- 在人脸创建后异步预生成小程序码,提升后续获取速度
- 实现小程序码文件按日期目录存储优化文件管理
- 添加阿里云OSS内网域名替换为公网域名的逻辑
- 增加小程序码文件存在性检查避免重复生成
- 添加异步任务异常处理和日志记录机制
- 优化文件路径命名规则提高系统可维护性
2026-01-16 11:59:01 +08:00
d15d070cb4 refactor(puzzle): 重构拼图功能实现会员拼图关联管理
- 移除原有的图片裁切功能和userArea字段
- 删除originalImageUrl字段,统一使用resultImageUrl
- 添加MemberPuzzleEntity实体类管理会员拼图关联关系
- 创建MemberPuzzleMapper接口及XML映射文件
- 实现PuzzleRelationProcessor处理器负责关联记录创建
- 在拼图生成完成后自动创建会员拼图关联记录
- 添加景区配置中的免费拼图数量设置
- 实现免费拼图逻辑控制
- 更新拼图模板和生成记录的数据结构
- 修改AppPuzzleController中图片URL的获取方式
- 优化PuzzleEdgeRenderTaskService中的图片处理流程
2026-01-16 11:23:21 +08:00
fb4568721a feat(template): 添加景区模板封面接口的token忽略注解
- 在AppTemplateController中导入IgnoreToken注解
- 为getScenicTemplateCoverUrls方法添加@IgnoreToken注解以允许匿名访问
- 确保景区模板封面获取接口无需身份验证即可访问
2026-01-15 18:25:28 +08:00
63d31d69a9 feat(puzzle): 实现拼图模板缓存功能
- 集成 PuzzleRepository 缓存层替代直接数据库查询
- 在 PriceBiz 中使用缓存查询拼图模板数据
- 在 AppTemplateController 中添加景区模板封面URL批量获取接口
- 在 PuzzleTemplateServiceImpl 中实现模板增改时的缓存清理逻辑
- 在 FaceServiceImpl 中使用缓存查询拼图模板
- 优化模板查询性能并减少数据库压力
2026-01-15 17:01:17 +08:00
2fb6aa42cf feat(image): 添加图片叠加功能支持
- 新增 OverlayImageConfig 类用于配置叠加图片参数
- 支持通过 imageKey 从 dynamicData 动态获取图片 URL
- 提供默认图片 URL 配置选项
- 支持设置叠加图片宽高比例(0.0-1.0 范围)
- 实现图片适配模式配置(CONTAIN、COVER、FILL、SCALE_DOWN)
- 添加圆角半径配置,支持自动圆形效果
- 支持水平垂直对齐方式设置(CENTER、LEFT、RIGHT、TOP、BOTTOM)
- 提供水平垂直偏移量调节功能
- 更新配置验证逻辑,增加叠加图片配置校验
- 修改图片 URL 校验规则,支持动态数据填充
- 更新 JSON Schema 配置模板,包含叠加图片配置项
2026-01-15 13:36:13 +08:00
fed92c5445 feat(face): 添加人脸绑定功能
- 实现了 faceId 绑定接口
- 集成了人脸识别服务匹配功能
- 添加了绑定状态参数支持
2026-01-14 21:59:56 +08:00
6d774e4d76 fix(print): 修复打印队列添加逻辑
- 将打印记录ID参数
2026-01-14 10:11:07 +08:00
57b71c309e feat(task): 添加视频ID到下载通知任务
- 在DownloadNotificationTasker中添加videoId变量到模板参数
- 将item.getVideoId()方法调用结果存入variables映射中
- 确保视频ID信息能够在通知模板中正确渲染使用
2026-01-13 11:17:34 +08:00
93e28828ad fix(statistics): 修复统计数据合并中的类型转换问题
- 将订单数据转为 Map 时使用 String.valueOf 处理 Object 类型数值
- 在合并数据时对时间键和金额字段进行字符串类型转换
- 防止因数值类型不匹配导致的数据丢失问题
2026-01-12 22:36:00 +08:00