Mybatis-Plus按昨天、今天、明天、近?天,自定义起始时间查询

本文介绍了如何使用 Mybatis-Plus 在后端实现根据前端需求进行昨天、今天、明天以及任意天数范围的查询操作,通过0SQL的方式简化代码实现。

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;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值