Python 官方文档:入门教程 => 点击学习
目录一、描述二、实现方式三、 总结一、描述 实现下图中的功能,分析一下该功能,既有分页查询又有根据计划状态、开始时间、公司名称进行动态查询。 二、实现方式 Controller层
实现下图中的功能,分析一下该功能,既有分页查询又有根据计划状态、开始时间、公司名称进行动态查询。
Controller层
@PostMapping("/selectPlanByStateTimeCompany")
public Page<CrmCustomerPlan> selectPlanByStateTimeCompany(@RequestParam(required = false,defaultValue = "1")int limit, @RequestParam(required = false,defaultValue = "1")int page, @RequestParam(required = true) Long userId,@RequestParam(required = false,defaultValue = "0") int planState,@RequestParam(required = false) String planStartTime,@RequestParam(required = false) Long emtCode) {
//获取该专员下所有状态为未开始的计划
List<CrmCustomerPlan> myPlanList = crmCustomerPlanService.selectNoStartPlan(userId);
if (StringUtil.isNotEmpty(planStartTime)){
//判断计划的开始时间和当前时间
DateTimeFORMatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime planTime = LocalDateTime.parse(planStartTime, dtf);
//存放已逾期的计划
List<CrmCustomerPlan> overDuePlan = new ArrayList<>();
for (CrmCustomerPlan customerPlan : myPlanList) {
if (LocalDateTime.now().isAfter(planTime)) {
//当前时间在计划时间之后,说明过了计划时间,这时候我们要将它的状态改为已逾期
customerPlan.setPlanState(PlanStateEnum.OVERDUE.getCode());
overDuePlan.add(customerPlan);
}
}
if (overDuePlan.size() > 0) {
//遍历完之后,我们就可以对数据进行更改了
crmCustomerPlanService.updateBatchById(overDuePlan);
}
}
//接下来,就是对数据进行查询
return crmCustomerPlanService.selectPlanByStateTimeCompany(limit,page,userId, planState, planStartTime, emtCode);
}
在Controller中有limit、page。limit为每页限制的数量、page为第几页
Service层
@Override
public Page<CrmCustomerPlan> selectPlanByStateTimeCompany(int limit,int page,Long userId, int planState, String planStartTime, Long emtCode) {
Page<CrmCustomerPlan> pagelimit= new Page(page,limit);
QueryWrapper<CrmCustomerPlan> crmCustomerPlanQueryWrapper = new QueryWrapper<>();
crmCustomerPlanQueryWrapper.eq("create_user_id", userId);
if (planState!=0){
crmCustomerPlanQueryWrapper.eq("plan_state", planState);
}
if (StringUtil.isNotEmpty(planStartTime)){
crmCustomerPlanQueryWrapper.eq("plan_start_time", planStartTime);
}
if (StringUtil.isNotEmpty(String.valueOf(emtCode))){
crmCustomerPlanQueryWrapper.eq("emt_code", emtCode);
}
return crmCustomerPlanMapper.selectPage(pagelimit,crmCustomerPlanQueryWrapper);
}
在Service层中,可以通过if和QueryWrapper实现动态sql的查询。
分页,用到了Page对象,一定要是mybatis的。然后调用selectPage,将对象和查询条件传入进去即可。
MybatisPlus是真的好用,省了我们写很多的SQL语句 以及配置信息
Mybatis的分页配置信息
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.Mysql));
return mybatisPlusInterceptor;
}
到此这篇关于MybatisPlus实现分页查询和动态SQL查询的示例代码的文章就介绍到这了,更多相关MybatisPlus 分页查询和动态SQL查询内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: MybatisPlus实现分页查询和动态SQL查询的示例代码
本文链接: https://www.lsjlt.com/news/137264.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0