package com.cyksj.model.views; import com.cyksj.model.entity.Coupon; import com.ejlchina.searcher.bean.DbField; import com.ejlchina.searcher.bean.DbIgnore; import com.ejlchina.searcher.bean.SearchBean; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Getter; import lombok.Setter; import java.math.BigDecimal; import java.util.Date; /* *项目名: netflix *文件名: CouponActiveView *创建者: JavaZou *创建时间:2022/11/18 10:00 */ @Getter @Setter @SearchBean(tables = "coupon_active ca left join coupon c on c.id = ca.coupon_id", where = "ca.deleted is true") public class CouponActiveView { @DbField("ca.id") private Long id; /** * 优惠券id */ @DbField("c.id") private Long couponId; /** * 优惠券名称 */ @DbField("c.name") private String name; /** * 优惠券平台类型 */ @DbField("c.goods_type") private Coupon.GoodsType goodsType; /** * 优惠券类型 */ @DbField("c.type") private Coupon.Type type; /** * 可用满减卷金额条件 */ @DbField("c.reduce_condition") private BigDecimal reduceCondition; /** * 抵扣金额 */ @DbField("c.reduce_money") private BigDecimal reduceMoney; /** * 折扣 */ @DbField("c.discount") private BigDecimal discount; /** * 领取人范围 */ @DbField("c.scope") private Coupon.Scope scope; /** * 平台规格集合 */ @DbField("c.goods_sku_ids") private String goodsSkuIds; @DbIgnore private String goodsSkuStr; /** * 是否是有效时间 */ @DbField("c.is_valid_time") private Boolean isValidTime; /** * 起始有效时间 */ @DbField("c.valid_start_time") private Date validStartTime; /** * 截止有效时间 */ @DbField("c.valid_end_time") private Date validEndTime; /** * 领取有效天数 */ @DbField("c.valid_days") private Integer validDays; /** * 是否可在续费时使用 */ @DbField("c.is_renew") private Boolean isRenew; /** * 发放数量 */ @DbField("ca.num") private Integer num; /** * 状态(默认启用) */ @DbField("ca.status") private Boolean status; /** * 有效状态(默认有效) */ @DbField("ca.expiry_status") private Boolean expiryStatus; /** * 剩余数量 */ @DbField("ca.remain_num") private Integer remainNum; /** * 领取人数 */ @DbIgnore private Integer receiptNum; /** * 使用人数 */ @DbIgnore private Integer usedNum; @DbIgnore private CouponStatus couponStatus; @DbIgnore @JsonIgnore private Integer order; @DbField("ca.created_time") private Date createdTime; @Getter public enum CouponStatus { collecting("collecting", "待领取"), received("received", "已领取"), over("over", "已领完"), stop("stop", "停止领取"), ; private String status; private String desc; CouponStatus(String status, String desc) { this.status = status; this.desc = desc; } } }