优惠券.md 5.9 KB

营销活动--优惠券

商城应用

在商城的首页中,用户可以通过领优惠券进入到商城的领券中心。

1566281562821

或者可以通过用户中心可进入查看到用户所领取的优惠券列表。

1566281878019

1566282035858

用户在提交订单时候,可以对领取可用的优惠劵进行使用

1566282208226

在后台中,商家可以操作优惠券活动

1566282532390

数据库设计

整体实体类关系如下图:

1566284592886

Model 实体类

优惠券表中:

@Data
@TableName("tz_coupon")
public class Coupon implements Serializable {
    private static final long serialVersionUID = 8018312153820119913L;
    /**
     * 优惠券ID
     */
    @TableId
    private Long couponId;

    /**
     * 店铺ID
     */

    private Long shopId;

    /**
     * 优惠券名称
     */
    private String couponName;

    /**
     * 副标题
     */
    private String subTitle;

    /**
     * 优惠类型 1:代金券 2:折扣券
     */
    private Integer couponType;

    /**
     * 使用条件
     */
    private Double cashCondition;

    /**
     * 减免金额
     */
    private Double reduceAmount;

    /**
     * 折扣额度
     */
    private Double couponDiscount;

    /**
     * 生效时间 1:固定时间 2:领取后生效
     */
    private Integer validTimeType;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 领券后X天起生效
     */
    private Integer afterReceiveDays;

    /**
     * 有效天数
     */
    private Integer validDays;

    /**
     * 库存
     */
    private Integer stocks;

    /**
     * 适用商品类型 0全部商品参与 1指定商品参与 2指定商品不参与
     */
    private Integer suitableProdType;

    /**
     * 每个用户领券上限,如不填则默认为1
     */
    private Integer limitNum;

    /**
     * 版本号
     */
    private Integer version;

    /**
     * 优惠券过期状态 0:过期 1:未过期
     */
    private Integer overdueStatus;

    /**
     * 优惠券投放状态 0:未投放 1:投放
     */
    private Integer putonStatus;
}
  • couponId ,分组编号,自增唯一

  • shopId ,店铺id

  • couponName ,优惠券名称

  • subTitle,优惠券副标题

  • couponType,优惠券类型,优惠券类型分为两种类型,代金券和折扣券

  • reduceAmount 减免金额,会根据优惠券的类型发生改变,如果为代金券则为减免的金额,如果是折扣券则为商品的折扣。

  • cashCondition ,使用条件,满多少金额优惠券可用

  • validTimeType , 生效类型,可分为固定时间生效或者在用户领取后生效

固定时间生效

1566285471868

领取后生效

1566285583884

  • stocks ,投放优惠券数量
  • suitableProdType ,适用商品类型分为全部商品参与 、指定商品参与 、指定商品不参与
  • limitNum ,限制每个用户可以领取的个数
  • version,版本号,用于乐观锁,在高并发的时候防止冲突

  • overdueStatus,优惠券过期状态分为过期和未过期

  • putonStatus,优惠券投放状态可分为未投放和投放

绑定优惠券商品表

@Data
@TableName("tz_coupon_prod")
public class CouponProd implements Serializable {
    /**
     * 优惠券商品ID
     */
    @TableId
    private Long couponProdId;

    /**
     * 优惠券ID
     */
    private Long couponId;

    /**
     * 商品ID
     */
    private Long prodId;
}
  • couponProdId ,优惠券商品ID

  • couponId,优惠券商品ID

  • prodId,商品ID

用户优惠券领取表

@Data
@TableName("tz_coupon_user")
public class CouponUser implements Serializable {
    private static final long serialVersionUID = 129965893236674626L;
    /**
     * 优惠券用户ID
     */
    @TableId
    private Long couponUserId;

    /**
     * 优惠券ID
     */
    private Long couponId;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 领券时间
     */
    private Date receiveTime;

    /**
     * 优惠券状态  1:未使用 2:使用过 3:已失效
     */
    private Integer status;

    /**
     * 开始时间
     */
    private Date userStartTime;

    /**
     * 结束时间
     */
    private Date userEndTime;

    /**
     * 是否删除
     */
    private Integer isDelete;
}
  • couponUserId ,唯一自增
  • couponId,优惠券id
  • userId,用户ID
  • receiveTime , 领取时间
  • status,优惠券的状态(0:失效 1:有效 2:使用过 3:已失效)
  • userStartTime,用户可以使用该券的开始时间
  • userEndTime ,用户可以使用该券的结束时间
  • isDelete 用户是否对优惠券进行删除

用户优惠券使用记录

@Data
@TableName("tz_coupon_use_record")
public class CouponUseRecord implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 优惠券使用id
     */
    @TableId
    private Long couponUseRecordId;

    /**
     * 用户优惠券id
     */
    private Long couponUserId;

    /**
     * 用户id
     */
    private String userId;
    /**
     * 订单编号
     */
    private String orderNumber;
    /**
     * 金额
     */
    private Double amount;
    /**
     * 使用时间
     */
    private Date useTime;

    /**
     * 使用状态
     */
    private Integer status;

}
  • couponUseRecordId ,优惠券使用id
  • couponUserId ,用户优惠券id
  • orderNumber, 订单编号
  • amount,优惠券金额
  • status 状态