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;
|
|
/**
|
* 是否收藏
|
*/
|
private Boolean isCollect;
|
public static ActivityVO getVoByEntity(@NonNull Activity entity, ActivityVO vo) {
|
if(vo == null) {
|
vo = new ActivityVO();
|
}
|
BeanUtils.copyProperties(entity, vo);
|
return vo;
|
}
|
}
|