package com.ruoyi.goods.domain.dto;
|
|
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.ruoyi.system.api.domain.dto.MgtBaseDto;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
|
import javax.validation.Valid;
|
import javax.validation.constraints.*;
|
import java.math.BigDecimal;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
|
@Data
|
public class MgtLotteryEventEditDTO extends MgtBaseDto {
|
|
@ApiModelProperty("活动id,不传为新增")
|
private String id;
|
|
@ApiModelProperty("抽奖名称")
|
@NotEmpty(message = "抽奖名称不能为空")
|
private String name;
|
|
@ApiModelProperty("活动简介名称")
|
@NotEmpty(message = "活动简介不能为空")
|
private String activityProfile;
|
|
@ApiModelProperty("开启方式(1=新注册用户,2=下单,3=分享小程序,4=普通抽奖,5=答题抽奖)")
|
@Min(value = 1,message = "开启方式选值错误")
|
@Max(value = 5,message = "开启方式选值错误")
|
@NotNull(message = "开启方式不能为空")
|
private Integer activityType;
|
|
@ApiModelProperty("可抽奖次数")
|
@NotNull(message = "可抽奖次数不能为空")
|
private Integer times;
|
|
@ApiModelProperty("活动开始时间")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
private LocalDateTime startTime;
|
|
@ApiModelProperty("活动结束时间")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
private LocalDateTime endTime;
|
|
|
/**
|
* 下单类型所需
|
*/
|
@ApiModelProperty("下单支付金额")
|
private BigDecimal payMoney;
|
|
/**
|
* 分享类型所需
|
*/
|
@ApiModelProperty("分享抽奖间隔天数")
|
private Integer intervalTime;
|
|
/**
|
* 答题类型所需
|
*/
|
@ApiModelProperty("答题时间限制(分钟)")
|
private Integer answeringTime;
|
@ApiModelProperty("答题抽奖正确率%")
|
private BigDecimal accuracy;
|
@ApiModelProperty("抽奖题目设置")
|
private List<MgtLotteryEventQuestionDTO> mgtLotteryQuestionDTOList;
|
|
@ApiModelProperty("封面图")
|
@NotEmpty(message = "封面图不能为空")
|
private String coverImage;
|
|
@ApiModelProperty("详情介绍")
|
@NotEmpty(message = "详情介绍不能为空")
|
private String activityContent;
|
|
@ApiModelProperty("抽奖奖品设置")
|
@NotEmpty(message = "抽奖奖品不能为空")
|
@Valid
|
private List<MgtLotteryEventPrizeDTO> mgtLotteryEventPrizeDTOList;
|
|
/**
|
* 即线下抽奖方式不能新增
|
*/
|
@AssertTrue(message = "当开启方式为线下抽奖时,活动id不能为空")
|
public boolean isIdValid() {
|
return activityType != 6 || id != null;
|
}
|
|
/**
|
* activityType=2时 payMoney不能为空
|
*/
|
@AssertTrue(message = "当开启方式为下单时,下单支付金额不能为空")
|
public boolean isPayMoneyValid() {
|
return activityType != 2 || payMoney != null;
|
}
|
|
/**
|
* activityType=3时 intervalTime不能为空
|
*/
|
@AssertTrue(message = "当开启方式为下单时,分享抽奖间隔天数不能为空")
|
public boolean isIntervalTimeValid() {
|
return activityType != 3 || intervalTime != null;
|
}
|
|
/**
|
* activityType=5时 answeringTime不能为空
|
*/
|
@AssertTrue(message = "当活动类型为答题抽奖时,答题时间限制不能为空")
|
public boolean isAnsweringTimeValid() {
|
return activityType != 5 || answeringTime != null;
|
}
|
|
/**
|
* activityType=5时 accuracy不能为空
|
*/
|
@AssertTrue(message = "当活动类型为答题抽奖时,抽奖要求的正确率不能为空")
|
public boolean isAccuracyValid() {
|
return activityType != 5 || accuracy != null;
|
}
|
|
/**
|
* activityType=5时 mgtLotteryQuestionDTOList不能为空
|
*/
|
@AssertTrue(message = "当活动类型为答题抽奖时,问题列表不能为空")
|
public boolean isQuestionListValid() {
|
return activityType != 5 || (mgtLotteryQuestionDTOList != null && !mgtLotteryQuestionDTOList.isEmpty());
|
}
|
}
|