You've already forked FrameTour-BE
feat(pricing): 添加一口价购买功能
- 新增 OnePricePurchaseController 控制器 - 新增 OnePriceConfigFilterRequest、OnePriceConfigRequest、OnePriceInfo等 DTO 类 - 新增 PriceOnePriceConfig 实体类和对应的 Mapper 接口 - 实现 OnePricePurchaseDiscountProvider 优惠提供者 - 实现 OnePricePurchaseServiceImpl 服务实现类 -定义 IOnePricePurchaseService服务接口 - 优化 DiscountDetail 类,添加创建一口价折扣的方法 - 修改 CLAUDE.md,将 error 方法改为 fail 方法
This commit is contained in:
@@ -86,5 +86,17 @@ public class DiscountDetail {
|
||||
detail.setSortOrder(5); // 打包购买排在后面
|
||||
return detail;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 创建一口价购买折扣明细
|
||||
*/
|
||||
public static DiscountDetail createOnePriceDiscount(BigDecimal discountAmount) {
|
||||
DiscountDetail detail = new DiscountDetail();
|
||||
detail.setDiscountType("ONE_PRICE_PURCHASE");
|
||||
detail.setDiscountName("一口价购买优惠");
|
||||
detail.setDiscountAmount(discountAmount);
|
||||
detail.setDescription("一口价购买,价格更优惠");
|
||||
detail.setSortOrder(4); // 一口价排在打包购买之前
|
||||
return detail;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.ycwl.basic.pricing.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 一口价配置筛选请求DTO
|
||||
*/
|
||||
@Data
|
||||
public class OnePriceConfigFilterRequest {
|
||||
|
||||
/**
|
||||
* 页码
|
||||
*/
|
||||
private Integer pageNum = 1;
|
||||
|
||||
/**
|
||||
* 页大小
|
||||
*/
|
||||
private Integer pageSize = 10;
|
||||
|
||||
/**
|
||||
* 景区ID(筛选条件)
|
||||
*/
|
||||
private Long scenicId;
|
||||
|
||||
/**
|
||||
* 配置名称(模糊查询)
|
||||
*/
|
||||
private String configName;
|
||||
|
||||
// 移除faceId字段,一口价是景区级别的统一价格
|
||||
|
||||
/**
|
||||
* 启用状态
|
||||
*/
|
||||
private Boolean isActive;
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.ycwl.basic.pricing.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 一口价配置请求DTO
|
||||
*/
|
||||
@Data
|
||||
public class OnePriceConfigRequest {
|
||||
|
||||
/**
|
||||
* 配置名称
|
||||
*/
|
||||
private String configName;
|
||||
|
||||
/**
|
||||
* 景区ID
|
||||
*/
|
||||
private Long scenicId;
|
||||
|
||||
// 移除faceId字段,一口价是景区级别的统一价格
|
||||
|
||||
/**
|
||||
* 一口价格
|
||||
*/
|
||||
private BigDecimal onePrice;
|
||||
|
||||
/**
|
||||
* 原价(用于计算和展示优惠金额)
|
||||
*/
|
||||
private BigDecimal originalPrice;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
private Boolean isActive;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private LocalDateTime startTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private LocalDateTime endTime;
|
||||
|
||||
/**
|
||||
* 是否可与优惠券叠加使用
|
||||
*/
|
||||
private Boolean canUseCoupon;
|
||||
|
||||
/**
|
||||
* 是否可与券码叠加使用
|
||||
*/
|
||||
private Boolean canUseVoucher;
|
||||
}
|
||||
59
src/main/java/com/ycwl/basic/pricing/dto/OnePriceInfo.java
Normal file
59
src/main/java/com/ycwl/basic/pricing/dto/OnePriceInfo.java
Normal file
@@ -0,0 +1,59 @@
|
||||
package com.ycwl.basic.pricing.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 一口价信息DTO(用于优惠检测)
|
||||
*/
|
||||
@Data
|
||||
public class OnePriceInfo {
|
||||
|
||||
/**
|
||||
* 配置ID
|
||||
*/
|
||||
private Long configId;
|
||||
|
||||
/**
|
||||
* 配置名称
|
||||
*/
|
||||
private String configName;
|
||||
|
||||
/**
|
||||
* 景区ID
|
||||
*/
|
||||
private Long scenicId;
|
||||
|
||||
// 移除faceId字段,一口价是景区级别的统一价格
|
||||
|
||||
/**
|
||||
* 一口价格
|
||||
*/
|
||||
private BigDecimal onePrice;
|
||||
|
||||
/**
|
||||
* 原价(用于计算和展示优惠金额)
|
||||
*/
|
||||
private BigDecimal originalPrice;
|
||||
|
||||
/**
|
||||
* 实际优惠金额(当前总价 - 一口价)
|
||||
*/
|
||||
private BigDecimal actualDiscountAmount;
|
||||
|
||||
/**
|
||||
* 是否可与优惠券叠加使用
|
||||
*/
|
||||
private Boolean canUseCoupon;
|
||||
|
||||
/**
|
||||
* 是否可与券码叠加使用
|
||||
*/
|
||||
private Boolean canUseVoucher;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
}
|
||||
Reference in New Issue
Block a user