1. 前端需要
2. 后端 0SQL 實現
實體類主要字段:
public class DemoEntity implements Serializable {
private static final long serialVersionUID = 1L;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("創建時間")
private Date createTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("更新時間")
private Date updateTime;
/**
* 查詢時間
*/
@TableField(exist = false)
@ApiModelProperty(value = "查詢類型:1-今天,2-昨天,3-近?天,4-自定義起止時間")
private Integer queryType;
@TableField(exist = false)
@ApiModelProperty(value = "queryType為3時指定的天數")
private Integer queryDay;
@TableField(exist = false)
@ApiModelProperty(value = "queryType為4時的起始時間")
private Date queryStartTime;
@TableField(exist = false)
@ApiModelProperty(value = "queryType為4時的結束時間")
private Date queryEndTime;
}
service的實現代碼:
QueryWrapper<DemoEntity> queryWrapper = new QueryWrapper<>();
// 添加時間(查詢類型:1-今天,2-昨天,3-近?天,4-自定義起止時間)
if (entity.getQueryType()!= null) {
switch (entity.getQueryType()) {
case 1:
queryWrapper.apply(true, "TO_DAYS(NOW())-TO_DAYS(create_time) = 0");
break;
case 2:
queryWrapper.apply(true, "TO_DAYS(NOW())-TO_DAYS(create_time) = 1");
break;
case 3:
queryWrapper.apply(true, "DATE_SUB(CURDATE(), INTERVAL "+ entity.getQueryDay() +" DAY) <= date(create_time)");
break;
case 4:
java.text.DateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String startTime = sdf.format(entity.getQueryStartTime());
String endTime = sdf.format(entity.getQueryEndTime());
queryWrapper.apply(true, "create_time between '"+ startTime +"' and '" + endTime + "'");
break;
}
}