Mybatis-plus 里面的 apply方法 是用于拼接自定义的条件判断,
根据传进来的开始日期,查询所有该日期是数据,但是数据库中保存是时间,所以需要使用apply查询方式并格式化。
@Override
public List<QuestionnairePush> queryBaseCountByYearOrMonth(PaperRecycleStatisfactionQueryDTO paperRecycleStatisfactionQueryDTO, Integer state) {
LambdaQueryChainWrapper<QuestionnairePush> questionnairePushLambdaQueryChainWrapper = new LambdaQueryChainWrapper<>(questionnairePushMapper);
if (state == 3) {
//判断年份
//使用条件构造器apply查询方式可以直接把格式一样的当前时间和课程结束时间进行比较筛选
questionnairePushLambdaQueryChainWrapper.apply("DATE_FORMAT(CREATE_TIME,'%Y') = '" + paperRecycleStatisfactionQueryDTO.getSummaryYear() + "'");
} else if (state == 1) {
if (paperRecycleStatisfactionQueryDTO.getSummaryNumber().toString().length() > 1) {
//月份是双位数处理
//使用条件构造器apply查询方式可以直接把格式一样的当前时间和课程结束时间进行比较筛选
questionnairePushLambdaQueryChainWrapper.apply("DATE_FORMAT(CREATE_TIME,'%Y-%m') = '" + paperRecycleStatisfactionQueryDTO.getSummaryYear() + "-" + paperRecycleStatisfactionQueryDTO.getSummaryNumber() + "'");
} else {
//月份是单位数处理
//使用条件构造器apply查询方式可以直接把格式一样的当前时间和课程结束时间进行比较筛选
questionnairePushLambdaQueryChainWrapper.apply("DATE_FORMAT(CREATE_TIME,'%Y-%m') = '" + paperRecycleStatisfactionQueryDTO.getSummaryYear() + "-0" + paperRecycleStatisfactionQueryDTO.getSummaryNumber() + "'");
}
}
List<QuestionnairePush> list = questionnairePushLambdaQueryChainWrapper.list();
return list;
}
为什么要加0是因为数据包保存的月份是双位

