xiangpei
2025-06-04 4e502853119c6d8e7ff686191e19bb0a19a4f875
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
package cn.lili.modules.lmk.domain.vo;
 
 
import cn.lili.base.AbsVo;
import cn.lili.modules.lmk.domain.entity.Activity;
import cn.lili.modules.member.entity.vo.MemberVO;
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 java.util.Date;
import java.util.List;
 
@Data
@ApiModel(value = "Activity响应数据", description = "响应数据")
public class ActivityVO extends AbsVo {
 
    /** 活动名称 */
    @ApiModelProperty(value = "活动名称", example = "春季徒步大会")
    private String activityName;
 
    /** 活动类型 */
    @ApiModelProperty(value = "活动类型:线上/线下,目前默认都是线下", example = "线下")
    private String activityType;
 
    /** 报名开始时间 */
    @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;
 
    /** 报名结束时间 */
    @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;
 
    /** 活动开始时间 */
    @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;
 
    /** 活动结束时间 */
    @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 = "活动状态", example = "进行中/已结束/已取消")
    private String status;
 
    /** 是否推荐 */
    @ApiModelProperty(value = "是否推荐(0-否,1-是)", example = "1")
    private Boolean recommend;
 
    /** 封面地址 */
    @ApiModelProperty(value = "封面图片/视频地址", example = "/covers/spring_hike.jpg")
    private String cover;
 
    /** 封面类型 */
    @ApiModelProperty(value = "封面类型:视频、文字、图片", example = "图片")
    private String coverType;
 
    /** 最大报名人数 */
    @ApiModelProperty(value = "最大报名人数限制", example = "200")
    private Integer limitUserNum;
 
    /** 活动地点 */
    @ApiModelProperty(value = "活动地点", example = "北京市朝阳区奥林匹克公园")
    private String activityLocation;
 
    /** 活动内容 */
    @ApiModelProperty(value = "活动详细内容(支持富文本)", example = "<p>活动流程:...</p>")
    private String activityContent;
 
    /** 资源路径*/
    private String url;
 
    /** 报名人员集合*/
    private List<MemberVO> members;
 
    private Boolean isReport;
 
    public static ActivityVO getVoByEntity(@NonNull Activity entity, ActivityVO vo) {
        if(vo == null) {
            vo = new ActivityVO();
        }
        BeanUtils.copyProperties(entity, vo);
        return vo;
    }
}