1.业务需求一:根据传进来的开始日期,查询所有该日期是数据,但是数据库中保存是时间,所以需要使用apply查询方式并格式化。
相关代码如下:
LambdaQueryWrapper<TRandomPaper> lqw = new LambdaQueryWrapper<TRandomPaper>();
if (tRandomPaper.getStartTime() != null){
//页面传进来Fri May 29 00:00:00 CST 2020格式的类似时间需要格式化一下
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String startTimeFormat = sdf.format(tRandomPaper.getStartTime());
//start_time:数据库中的开始时间,需格式为年月日的格式与传进来的开始日期进行匹配
//条件构造器apply的查询方式解决日期和时间之间查询上的冲突
lqw.apply("date_format(start_time, '%Y-%m-%d') = {0}", startTimeFormat);
}
List<TRandomPaper> list = iTRandomPaperService.list(lqw);
2.业务需求二:查询出待学课程,待学课程的标准是如果课程结束时间小于当前时间即为待学课程。
相关代码如下:
LambdaQueryWrapper<CourseAllocation> lqw = new LambdaQueryWrapper<>();
lqw.eq(CourseAllocation::getUserId,userId)
.eq(CourseAllocation::getCourseFroupKey,1)
//course_study_end_time为数据中课程结束时间
//使用条件构造器apply查询方式可以直接把格式一样的当前时间和课程结束时间进行比较筛选
.apply("DATE_FORMAT(course_study_end_time,'%Y-%m-%d') > DATE_FORMAT(NOW(),'%Y-%m-%d')");
List<CourseAllocation> list = iCourseAllocationService.list(lqw);