package com.doumee.dao.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.Calendar; import java.util.Date; @Data @ApiModel("数据看板查询条件") public class DataBoardQueryDTO implements Serializable { @ApiModelProperty(value = "日期段类型:0=今日,1=近七天,2=近30天,3=近半年,4=近一年", required = true) private Integer dateType; @JsonIgnore @JsonFormat(pattern = "yyyy-MM-dd") private Date startDate; @JsonIgnore @JsonFormat(pattern = "yyyy-MM-dd") private Date endDate; @ApiModelProperty(value = "门店主键(可选)") private Integer shopId; public void resolveDateRange() { Calendar now = Calendar.getInstance(); now.set(Calendar.MINUTE, 0); now.set(Calendar.SECOND, 0); now.set(Calendar.MILLISECOND, 0); now.set(Calendar.HOUR_OF_DAY, 0); Calendar start = Calendar.getInstance(); start.set(Calendar.MINUTE, 0); start.set(Calendar.SECOND, 0); start.set(Calendar.MILLISECOND, 0); start.set(Calendar.HOUR_OF_DAY, 0); switch (dateType != null ? dateType : 0) { case 1: start.add(Calendar.DAY_OF_MONTH, -6); break; case 2: start.add(Calendar.DAY_OF_MONTH, -29); break; case 3: start.add(Calendar.MONTH, -6); break; case 4: start.add(Calendar.YEAR, -1); break; default: // 0=今日,start 已经是今天 break; } this.startDate = start.getTime(); Calendar end = Calendar.getInstance(); end.set(Calendar.HOUR_OF_DAY, 23); end.set(Calendar.MINUTE, 59); end.set(Calendar.SECOND, 59); end.set(Calendar.MILLISECOND, 999); this.endDate = end.getTime(); } }