Commit Graph

1248 Commits

Author SHA1 Message Date
d1962ed615 refactor(clickhouse): 将统计数据查询从 MyBatis 迁移到 JDBC 模板
- 移除 ClickHouseStatsMapper 接口及 XML 映射文件
- 使用 NamedParameterJdbcTemplate 替代 MyBatis 实现数据查询
- 添加日期格式化工具类处理 ClickHouse 时间格式
- 重构所有统计查询方法使用原生 SQL 字符串构建
- 添加 MySQL 主数据源配置确保多数据源正确配置
- 升级 ClickHouse JDBC 驱动版本到 0.8.5
- 解决 0.6.x 版本参数绑定问题通过手动 SQL 构建
- 保持原有查询逻辑不变仅改变实现方式
2026-01-04 13:17:01 +08:00
e1023b6ea8 refactor(stats): 移除统计追踪模块相关代码
- 删除 StatsBiz 业务类
- 移除 TraceController 控制器及其接口实现
- 删除 AddTraceReq 数据传输对象
- 移除 StatsEntity 和 StatsRecordEntity 实体类
- 移除 StatsInterceptor 拦截器
- 删除 StatsMapper 和 StatsRecordMapper 数据访问接口
- 移除 StatsService 服务接口及 StatsServiceImpl 实现类
- 删除 StatsUtil 工具类
2026-01-04 12:16:01 +08:00
aec5e57df7 feat(database): 迁移统计数据查询到ClickHouse
- 添加ClickHouse数据源配置和相关依赖
- 实现ClickHouse统计查询服务和MySQL兜底方案
- 新增扫码统计、订单统计等数据查询接口
- 重构分销员数据统计逻辑,整合MySQL和ClickHouse数据源
- 更新应用配置文件以支持ClickHouse启用开关
- 修改分布式任务统计以支持跨库查询场景
2026-01-04 10:34:17 +08:00
32297dc29c refactor(printer): 优化人脸素材查询逻辑
- 移除不必要的MemberSourceEntity和相关Repository依赖
- 将数据查询逻辑从Repository层迁移到Mapper层
- 添加type参数支持素材类型过滤
- 修复方法注释中的人脸ID描述错误
- 直接返回SourceEntity列表避免额外的转换操作
2026-01-03 23:46:58 +08:00
21d8c56e82 feat(puzzle): 添加拼图模块缓存仓库并集成缓存功能
- 新增 PuzzleRepository 缓存仓库类,提供模板和元素的 Redis 缓存功能
- 实现模板按 ID 和编码的双向缓存,减少数据库查询压力
- 实现元素列表按模板 ID 缓存,避免重复查询
- 在模板服务中集成缓存,更新和删除时自动清除相关缓存
- 在生成服务中使用缓存读取模板和元素数据
- 添加缓存过期机制,设置 24 小时自动过期
- 实现批量缓存清除功能,支持按模式删除缓存
2026-01-01 21:39:43 +08:00
f8374519c3 feat(puzzle): 添加拼图生成异步处理能力
- 移除 @RequiredArgsConstructor 注解,改用手动构造函数注入
- 添加 ThreadPoolExecutor 实现拼图生成异步处理
- 新增 generateAsync 方法支持异步生成拼图
- 新增 generateSync 方法支持同步生成拼图
- 重构核心生成逻辑为 doGenerateInternal 方法供同步异步共用
- 在 FaceMatchingOrchestrator 中优化拼图模板生成逻辑
- 支持根据场景选择同步或异步生成模式
- 添加线程池队列大小监控和日志记录
2026-01-01 21:26:34 +08:00
44f5008fd1 refactor(task): 优化重复任务处理逻辑
- 移除旧任务更新逻辑,简化重复任务处理流程
- 替换视频查询方法调用,使用新的存储库方法
- 保持任务缓存清除功能
- 简化日志输出信息
2026-01-01 19:55:33 +08:00
6e0ebcd1bd fix(puzzle): 优化拼图生成失败日志记录
- 修改日志记录格式,添加异常消息详情
- 保持错误响应信息的一致性
2026-01-01 19:43:13 +08:00
5caf9a0ebf refactor(face): 重构人脸服务接口和实现
- 修改 getById 方法返回类型为 FaceEntity 并直接调用仓库层
- 移除删除人脸时的用户权限检查逻辑
- 删除 contentListUseDefaultFace 方法的实现
- 从服务接口中移除 contentListUseDefaultFace 方法定义
2026-01-01 19:40:45 +08:00
06bc2c2020 refactor(scenic): 移除景区移动端控制器和服务中的分页查询功能
- 删除 AppScenicController 中的 pageQuery 接口方法
- 删除 AppScenicController 中的 deviceCountByScenicId 接口方法
- 删除 AppScenicController 中的 scenicListByLnLa 接口方法
- 从 AppScenicService 接口中移除 pageQuery 方法定义
- 从 AppScenicService 接口中移除 deviceCountByScenicId 方法定义
- 从 AppScenicService 接口中移除 scenicListByLnLa 方法定义
- 完全移除 AppScenicController 类文件
- 简化 AppScenicServiceImpl 中
2026-01-01 19:32:49 +08:00
81dc2f1b86 feat(printer): 添加景区ID参数并优化用户照片打印去重逻辑
- 在价格计算请求中添加景区ID参数
- 实现用户照片按sourceId去重机制,避免重复添加相同照片
- 查询用户在景区的已有打印记录用于去重判断
- 优化普通照片打印商品项,添加设备ID属性信息
- 过滤无效数据并去重后生成设备ID属性列表
2025-12-31 23:37:00 +08:00
41e90bab9c fix(task): 修复任务重复处理中的日志和更新逻辑
- 移除了创建任务日志中的敏感参数信息
- 更新重复任务日志以包含任务ID信息
- 移除了workerId重置逻辑,改为显式清除方法
- 修复TaskMapper中status字段的SQL语法问题
- 优化了任务参数更新的处理流程
2025-12-31 20:36:31 +08:00
b4628bd3e8 refactor(task): 优化重复任务处理逻辑
- 修复重复任务时直接使用旧任务ID的问题
- 实现重复任务的更新机制:重置workerId为空,status为0
- 添加taskParams的更新功能
- 集成任务缓存清理机制
- 修正订单购买状态检查的参数传递
2025-12-31 20:03:58 +08:00
cfb4284b7c refactor(video): 优化视频片段获取任务的设备配对处理
- 添加 Caffeine 缓存优化景区设备配对关系查询性能
- 实现设备配对关系缓存机制,避免重复数据库查询
- 重构线程安全的回调调用逻辑,使用 compareAndSet 保证原子性
- 添加调试日志的条件判断,减少不必要的日志输出
- 优化任务执行流程,调整线程池关闭和资源清理逻辑
- 实现设备配对关系加载方法,返回不可变Map提高安全性
2025-12-31 19:50:44 +08:00
5a61432dc9 refactor(orchestrator): 优化人脸匹配拼图模板生成逻辑
- 引入线程同步机制确保打印机场景下拼图模板生成完成
- 修改 asyncGeneratePuzzleTemplate 方法返回 Thread 对象便于控制
- 使用虚拟线程池优化拼图模板并发生成性能
- 简化原子计数器和异步任务相关代码实现
- 添加线程 join 等待确保关键场景执行顺序
- 修复方法返回值类型和资源管理相关问题
2025-12-31 19:50:18 +08:00
91160a1adb fix(task): 修复任务重复创建和空指针问题
- 在原位替换模式下设置taskParams为null,避免按参数匹配
- 添加isReuseOldTask标识判断是否复用旧任务
- 复用旧任务时执行更新操作而非新增操作
- 添加member和item空值检查,防止空指针异常
- 优化日志记录,提供更准确的操作信息
2025-12-30 18:12:29 +08:00
991a8b10e3 fix(printer): 解决图片类型设置逻辑问题
- 添加source为空时的图片类型判断逻辑
- 当source为空时将图片类型设置为PUZZLE
- 保持原有source不为空时的IPC类型设置逻辑
- 确保PHONE类型的设置逻辑不受影响
2025-12-30 17:49:39 +08:00
ab1e8cf7ef fix(printer): 解决图片类型设置逻辑问题
- 添加source为空时的图片类型判断逻辑
- 当source为空时将图片类型设置为PUZZLE
- 保持原有source不为空时的IPC类型设置逻辑
- 确保PHONE类型的设置逻辑不受影响
2025-12-30 17:34:30 +08:00
2a3b4ca19f fix(video): 修复设备视频连续性检查缓存覆盖问题
All checks were successful
ZhenTu-BE/pipeline/head This commit looks good
- 为VideoContinuityReportReq的gaps字段添加空列表默认值
- 在设备不支持连续性检查时检查Redis中是否已存在外部上报的缓存记录
- 避免已有的外部上报缓存被内部检查结果覆盖
- 保持已有缓存记录的完整性,仅在无缓存时进行存储
2025-12-30 10:49:58 +08:00
85599aa84a feat(pc): 添加外部工具上报视频连续性检查结果接口
- 添加 @IgnoreToken 注解支持无需认证的上报功能
- 新增 reportContinuityResult 方法处理外部工具上报请求
- 实现根据设备编号查询设备ID的逻辑
- 添加视频连续性检查结果的缓存存储功能
- 支持间隙信息的转换和存储到Redis
- 设置24小时缓存TTL策略
- 完善日志记录和异常处理机制
2025-12-30 10:45:04 +08:00
fbd4cfa83c refactor(integration): 将降级缓存从Redis迁移到Caffeine内存缓存
- 移除RedisTemplate依赖,改用Caffeine作为缓存实现
- 添加缓存互斥锁机制,避免并发请求打崩下游服务
- 统一缓存策略:有缓存直接返回,无缓存调用远程并缓存结果
- 调整缓存TTL配置,从天单位改为分钟单位
- 更新缓存统计信息结构,TTL字段从天改为分钟
- 优化批量清除缓存逻辑,使用流式过滤处理
- 简化缓存操作API,移除无返回值的执行方法
2025-12-29 17:32:13 +08:00
4596a61ba8 feat(ExtraDevice): 添加外部设备管理功能
- 创建了 ExtraDeviceController 提供分页查询外部设备列表的API接口
- 新增 ExtraDeviceService 和 ExtraDeviceServiceImpl 实现设备查询逻辑
- 添加 ExtraDevicePageQueryReq 和 ExtraDeviceRespVO 请求响应数据模型
- 扩展 ExtraDeviceMapper 支持分页查询外部设备列表
- 实现景区名称填充和设备在线状态判断功能
- 集成 Redis 获取设备心跳时间判断在线状态
- 添加了完整的参数校验和异常处理机制
2025-12-29 16:06:32 +08:00
d6780ccb7a feat(face): 添加打印机大屏人脸识别试点功能
- 在PrinterTvController中添加tv场景参数,用于触发打印机大屏识别试点逻辑
- 在FaceMatchingScene枚举中新增PRINTER_TV_RECOGNIZE场景,支持仅执行识别补救落库建关系
- 在FaceMatchingPipelineFactory中创建打印机大屏识别试点Pipeline,包含识别补救落库建关系等阶段
- 在FaceServiceImpl中添加打印机大屏人脸识别的专门处理方法matchFaceIdForPrinterTv
- 通过scene参数区分普通人脸识别和打印机大屏识别试点流程
2025-12-29 11:34:10 +08:00
58e8189b13 perf(face): 提高人脸匹配严格度阈值
- 将人脸匹配的严格度分数从0.6调整为0.75
- 增强人脸识别的准确性要求
2025-12-28 17:07:07 +08:00
84cb5ad8f9 refactor(face): 优化人脸识别服务中的购买验证逻辑
- 移除多余的空格格式
- 删除重复的购买验证逻辑
- 移除临时解决方案代码
- 简化条件判断流程
2025-12-28 13:58:04 +08:00
71bfa00c25 refactor(member): 移除会员响应对象中的冗余字段
- 移除了推客优惠码、推客id和用户协议同意状态字段
- 移除了创建时间、更新时间和订单数量等不必要字段
- 移除了服务通知开关设置
- 清理了会员服务实现中相关的字段赋值逻辑
2025-12-26 20:03:50 +08:00
1916dd96a2 feat(video): 添加移动端HLS视频流播放列表生成功能
- 实现AppVideoStreamController提供HLS播放列表生成接口
- 添加HlsStreamRequest和HlsStreamResponse数据传输对象
- 实现HlsStreamService服务类处理视频流逻辑
- 支持生成JSON格式和m3u8文件格式的播放列表
- 提供视频片段查询和设备视频HLS播放列表生成功能
- 支持EVENT和VOD两种播放列表类型
- 集成设备存储操作器获取视频文件列表
- 实现播放列表内容构建和视频片段时长计算功能
2025-12-26 15:37:22 +08:00
c583d4b007 feat(video): 添加通过faceId查询最新视频记录功能
- 在AppVideoController中新增getLatestByFaceId接口
- 添加VideoRespVO响应对象导入
- 实现通过faceId和可选templateId查询最新视频记录的功能
- 在VideoMapper中定义queryLatestByFaceIdAndTemplateId方法
- 在VideoRepository中实现查询逻辑
- 在VideoMapper.xml中添加对应的SQL查询语句
- 支持根据faceId和templateId条件查询最新视频记录
- 添加相应的日志记录和异常处理机制
2025-12-26 15:35:27 +08:00
50ee14cf8f feat(mobile): 添加移动端模板接口
- 实现了 AppTemplateController 控制器
- 添加了根据模板ID获取封面URL的接口
- 集成了 TemplateRepository 数据访问层
- 实现了模板ID参数校验逻辑
- 添加了模板不存在的错误处理
- 实现了封面URL为空的验证机制
2025-12-24 10:31:13 +08:00
3f4d3cb7ac refactor(scenic): 替换ScenicConfigEntity为ScenicConfigManager
- 将所有使用ScenicConfigEntity的地方替换为ScenicConfigManager
- 更新获取景区配置的方法调用
- 修改属性访问方式为通过manager的getter方法
- 移除已废弃的ScenicConfigEntity类及相关方法
- 统一配置读取接口,提高代码一致性与可维护性
2025-12-19 19:02:37 +08:00
f2ba5ed65b refactor(task): 移除视频重新上传功能及相关依赖
- 删除 VideoReUploader 类及其相关注入依赖
- 移除 VideoReUploader 的调用逻辑
- 清理无用的导入语句及测试类文件
- 简化视频处理流程,去除冗余操作步骤
2025-12-19 17:21:41 +08:00
677893272a refactor(pricing): 移除冗余的产品属性键缓存逻辑
- 删除了产品属性键的缓存处理逻辑
- 简化了价格计算服务中的商品处理流程
- 移除了不再使用的产品属性键设置方法调用
2025-12-19 09:21:23 +08:00
956ace77a8 fix(pricing): 调整优惠券配置插入字段顺序
- 修改了 price_coupon_config 表的插入字段顺序
- 确保 SQL 插入语句字段与值一一对应
- 避免因字段顺序不一致导致的数据插入错误
2025-12-18 19:51:35 +08:00
08e2a4ebec fix(face): 更新拼图模板分组名称
- 将拼图模板分组名称从 "plog" 更改为 "氛围拼图"
- 确保与产品需求文档中的命名一致
- 避免因分组名称不明确导致的内容分类错误
2025-12-18 19:46:28 +08:00
3c8b3b0ace refactor(printer): 重构人脸素材查询接口
- 移除对SourceMapper的依赖
- 新增MemberRelationRepository和SourceRepository依赖
- 修改getSourceByFaceSampleId方法参数faceSampleId为faceId
- 方法返回类型由SourceEntity改为List<SourceEntity>
- 使用memberRelationRepository查询关联素材
- 当查询结果为空时返回空集合而非失败响应
- 通过sourceRepository获取具体资源信息并转换返回
2025-12-18 19:40:24 +08:00
94b37d47ec feat(printer): 添加照片属性键功能支持
- 引入SourceRepository依赖以获取设备ID
- 在打印服务中新增对照片来源属性的处理逻辑
- 根据用户照片列表生成唯一的设备ID集合
- 将生成的属性键列表关联到普通照片项中
- 优化打印数量统计逻辑,确保数据准确性
- 增强打印任务构建时的数据完整性校验
2025-12-18 11:18:45 +08:00
cd4422eb23 feat(printer): 优化自动发券逻辑并支持多种产品类型
- 移除了对source类型为3的检查逻辑
- 简化了自动发券的触发条件判断
- 新增对effectCount大于0时发放PHOTO_PRINT_FX类型优惠券的支持
- 保留了原有的异常处理机制确保不影响主流程
- 维持了mobileCount相关的业务逻辑不变
2025-12-18 11:13:38 +08:00
8dc0e993e1 refactor(utils): 替换雪花ID生成工具实现
- 移除自定义的雪花ID生成逻辑
- 引入Hutool的Snowflake工具类
- 简化ID生成方法,提高代码可维护性
- 移除相关的测试类文件
- 删除不再使用的UniqueId和UniqueIdMetaData模型类
2025-12-18 10:55:58 +08:00
2432cf496f test(puzzle): 更新测试用例以适配新的方法签名并增强唯一性验证
- 在 PuzzleGenerateServiceDeduplicationTest 中引入 CustomFaceSearchStage 类
- 添加 SpringBootTest 注解以支持完整的上下文加载
- 使用 InjectMocks 替代手动构造服务实例
- 修改 recordMapper.updateSuccess 方法调用,增加一个 String 参数
- 新增 SnowFlakeUtilTest 类用于测试雪花ID生成器的唯一性和性能
- 添加高并发环境下的ID唯一性校验逻辑
- 引入对潜在时间戳溢出问题的检测机制
- 增加单线程性能测试方法 testPerformanceSingleThread
2025-12-18 10:35:19 +08:00
95a5977ae2 feat(puzzle): 添加模板打印相关字段
- 在 PuzzleTemplateDTO 中新增 autoAddPrint 字段表示自动添加到打印队列
- 在 PuzzleTemplateDTO 中新增 canPrint 字段表示是否可以打印
- 在 PuzzleTemplateDTO 中新增 userArea 字段表示用户查看区域
- 在 TemplateCreateRequest 中新增 autoAddPrint 字段表示自动添加到打印队列
- 在 TemplateCreateRequest 中新增 canPrint 字段表示是否可以打印
- 在 TemplateCreateRequest 中新增 userArea 字段表示用户查看区域
2025-12-18 10:32:21 +08:00
7e157eaba9 feat(pricing): 新增优惠券属性门槛校验功能
- 在PriceCouponConfig实体中新增requiredAttributeKeys字段,用于配置优惠券使用门槛
- 修改MyBatis Mapper SQL语句,支持新字段的插入和更新操作
- 在CouponManagementServiceImpl中增加对requiredAttributeKeys的格式校验逻辑
- 更新CouponServiceImpl的优惠券适用性检查逻辑,增加属性门槛判断
- 在PriceCalculationServiceImpl中实现商品属性Key的自动计算与填充
- 优化价格计算服务中的能力缓存与属性Key构建逻辑
- 更新CLAUDE.md文档,补充属性门槛特性的说明
2025-12-17 23:49:20 +08:00
00dd6a16a3 refactor(face): 调整人脸识别匹配逻辑以支持场景参数
- 修改 PrinterTvController 中 faceUpload 方法的 scene 参数值从 print 改为 tv
- 在 FaceServiceImpl 中为人脸匹配方法增加 scene 参数支持
- 更新 FaceMatchingOrchestrator 的 orchestrateMatching 方法签名以接收 scene 参数
- 在 FaceService 接口中新增带 scene 参数的 matchFaceId 方法定义
- 更新 VideoTaskGenerator 中调用 matchFaceId 方法时传入 scene 参数
2025-12-17 23:16:48 +08:00
9e6b623b0e feat(printer): 优化打印机大屏人脸识别接口
- 移除多余依赖和字段声明
- 简化人脸识别逻辑,复用 faceUpload 方法
- 保留人脸去重检测和自动添加打印逻辑
- 修改返回结构为 FaceRecognizeResp
- 删除旧有的照片上传与素材查询流程
2025-12-17 23:12:49 +08:00
10b39ec4c1 feat(puzzle): 支持拼图原图保存与自动打印功能
- 在PuzzleGenerationRecordEntity中新增originalImageUrl字段用于存储未裁切的原图URL
- 在PuzzleTemplateEntity中新增autoAddPrint、canPrint和userArea字段支持打印配置
- 更新PuzzleGenerationRecordMapper.xml以支持新字段的读写操作
- 在PuzzleGenerateServiceImpl中实现原图上传、用户区域裁切以及自动添加到打印队列逻辑
- 新增cropImage方法处理图片按指定区域裁切
- 集成PrinterService实现拼图完成后自动添加到打印队列功能
- 优化生成流程日志记录,区分原图和最终图片的URL信息
2025-12-17 22:56:50 +08:00
3e938ad171 refactor(order): 移除优惠券相关业务逻辑
- 删除 CouponBiz 类及其所有方法调用
- 移除 OrderBiz 中对优惠券使用的处理逻辑
- 清理 PriceBiz 中与优惠券查询相关的代码
- 移除 GoodsServiceImpl 中的优惠券查询功能
- 删除 OrderServiceImpl 中创建订单时的优惠券计算逻辑
- 移除多个类中对 CouponBiz 的依赖注入
- 清理与优惠券记录和折扣价格计算相关的冗余代码
2025-12-17 22:16:16 +08:00
6c404e210e feat(source): 新增虚拟订单创建接口
- 添加 createVirtualOrder 接口用于后台创建0元订单
- 引入 PrinterService 和相关请求实体类
- 支持通过 sourceId、scenicId 和 printerId 创建订单
- 实现异常捕获并返回失败响应
- 扩展 SourceController 功能模块
2025-12-17 22:09:27 +08:00
25681806c3 feat(printer): 支持查询不同类型的图像素材
- 为getSourceByFaceSampleId接口添加type参数,默认值为2
- 修改sourceMapper调用,传入动态type参数
- 移除未使用的scenicService和faceService依赖
- 引入Map类但尚未使用,可能为后续功能预留
2025-12-17 22:08:58 +08:00
99d0b9c340 feat(printer): 实现虚拟用户0元订单创建功能
- 新增CreateVirtualOrderRequest请求参数类
- 实现createVirtualOrder服务方法,支持根据source创建虚拟用户订单
- 自动生成虚拟用户ID并创建对应的人脸记录
- 创建member_print记录并设置照片数量
- 支持指定或自动选择景区内可用打印机
- 创建0元订单并触发购买后逻辑
- 返回订单相关信息包括orderId、faceId等
- 添加详细的日志记录便于调试和追踪
- 实现完整的异常处理和参数校验
2025-12-17 22:07:42 +08:00
8e0990832b feat(ai-cam): 实现AI相机免费照片赠送逻辑
- 新增统计免费关联记录数的Mapper方法
- 在AppAiCamServiceImpl中注入ScenicRepository依赖
- 删除旧关系前查询已有免费记录避免重复赠送
- 根据景区配置获取免费照片数量
- 随机选择免费照片并标记为免费状态
- 保留已存在的免费照片记录
- 更新日志记录以区分普通和免费照片数量
2025-12-17 20:47:21 +08:00
144c338972 feat(profitshare): 添加接收人ID字段
- 在CreateRecipientRequest类中新增id字段
- 支持接收人唯一标识的传递
- 完善接收人创建请求的数据结构
2025-12-17 17:53:09 +08:00