Pu Zhibing
1 天以前 cead7b98d5cebc0825b919799e23732877361de0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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());
    }
}