You've already forked FrameTour-BE
价格查询,待处理订单内容
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package com.ycwl.basic.pricing.service;
|
||||
|
||||
import com.ycwl.basic.pricing.dto.CouponInfo;
|
||||
import com.ycwl.basic.pricing.dto.CouponUseRequest;
|
||||
import com.ycwl.basic.pricing.dto.CouponUseResult;
|
||||
import com.ycwl.basic.pricing.dto.ProductItem;
|
||||
import com.ycwl.basic.pricing.entity.PriceCouponConfig;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 优惠券服务接口
|
||||
*/
|
||||
public interface ICouponService {
|
||||
|
||||
/**
|
||||
* 自动选择最优优惠券
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param products 商品列表
|
||||
* @param totalAmount 总金额
|
||||
* @return 最优优惠券信息,如果没有可用优惠券则返回null
|
||||
*/
|
||||
CouponInfo selectBestCoupon(Long userId, List<ProductItem> products, BigDecimal totalAmount);
|
||||
|
||||
/**
|
||||
* 计算优惠券优惠金额
|
||||
*
|
||||
* @param coupon 优惠券配置
|
||||
* @param products 商品列表
|
||||
* @param totalAmount 总金额
|
||||
* @return 优惠金额
|
||||
*/
|
||||
BigDecimal calculateCouponDiscount(PriceCouponConfig coupon, List<ProductItem> products, BigDecimal totalAmount);
|
||||
|
||||
/**
|
||||
* 验证优惠券是否可用
|
||||
*
|
||||
* @param coupon 优惠券配置
|
||||
* @param products 商品列表
|
||||
* @param totalAmount 总金额
|
||||
* @return 是否可用
|
||||
*/
|
||||
boolean isCouponApplicable(PriceCouponConfig coupon, List<ProductItem> products, BigDecimal totalAmount);
|
||||
|
||||
/**
|
||||
* 使用优惠券
|
||||
*
|
||||
* @param request 优惠券使用请求
|
||||
* @return 使用结果
|
||||
*/
|
||||
CouponUseResult useCoupon(CouponUseRequest request);
|
||||
|
||||
/**
|
||||
* 查询用户可用优惠券
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @return 可用优惠券列表
|
||||
*/
|
||||
List<CouponInfo> getUserAvailableCoupons(Long userId);
|
||||
}
|
||||
Reference in New Issue
Block a user