package cn.iocoder.yudao.module.trade.service.price.calculator; import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO; import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO; /** * 价格计算的计算器接口 * * 优惠计算顺序: * 1. 积分抵现、会员价、优惠券、粉丝专享价、满减送哪个优先计算? * * @author 芋道源码 */ public interface TradePriceCalculator { int ORDER_SECKILL_ACTIVITY = 8; int ORDER_BARGAIN_ACTIVITY = 8; int ORDER_COMBINATION_ACTIVITY = 8; int ORDER_POINT_ACTIVITY = 8; int ORDER_DISCOUNT_ACTIVITY = 10; int ORDER_REWARD_ACTIVITY = 20; int ORDER_COUPON = 30; int ORDER_POINT_USE = 40; /** * 快递运费的计算 * * 放在各种营销活动、优惠劵后面 */ int ORDER_DELIVERY = 50; /** * 赠送积分,放最后 * * 放在 {@link #ORDER_DELIVERY} 后面的原因,是运费也会产生费用,需要赠送对应积分 */ int ORDER_POINT_GIVE = 999; void calculate(TradePriceCalculateReqBO param, TradePriceCalculateRespBO result); }