当前位置:网站首页>MP进阶操作: 时间操作, sql,querywapper,lambdaQueryWapper(条件构造器)快速筛选 枚举类
MP进阶操作: 时间操作, sql,querywapper,lambdaQueryWapper(条件构造器)快速筛选 枚举类
2022-07-04 22:35:00 【pingzhuyan】
目录
2. sql语句 :TIMESTAMPDIFF()的 方法 使用
查询当前时间的30分钟之前(过期30分钟)和60分钟后(快到期60分钟)
1. 时间筛选的原方法:
获取 开始时间-> 结束时间
一个月, 一年 都需要计算
queryWapper.ge(timeStatus, "update_date", appointEntity.getStartTime())//大于开始时间
.le(timeStatus, "update_date", appointEntity.getEndTime())//小于等于结束时间2. sql语句 :TIMESTAMPDIFF()的 方法 使用
查询当前时间的30分钟之前(过期30分钟)和60分钟后(快到期60分钟)
select id from 表
where (TIMESTAMPDIFF(MINUTE, #{nowTime}, ap_time) >0 and TIMESTAMPDIFF(MINUTE, #{nowTime}, ap_time) <= 60 )
or
(TIMESTAMPDIFF(MINUTE, ap_time, #{nowTime})>0 and TIMESTAMPDIFF(MINUTE, ap_time, #{nowTime}) <30) 3. 整合条件构造器(时间)
3.1 写一个枚举类(时间)
package com.aisce.common.enums;
public enum DataTimeTypeEnum {
/**
* 近一周
*/
ONE_WEEK(1, "近一周"),
/**
* 近一个月
*/
ONE_MONTH(2, "近一个月"),
/**
* 近三个月
*/
THREE_MONTH(3, "近三个月"),
/**
* 近一年
*/
ONE_YEAR(4, "近一年"),
/**
* 所有
*/
ALL(5, "所有"),
/**
* 自定义
*/
CUSTOMIZE(6, "自定义")
;
private final int code;
private final String name;
DataTimeTypeEnum(int code, String info) {
this.code = code;
this.name = info;
}
public static String getValue(int code) {
DataTimeTypeEnum[] enums = values();
for (DataTimeTypeEnum item : enums) {
if (item.code == code) {
return item.getName();
}
}
return null;
}
public int getCode() {
return code;
}
public String getName() {
return name;
}
}
3.2 写一个类 需要这三个属性
/**
* 时间类型
*/
@TableField(exist = false )
private Integer TimeType ;
/**
* 开始时间
*/
@TableField(exist = false )
private Date startTime;
/**
* 结束时间
*/
@TableField(exist = false )
private Date endTime;3.3 条件构造器写法
/**
* lambdaQuery 终极写法 时间规划
* @param dto
* @param <T>
* @return
*/
private <T extends AixiBillRecord> LambdaQueryWrapper<T> buildQueryWrapper(DataBaseDTO dto){
Integer timeType = dto.getTimeType();
// Integer timeType = 3;
Date currentDate = new Date();
LambdaQueryWrapper<T> lqw = Wrappers.lambdaQuery();
lqw.ge(timeType == DataTimeTypeEnum.ONE_WEEK.getCode(), T::getCreateTime, DateUtil.offsetWeek(currentDate, -1));
lqw.ge(timeType == DataTimeTypeEnum.ONE_MONTH.getCode(), T::getCreateTime, DateUtil.offsetMonth(currentDate, -1));
lqw.ge(timeType == DataTimeTypeEnum.THREE_MONTH.getCode(), T::getCreateTime, DateUtil.offsetMonth(currentDate, -3));
lqw.ge(timeType == DataTimeTypeEnum.ONE_YEAR.getCode(), T::getCreateTime, DateUtil.offsetMonth(currentDate, -12));
lqw.ge(timeType == DataTimeTypeEnum.CUSTOMIZE.getCode(), T::getCreateTime, dto.getStartTime());
lqw.le(timeType == DataTimeTypeEnum.CUSTOMIZE.getCode(), T::getCreateTime, dto.getEndTime());
return lqw;
}3.4 代码中使用方式
(可能有更好的使用方式 寻找中)
DataBaseDTO dto = new DataBaseDTO();
dto.setTimeType(1);
LambdaQueryWrapper<*> LambdaQueryWrapper = buildQueryWrapper(dto);
LambdaQueryWrapper.eq(*::getCompanyId,user.getCompanyId());
//先获取全部数据
List<*> RecordList = baseMapper.selectList(LambdaQueryWrapper);边栏推荐
- Erik baleog and Olaf, advanced area of misc in the attack and defense world
- Three stage operations in the attack and defense drill of the blue team
- How to send a reliable request before closing the page
- Unity vscode emmylua configuration error resolution
- OSEK标准ISO_17356汇总介绍
- Persistence mechanism of redis
- Attack and defense world misc master advanced zone 001 normal_ png
- Talk about Middleware
- How to choose a securities company? Is it safe to open an account on your mobile phone
- A complete tutorial for getting started with redis: redis usage scenarios
猜你喜欢

Attack and defense world misc master advanced zone 001 normal_ png

Sobel filter

Unity Xiuxian mobile game | Lua dynamic sliding function (specific implementation of three source codes)

Redis入門完整教程:Pipeline

Analysis of the self increasing and self decreasing of C language function parameters

MYSQL架构——用户权限与管理
![[roommate learned to use Bi report data processing in the time of King glory in one game]](/img/06/22dde3fcc0456bd230e1d0cde339ec.png)
[roommate learned to use Bi report data processing in the time of King glory in one game]

【图论】拓扑排序
![[OpenGL] note 29 anti aliasing (MSAA)](/img/66/61f29e1c41d3099d55e2ead0a3b01e.png)
[OpenGL] note 29 anti aliasing (MSAA)

sobel过滤器
随机推荐
Google collab trample pit
[Jianzhi offer] 6-10 questions
攻防世界 MISC 进阶 glance-50
微信公众号解决从自定义菜单进入的缓存问题
Three stage operations in the attack and defense drill of the blue team
攻防世界 MISC 进阶区 3-11
OSEK标准ISO_17356汇总介绍
模拟摇杆控制舵机
9 - 类
Redis getting started complete tutorial: publish and subscribe
Redis入门完整教程:哈希说明
Redis入门完整教程:集合详解
【lua】int64的支持
Redis的持久化机制
【室友用一局王者荣耀的时间学会了用BI报表数据处理】
UML diagram memory skills
Hit the core in the advanced area of misc in the attack and defense world
The sandbox has reached a cooperation with digital Hollywood to accelerate the economic development of creators through human resource development
[machine learning] handwritten digit recognition
A complete tutorial for getting started with redis: understanding and using APIs