Mybatis-Plus按昨天、今天、明天、近?天,自定義起始時間查詢


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;
	}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM