package cn.lili.modules.promotion.entity.dos;
|
|
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateUtil;
|
import cn.lili.modules.promotion.entity.vos.SeckillVO;
|
import cn.lili.modules.promotion.tools.PromotionTools;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
import lombok.EqualsAndHashCode;
|
import lombok.NoArgsConstructor;
|
import lombok.ToString;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.data.elasticsearch.annotations.DateFormat;
|
import org.springframework.data.elasticsearch.annotations.Field;
|
import org.springframework.data.elasticsearch.annotations.FieldType;
|
|
import javax.validation.constraints.NotNull;
|
import java.util.Date;
|
|
/**
|
* 秒杀活动实体类
|
*
|
* @author Chopper
|
* @since 2020-03-19 10:44 上午
|
*/
|
@EqualsAndHashCode(callSuper = true)
|
@Data
|
@TableName("li_seckill")
|
@ApiModel(value = "秒杀活动活动")
|
@NoArgsConstructor
|
@ToString(callSuper = true)
|
public class Seckill extends BasePromotions {
|
|
private static final long serialVersionUID = -9116425737163730836L;
|
|
@NotNull(message = "请填写报名截止时间")
|
@ApiModelProperty(value = "报名截至时间", required = true)
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
@Field(type = FieldType.Date, format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss || yyyy-MM-dd || yyyy/MM/dd HH:mm:ss|| yyyy/MM/dd ||epoch_millis")
|
private Date applyEndTime;
|
|
@ApiModelProperty(value = "申请规则")
|
private String seckillRule;
|
|
@ApiModelProperty(value = "开启几点场 例如:6,8,12")
|
@NotNull(message = "活动时间段不能为空")
|
private String hours;
|
|
/**
|
* 已参与此活动的商家id集合
|
*/
|
@ApiModelProperty(value = "商家id集合以逗号分隔")
|
private String storeIds;
|
|
@ApiModelProperty(value = "商品数量")
|
private Integer goodsNum;
|
|
public Seckill(int day, String hours, String seckillRule) {
|
//默认创建*天后的秒杀活动
|
DateTime dateTime = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), day));
|
this.applyEndTime = dateTime;
|
this.hours = hours;
|
this.seckillRule = seckillRule;
|
this.goodsNum = 0;
|
//BasePromotion
|
this.setStoreName(PromotionTools.PLATFORM_NAME);
|
this.setStoreId(PromotionTools.PLATFORM_ID);
|
this.setPromotionName(DateUtil.formatDate(dateTime) + " 秒杀活动");
|
this.setStartTime(dateTime);
|
this.setEndTime(DateUtil.endOfDay(dateTime));
|
}
|
|
public Seckill(SeckillVO seckillVO) {
|
BeanUtils.copyProperties(seckillVO, this);
|
}
|
}
|