zhanghua
2025-06-11 2ca169c85f61256fb5185c078dba1bfef2be5066
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
package cn.lili.modules.lmk.domain.form;
 
 
import cn.lili.base.AbsForm;
import cn.lili.group.Add;
import cn.lili.group.Update;
import cn.lili.modules.lmk.domain.entity.Activity;
import cn.lili.modules.lmk.domain.entity.CustomerBlack;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.lang.NonNull;
 
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
 
@Data
@ApiModel(value = "Activity查询参数", description = "活动查表单")
public class ActivityForm extends AbsForm {
 
    /** 活动名称 */
    @NotBlank(message = "活动名称不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty(value = "活动名称", example = "春季徒步大会")
    private String activityName;
 
    /** 活动类型 */
    @NotBlank(message = "活动类型不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty(value = "活动类型:线上/线下,目前默认都是线下", example = "线下")
    private String activityType;
 
    /** 报名开始时间 */
    @NotNull(message = "报名开始时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty(value = "报名开始时间", example = "2025-05-20 09:00:00")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reportStartTime;
 
    /** 报名结束时间 */
    @NotNull(message = "报名结束时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty(value = "报名结束时间", example = "2025-05-25 18:00:00")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reportEndTime;
 
    /** 活动开始时间 */
    @NotNull(message = "活动开始时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty(value = "活动开始时间", example = "2025-06-01 08:30:00")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
 
    /** 活动结束时间 */
    @NotNull(message = "活动结束时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty(value = "活动结束时间", example = "2025-06-01 17:00:00")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
 
    /** 活动状态 */
    @ApiModelProperty(value = "活动状态")
    private String status;
 
    /** 是否推荐 */
    @ApiModelProperty(value = "是否推荐(0-否,1-是)", example = "1")
    private Boolean recommend;
 
    /** 封面地址 */
    @NotBlank(message = "封面图片不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty(value = "封面图片/视频地址", example = "/covers/spring_hike.jpg")
    private String cover;
 
    /** 封面类型 */
    @NotBlank(message = "封面类型不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty(value = "封面类型:视频、文字、图片", example = "图片")
    private String coverType;
 
    /** 最大报名人数 */
    @ApiModelProperty(value = "最大报名人数限制", example = "200")
    private Integer limitUserNum;
 
    /** 活动地点 */
    @ApiModelProperty(value = "活动地点", example = "北京市朝阳区奥林匹克公园")
    private String activityLocation;
 
    /** 活动内容 */
    @NotBlank(message = "活动详细内容不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty(value = "活动详细内容(支持富文本)", example = "<p>活动流程:...</p>")
    private String activityContent;
 
    /** 活动发布 */
    @ApiModelProperty(value = "活动发布", example = "")
    private Boolean publish;
 
    public static Activity getEntityByForm(@NonNull ActivityForm form, Activity entity) {
        if(entity == null) {
            entity = new Activity();
        }
        BeanUtils.copyProperties(form, entity);
        return entity;
    }
}