Commit Graph

98 Commits

Author SHA1 Message Date
e268d236f4 fix(coupon): 修复优惠券重复领取和状态检查逻辑
- 修改数据库查询方法返回类型为List以支持多条记录查询
- 更新AutoCouponServiceImpl中的重复领取检查逻辑
- 在CouponServiceImpl中实现可用优惠券筛选功能
- 优化优惠券状态验证逻辑并改进错误信息提示
- 修复使用优惠券时的状态判断条件
2026-01-20 15:53:33 +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
0eced869fa feat(pricing): 支持无限量优惠券功能
- 修改数据库更新逻辑以支持无限量优惠券
- 当 total_quantity 为 NULL 或 <= 0 时不限制使用数量
- 使用 COALESCE 函数处理空值情况
- 更新 SQL 条件判断逻辑以兼容无限量场景
2026-01-17 01:55:49 +08:00
6e345f2da4 refactor(pricing): 优化优惠券配置实体和领取逻辑
- 将时间字段类型从 LocalDateTime 改为 Date
- 为优惠券领取数量更新添加无条件增加方法
- 区分有限量和无限量优惠券的领取处理逻辑
- 实现有总量限制优惠券的库存检查机制
- 统一更新已领取数量的计数逻辑
2026-01-08 17:27:27 +08:00
d7c2c5b830 fix(coupon): 修复优惠券适用商品类型为空时的处理逻辑
- 添加空数组检查,当适用商品类型为空时不进行过滤
- 修复商品类型为空时直接返回全部商品总价的逻辑
- 保持原有商品类型过滤功能的完整性
2026-01-08 17:11:07 +08:00
07593694c8 feat(pricing): 添加优惠券配置中的申领数量和用户申领限制字段
- 在 PriceCouponConfigMapper 中新增 claimed_quantity 和 user_claim_limit 字段映射
- 更新 INSERT 语句以包含新的申领相关字段
- 修改 insertCoupon 方法以支持优惠券申领数量控制功能
2026-01-08 16:48:53 +08:00
e0856a1b9c feat(pricing): 添加场景优惠券功能
- 创建场景优惠券领取控制器,提供前端优惠券领取接口
- 创建场景优惠券配置管理控制器,提供后台管理端配置接口
- 定义场景优惠券领取和配置相关的请求响应DTO
- 创建场景优惠券配置实体和数据库表结构
- 实现场景优惠券配置的数据访问和业务逻辑处理
- 实现场景优惠券领取功能,支持景区隔离和默认配置回退
- 添加优惠券领取状态检查和用户限制验证逻辑
- 实现分页查询和配置管理功能
2026-01-06 18:30:23 +08:00
3f4d3cb7ac refactor(scenic): 替换ScenicConfigEntity为ScenicConfigManager
- 将所有使用ScenicConfigEntity的地方替换为ScenicConfigManager
- 更新获取景区配置的方法调用
- 修改属性访问方式为通过manager的getter方法
- 移除已废弃的ScenicConfigEntity类及相关方法
- 统一配置读取接口,提高代码一致性与可维护性
2025-12-19 19:02:37 +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
7e157eaba9 feat(pricing): 新增优惠券属性门槛校验功能
- 在PriceCouponConfig实体中新增requiredAttributeKeys字段,用于配置优惠券使用门槛
- 修改MyBatis Mapper SQL语句,支持新字段的插入和更新操作
- 在CouponManagementServiceImpl中增加对requiredAttributeKeys的格式校验逻辑
- 更新CouponServiceImpl的优惠券适用性检查逻辑,增加属性门槛判断
- 在PriceCalculationServiceImpl中实现商品属性Key的自动计算与填充
- 优化价格计算服务中的能力缓存与属性Key构建逻辑
- 更新CLAUDE.md文档,补充属性门槛特性的说明
2025-12-17 23:49:20 +08:00
d5befd75e1 fix(pricing): 修复优惠券查询条件拼接问题
- 在每个查询条件后添加空格,避免SQL语法错误
- 确保动态SQL片段正确连接
- 优化时间范围查询条件的格式处理
2025-12-08 10:58:33 +08:00
a5fe00052d feat(pricing): 支持发放多个首次打印优惠券
- 修改自动发券逻辑,支持发放多个符合条件的首次优惠券
- 更新查找优惠券方法,返回所有匹配的优惠券ID列表
- 添加发券过程中的异常处理,确保部分失败不影响其他券发放
- 记录详细的发券日志,包括成功、跳过和失败的数量
- 优化日志输出,提供更清晰的调试信息
2025-12-07 21:41:54 +08:00
125fadd6c5 feat(basic): 新增AI微单类型支持
- 在SourceType枚举中新增AI_CAM类型及其判断方法
- 在ProductType枚举中新增AI_CAM_PHOTO_SET类型
- 扩展SourceMapper接口及XML实现删除指定faceId和type的关联记录功能
- 更新AppAiCamServiceImpl服务逻辑,在添加新关联前先删除旧记录
- 修改GoodsServiceImpl以识别并处理AI微单类型的商品名称前缀
- 在FaceServiceImpl中增加对AI微单内容的查询与展示逻辑
- 优化face相关素材分类展示,确保AI微单正确归类显示
2025-12-05 19:58:53 +08:00
24bbb63bf7 feat(config): 添加Mybatis Plus分页插件和Mapper扫描配置
All checks were successful
ZhenTu-BE/pipeline/head This commit looks good
- 配置MybatisPlusInterceptor分页插件
- 添加@MapperScan注解扫描多个mapper包
- 为多个service注入添加@Lazy注解解决循环依赖
- 在VoucherServiceImpl和PuzzleGenerateServiceImpl中启用懒加载
- 优化订单服务中的依赖注入配置
2025-12-05 16:14:43 +08:00
ee13ef09f7 refactor(pricing): 优化优惠提供者初始化和依赖注入
- 使用 @Lazy 注解解决循环依赖问题
- 重构 DiscountDetectionServiceImpl 以延迟加载优惠提供者
- 移除构造函数中的直接依赖注入,改用 ObjectProvider
- 添加线程安全的提供者初始化机制
- 移除不必要的缓存注释
2025-12-05 16:03:00 +08:00
e9a59cd466 feat(pricing): 添加商品分类枚举并扩展商品类型枚举
- 新增 ProductCategory 枚举类,定义商品分类
- 为 ProductType 枚举增加分类关联字段
- 扩展 ProductType 枚举值并按分类分组注释
- 添加获取分类代码和描述的方法
- 实现根据代码查找枚举的静态方法
- 完善枚举类的文档注释和类型安全引用
2025-11-27 18:39:43 +08:00
8a88c74df2 feat(pricing): 支持景区维度的价格配置和优惠策略控制
- 新增按景区ID查询商品配置和阶梯价格配置的方法
- 扩展价格计算服务以支持景区级别的优惠策略
- 更新优惠券和代金券提供者以使用景区维度配置
- 修改商品配置服务实现多级查询优先级(景区特定->景区默认->全局特定->全局默认)
- 添加商品类型能力服务测试用例
- 增强价格计算逻辑的容错性和向后兼容性
2025-11-27 13:55:51 +08:00
3ce3972875 refactor(order): 重构重复购买检查和定价逻辑
- 引入商品类型能力配置,替代硬编码的商品类型判断
- 实现策略模式处理不同商品类型的重复购买检查
- 抽象定价模式,支持固定价格和数量计价等不同方式
- 新增策略工厂自动注册各类检查器实现
- 添加缓存机制提升商品类型配置查询性能
- 解耦订单服务与具体商品类型的紧耦合关系
- 提高代码可维护性和扩展性,便于新增商品类型
2025-11-27 09:34:10 +08:00
8e48bd92cc feat(pricing): 添加新的产品类型枚举值
- 新增 PHOTO_LOG 类型,表示 pLog 图
- 新增 PHOTO_VLOG 类型,表示 pLog 视频
2025-11-18 15:49:41 +08:00
ebf05ab189 fix(pricing): 修复优惠券计算逻辑,防止优惠金额溢出
- 重构优惠券折扣计算方法,确保固定金额优惠券不超过适用商品总价
- 修改百分比优惠券计算逻辑,基于适用商品总价而非购物车总价
- 新增适用商品总价计算方法,支持按商品类型过滤
- 添加防止优惠金额超出适用商品总价的保护逻辑
- 完善无商品类型限制时的全商品适用逻辑
- 增加多种边界情况和多SKU场景的单元测试
- 修复百分比优惠券最大折扣限制的计算顺序问题
2025-11-17 17:38:46 +08:00
8efd16ba56 fix(coupon): 优化事务回滚标记逻辑
- 添加对无事务上下文情况的处理
- 避免在非事务环境下抛出异常
- 提高优惠券领取失败时的系统稳定性
2025-11-17 08:52:00 +08:00
7c906d5529 feat(pricing): 优化优惠券领取逻辑与并发控制
- 为 CouponInvalidException 添加错误码支持
- 在 countUserCouponClaims 查询中添加 FOR UPDATE 锁
- 新增 incrementClaimedQuantityIfAvailable 方法用于原子性增加已领取数量
- 移除重复的用户优惠券领取检查逻辑
- 调整领取流程步骤编号并优化事务回滚处理
- 增加对优惠券库存耗尽情况的业务异常处理
- 使用
2025-11-17 00:53:48 +08:00
88ad6d6b6f fix(pricing): 修复优惠券库存检查逻辑
- 修正totalQuantity为NULL或0时不限制总量的判断逻辑
- 优化claimedQuantity为空时的默认值处理
- 仅在totalQuantity大于0时更新已领取数量
- 完善MD文档中字段语义描述和配置示例
- 更新SQL表字段说明及典型配置组合示例
2025-11-17 00:30:58 +08:00
7835283f0f feat(pricing): 添加优惠券用户领取数量限制功能
- 新增用户领取数量限制字段 userClaimLimit
- 区分已领取数量 claimedQuantity 和已使用数量 usedQuantity
- 添加用户领取次数统计方法 countUserCouponClaims
- 实现领取上限检查逻辑和错误码 CLAIM_LIMIT_REACHED
- 更新数据库表结构和索引优化建议
- 完善文档说明和版本更新记录
2025-11-17 00:26:15 +08:00
9ee466bd5e fix(pricing): 移除自动发券中不必要的faceId校验
- 删除了对faceId参数的非空校验逻辑
- 保持其他参数校验不变
- 更新了日志记录中的参数列表
2025-11-16 13:17:53 +08:00
1a25848102 fix(pricing): 调整用户优惠券查询逻辑
- 修改查询条件,移除状态限制,支持查询所有状态的优惠券记录
- 更新注释说明,明确查询目的为检查用户是否领取过指定优惠券
2025-11-15 16:29:05 +08:00
4ccb563557 feat(pricing): 调整价格计算请求参数并完善优惠券使用逻辑
- 将 previewOnly 默认值从 false 改为 true
- 新增 orderId 字段用于实际使用优惠时的订单标识
- 实现优惠券使用标记逻辑,调用 couponService.useCoupon
- 添加优惠券使用日志记录,包括 couponId、userId 和 orderId
- 补充 scenicId 参数转换处理逻辑
2025-11-15 15:54:13 +08:00
515f68a6f4 feat(pricing): 移除已弃用的优惠券使用接口
- 删除 /coupons/use 接口的实现代码
- 清理相关注释和日志记录代码
- 保留查询用户可用优惠券接口不变
2025-11-15 15:53:23 +08:00
a1b0687526 feat(pricing): 添加折扣优先级设置并优化价格计算请求
- 在折扣信息中增加优先级字段,提升折扣策略的灵活性
- 为价格计算请求默认启用自动使用优惠券功能
- 设置价格预览模式为非预览状态,确保实际计算准确性
- 完善打印服务中的价格计算逻辑,提高系统稳定性
2025-11-15 14:52:53 +08:00
932081abf0 refactor(pricing): 重构自动发券服务方法命名及逻辑
- 将 autoGrantFirstPrintCoupon 方法重命名为 autoGrantCoupon
- 修改 findFirstPrintCouponId 方法名为 findFirstCouponId
- 调整优惠券名称匹配逻辑,移除对"first"关键字的检查
- 更新调用方 PrinterServiceImpl 中的方法引用
- 优化自动发券异常处理,确保不影响主流程
2025-11-15 14:28:56 +08:00
19fae4bd00 feat(pricing): 实现首次打印自动发券功能
- 新增自动发券服务接口 IAutoCouponService- 实现自动发券逻辑,包括参数校验、优惠券配置查询和发券记录检查
- 在打印服务中集成自动发券调用,确保首次打印时触发发券- 添加异常处理,避免发券失败影响主流程
- 支持通过优惠券名称和商品类型匹配规则查找目标优惠券
2025-11-14 09:10:06 +08:00
661aa4567f feat(print): 支持多种照片打印类型的价格计算
- 新增手机照片打印(PHOTO_PRINT_MU)和特效照片打印(PHOTO_PRINT_FX)枚举类型
- 在价格计算服务中增加isPrintProduct方法统一判断打印类商品
- 修改订单服务跳过打印类商品重复购买检查逻辑
-优化打印机服务根据sourceId分类统计不同照片类型数量
- 分别计算普通、手机、特效照片打印的价格和数量- 更新价格计算逻辑以支持多种打印类型商品项
2025-11-14 01:08:12 +08:00
19ca91778f fix(pricing): 调整一口价优惠默认支持逻辑
All checks were successful
ZhenTu-BE/pipeline/head This commit looks good
- 修改默认情况下不支持一口价优惠
- 更新异常处理逻辑,异常时默认返回不支持
-修复日志描述与实际逻辑不符的问题
2025-10-20 11:18:18 +08:00
dc4091e058 feat(pricing): 新增升单检测功能- 添加升单检测API端点 /api/pricing/upgrade-check
- 实现 `checkUpgrade` 核心方法,用于检测已购与待购商品组合优惠
- 支持一口价和打包优惠的综合评估逻辑- 提供详细的请求参数与响应结果结构定义
- 更新文档说明升单检测的业务价值与使用场景- 补充关键架构变更记录与兼容性注意事项
2025-10-11 21:09:36 +08:00
dad9ddc17c docs 2025-09-25 16:18:03 +08:00
59baf8811b feat(pricing): 添加商品一口价优惠支持检查
- 在 PriceProductConfig 实体中新增 canUseOnePrice 字段
- 更新数据库插入和更新语句,支持 canUseOnePrice 字段持久化- 在 OnePricePurchaseDiscountProvider 中实现商品一口价优惠支持检查逻辑
- 新增 areAllProductsSupportOnePrice 方法,验证购物车商品是否支持一口价优惠
- 支持查询具体商品配置和默认配置的一口价优惠设置
- 添加日志记录和异常处理,确保检查过程不影响主流程
2025-09-25 10:40:10 +08:00
da71e6d16f debug 2025-09-20 15:51:22 +08:00
a5c815b6ed feat(pricing): 新增升单检测功能
- 添加升单检测接口和相关 DTO 类
- 实现升单检测逻辑,包括价格汇总、一口价评估和打包优惠评估
- 优化商品列表复制和规范化处理
- 新增 IBundleDiscountService 依赖
2025-09-18 19:51:13 +08:00
e9102e8e58 feat(pricing): 新增打包购买优惠功能
- 添加打包购买优惠信息类 BundleDiscountInfo
- 实现打包购买优惠提供者 BundleDiscountProvider
- 添加打包购买优惠服务接口 IBundleDiscountService 及其实现类 BundleDiscountServiceImpl
- 在 DiscountInfo 中添加 bundleDiscountInfo 字段以支持打包优惠
- 更新 CLAUDE.md 文档,详细说明打包购买优惠系统的设计和实现
2025-09-18 11:37:23 +08:00
e86dc85afe refactor(pricing): 调整优惠优先级顺序
-
2025-09-18 10:28:35 +08:00
5212547b3a docs 2025-09-17 17:18:48 +08:00
f3fdb44742 refactor(mybatis): 移除 XML 配置,使用注解替代
- 在 PriceVoucherBatchConfigMapper、PriceVoucherCodeMapper 和 VoucherPrintRecordMapper 中添加了 @Select 和 @Update 注解
- 删除了对应的 XML 配置文件
- 优化了 SQL 查询,直接在 Java 接口中定义
2025-09-17 17:03:12 +08:00
ad111cdebb Merge branch 'page_info' into price_inquery 2025-09-17 16:54:59 +08:00
1c0c0393aa feat(pricing): 实现批次统计功能
- 查询批次配置和券码数据
- 统计每个券码的使用情况,包括状态、使用次数、剩余次数等信息
- 计算是否还能使用和剩余使用次数
- 获取使用记录数和最后使用时间
- 返回批次统计结果列表
2025-09-17 16:36:50 +08:00
5626498002 refactor(coupon): 重构优惠券领取结果封装
- 在 CouponClaimResult 类中添加 PriceCouponConfig 类型的 coupon 字段
- 修改 success 静态方法,接收 PriceCouponConfig 对象作为参数
- 更新方法内部逻辑,使用 coupon 对象替代单独的 couponName 字段
- 调整 CouponServiceImpl 中的代码,适应新的 CouponClaimResult 结构
2025-09-17 15:29:16 +08:00
b323450708 refactor(paging): 重构分页查询使用 PageHelper
-将 MyBatis-Plus 的分页插件替换为 PageHelper
- 更新了相关控制器、服务接口和实现类中的分页查询方法
- 优化了分页查询的逻辑,提高了代码的可读性和维护性
2025-09-17 12:53:32 +08:00
6006fe460c feat(pricing): 优惠券增加有效期时间范围功能
- 在VoucherBatchCreateReqV2、VoucherBatchResp、VoucherInfo 和 PriceVoucherBatchConfig 类中添加有效期开始时间和结束时间字段
- 实现有效期时间范围的验证和检查逻辑
- 更新 VoucherBatchServiceImpl 和 VoucherServiceImpl 以支持有效期时间范围功能
2025-09-16 23:49:39 +08:00