满减满折.md 4.2 KB

满减满折

商城应用

在mall4j商城系统里,有着很多的商城的营销活动,最常见之一的活动就有满减满折。

1566809957891

整体实体类关系如下图:

1566810500327

model实体类:

满减活动表(tz_discount):
@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 , 满减满折优惠id
  • shopId,店铺ID,可扩展为B2B2C模式
  • discountName,活动名称
  • discountRule ,活动规则,分为满钱减钱、 满件减钱 、 满钱打折 、满件打折

1566810994163

  • maxReduceAmount 优惠金额上限,每个用户可以获得此活动的最大优惠金额

  • discountType ,减免类型,分为按满足最高层级减一次或每满一次减一次

1566811419741

【按满足最高层级减一次】:根据活动项中满足的优惠条件经行一次计算。比如:活动的满足条件为满100元减20元、满200元减50元,优惠金额上限为200元。当我购买了总额为800元的活动商品,优惠金额只计算一次。可获的最大优惠金额为50元。

【每满一次减一次】:根据活动项中满足的优惠条件经行多次计算。比如:活动的满足条件为满100元减20元、满200元减50元,优惠金额上限为200元。当我购买了总额为800元的活动商品,优惠金额可计算多次,可获的最大优惠金额为200元,但是优惠总金额不超过优惠上限金额。

注意:只有在活动规则为“满钱减钱”、“满件减钱”模式下有效

  • startTime,活动开始时间

  • endTime,活动结束时间

  • status 活动状态分为开启或关闭

  • suitableProdType 适用商品类型分为全部商品参与、指定商品参与 、指定商品不参与,关联tz_discount_prod

1566812842196

##### 满减商品关联表(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 满减满折优惠项id
  • discountId 满减满折活动id
  • needAmount 优惠条件金额
  • discount 优惠金额或者优惠折扣

1566813723102