在mall4j商城系统里,有着很多的商城的营销活动,最常见之一的活动就有满减满折。
@Data
@TableName("tz_discount")
public class Discount implements Serializable {
private static final long serialVersionUID = -82534421471027766L;
/**
* 满减满折优惠id
*/
@TableId
private Long discountId;
/**
* 店铺ID
*/
private Long shopId;
/**
* 活动名称
*/
private String discountName;
/**
* 枚举DiscountRule(0 满钱减钱 1满件减钱 2 满钱打折 3:满件打折)
*/
private Integer discountRule;
/**
* 减免类型 0按满足最高层级减一次 1每满一次减一次
*/
private Integer discountType;
/**
* 适用商品类型 0全部商品参与 1指定商品参与 2指定商品不参与
*/
private Integer suitableProdType;
/**
* 最多减多少
*/
private Double maxReduceAmount;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 活动状态:1 开启 0 关闭
*/
private Integer status;
}
discountId , 满减满折优惠idshopId,店铺ID,可扩展为B2B2C模式discountName,活动名称discountRule ,活动规则,分为满钱减钱、 满件减钱 、 满钱打折 、满件打折maxReduceAmount 优惠金额上限,每个用户可以获得此活动的最大优惠金额
discountType ,减免类型,分为按满足最高层级减一次或每满一次减一次
【按满足最高层级减一次】:根据活动项中满足的优惠条件经行一次计算。比如:活动的满足条件为满100元减20元、满200元减50元,优惠金额上限为200元。当我购买了总额为800元的活动商品,优惠金额只计算一次。可获的最大优惠金额为50元。
【每满一次减一次】:根据活动项中满足的优惠条件经行多次计算。比如:活动的满足条件为满100元减20元、满200元减50元,优惠金额上限为200元。当我购买了总额为800元的活动商品,优惠金额可计算多次,可获的最大优惠金额为200元,但是优惠总金额不超过优惠上限金额。
注意:只有在活动规则为“满钱减钱”、“满件减钱”模式下有效
startTime,活动开始时间
endTime,活动结束时间
status 活动状态分为开启或关闭
suitableProdType 适用商品类型分为全部商品参与、指定商品参与 、指定商品不参与,关联tz_discount_prod表
##### 满减商品关联表(tz_discount_prod):
@Data
@TableName("tz_discount_prod")
public class DiscountProd implements Serializable {
/**
* 满减 商品 联合id
*/
@TableId
private Long discountProdId;
/**
* 满减id
*/
private Long discountId;
/**
* 商品id
*/
private Long prodId;
}
discountProdId 满减商品联合id
discountId 满减id
prodId 商品Id
##### 满减满折优惠项(tz_discount_item):
@Data
@TableName("tz_discount_item")
public class DiscountItem{
/**
* 满减满折优惠项id
*/
@TableId
private Long discountItemId;
/**
* 满减满折优惠id
*/
private Long discountId;
/**
* 所需金额
*/
private Double needAmount;
/**
* 优惠(元/折)
*/
private Double discount;
}
一个满减满折活动,可以包含多个优惠项,优惠项相当于活动条件。
discountItemId 满减满折优惠项iddiscountId 满减满折活动idneedAmount 优惠条件金额discount 优惠金额或者优惠折扣