1、dao层

 /**
* 查询列表
* @param dataRequest
* @return
*/
@SelectProvider(type = CuiShouSqlProvider.class, method = "cuiShouList")
@Options(useGeneratedKeys = true)
public List<Map<String,String>> selectCuiShouOrderList(@Param("CuiKuanRequest") CuiKuanRequest dataRequest);
//public List<Map<String,String>> selectCuiShouOrderList(@Param("CuiKuanRequest") CuiKuanRequest dataRequest); /**
* 查询条数
* @param dataRequest
* @return
*/
@SelectProvider(type = CuiShouSqlProvider.class, method = "cuiShouListCountNum")
@Options(useGeneratedKeys = true)
public int CuiShouOrderListCountNum(@Param("CuiKuanRequest") CuiKuanRequest dataRequest);

2、sql拼接类

/**
* @author wuhongpu
* 催收动态sql拼接
*/ public class CuiShouSqlProvider { private Logger logger = LoggerFactory.getLogger(CuiShouSqlProvider.class);
/**
* 查询list列表方法
* @param dataRequest
* @return
*/
public String cuiShouList(CuiKuanRequest dataRequest){
StringBuilder selectSql = new StringBuilder();
selectSql.append("select * from (SELECT w.`status` AS clearStatus,w.thirdType,w.createTime,o.uuid,o.`status` AS orderStatus,o.lendingTime,o.refundTime,o.amountApply,u.realName,u.mobileNumber,u.idCardNo,datediff(now(),DATE_FORMAT(o.refundTime, '%Y-%m-%d')) AS DAY ");
selectSql.append("FROM wk_cuishou w LEFT JOIN orderorder o ON w.orderNo = o.uuid LEFT JOIN useruser u ON o.userUuid = u.uuid)t where 1=1 "); StringBuilder conditionSql = this.generateCondition(dataRequest); if (dataRequest.getPageNo() != null && dataRequest.getPageSize() != null) {
Integer num = (dataRequest.getPageNo() - ) * dataRequest.getPageSize();
conditionSql.append(" limit ").append(num.toString()).append(",")
.append(dataRequest.getPageSize().toString());
} selectSql.append(conditionSql);
logger.info(selectSql.toString());
return selectSql.toString();
} /**
* 统计条数方法
* @param dataRequest
* @return
*/
public String cuiShouListCountNum(CuiKuanRequest dataRequest) {
StringBuilder selectSql = new StringBuilder();
selectSql.append("select count(1) from (SELECT w.`status` AS clearStatus,w.thirdType,w.createTime,o.uuid,o.`status` AS orderStatus,o.lendingTime,o.refundTime,o.amountApply,u.realName,u.mobileNumber,u.idCardNo,datediff(now(),DATE_FORMAT(o.refundTime, '%Y-%m-%d')) AS DAY ");
selectSql.append("FROM wk_cuishou w LEFT JOIN orderorder o ON w.orderNo = o.uuid LEFT JOIN useruser u ON o.userUuid = u.uuid)t where 1=1 "); StringBuilder conditionSql = this.generateCondition(dataRequest);
selectSql.append(conditionSql);
this.logger.info(selectSql.toString());
return selectSql.toString();
} /**
* 条数分页方法
* @param dataRequest
* @return
*/
public String cuiShouListListByPage(CuiKuanRequest dataRequest) {
StringBuilder selectSql = new StringBuilder();
selectSql.append("select * from (SELECT w.`status` AS clearStatus,w.thirdType,w.createTime,o.uuid,o.`status` AS orderStatus,o.lendingTime,o.refundTime,o.amountApply,u.realName,u.mobileNumber,u.idCardNo,datediff(now(),DATE_FORMAT(o.refundTime, '%Y-%m-%d')) AS DAY ");
selectSql.append("FROM wk_cuishou w LEFT JOIN orderorder o ON w.orderNo = o.uuid LEFT JOIN useruser u ON o.userUuid = u.uuid)t where 1=1 "); StringBuilder conditionSql = this.generateCondition(dataRequest); Integer num = (dataRequest.getPageNo() - ) * dataRequest.getPageSize();
conditionSql.append("limit ").append(num.toString()).append(",")
.append(dataRequest.getPageSize().toString()); selectSql.append(conditionSql);
logger.info(selectSql.toString());
return selectSql.toString();
} /**
* 参数动态拼接方法
* @param dataRequest
* @return
*/
private StringBuilder generateCondition(CuiKuanRequest dataRequest) {
StringBuilder conditionSql = new StringBuilder(); if(dataRequest.getOrderStatus()!=null){
conditionSql.append("t.orderStatus=#{CuiKuanRequest.orderStatus} and ");
}
if(dataRequest.getClearStatus()!=null){
conditionSql.append("t.clearStatus=#{CuiKuanRequest.clearStatus} and ");
}
if(dataRequest.getDay()!=null ){
if(dataRequest.getDay()>=){
conditionSql.append("t.day>#{CuiKuanRequest.day} ");
}else{
conditionSql.append("t.day=#{CuiKuanRequest.day} ");
} }
conditionSql.append("order by t.day desc"); return conditionSql;
}
}

springboot 注解版案例的更多相关文章

  1. SSM-Spring-17:Spring中aspectJ注解版

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- AspectJ AspectJ是一个面向切面的框架,它扩展了Java语言,定义了AOP 语法,能够在编译期提供 ...

  2. SpringBoot整合Mybatis【非注解版】

    接上文:SpringBoot整合Mybatis[注解版] 一.项目创建 新建一个工程 ​ 选择Spring Initializr,配置JDK版本 ​ 输入项目名 ​ 选择构建web项目所需的state ...

  3. SpringBoot整合Mybatis注解版---update出现org.apache.ibatis.binding.BindingException: Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1, param2]

    SpringBoot整合Mybatis注解版---update时出现的问题 问题描述: 1.sql建表语句 DROP TABLE IF EXISTS `department`; CREATE TABL ...

  4. SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版)

    SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版) ================================ ©Copyright 蕃薯耀 2 ...

  5. SpringBoot集成Mybatis(0配置注解版)

    Mybatis初期使用比较麻烦,需要各种配置文件.实体类.dao层映射关联.还有一大推其它配置.当然Mybatis也发现了这种弊端,初期开发了generator可以根据表结构自动生成实体类.配置文件和 ...

  6. SpringBoot + MyBatis(注解版),常用的SQL方法

    一.新建项目及配置 1.1 新建一个SpringBoot项目,并在pom.xml下加入以下代码 <dependency> <groupId>org.mybatis.spring ...

  7. SpringBoot数据访问之整合mybatis注解版

    SpringBoot数据访问之整合mybatis注解版 mybatis注解版: 贴心链接:Github 在网页下方,找到快速开始文档 上述链接方便读者查找. 通过快速开始文档,搭建环境: 创建数据库: ...

  8. springMVC(注解版笔记)

    springMVC(注解版) 较之于非注解版本,发生一下变化: 1.配置文件需要配置的标签有: <!-- 包的扫描,此包下面的所有包都启用注解 --> <context:compon ...

  9. Spring Boot整合MyBatis(非注解版)

    Spring Boot整合MyBatis(非注解版),开发时采用的时IDEA,JDK1.8 直接上图: 文件夹不存在,创建一个新的路径文件夹 创建完成目录结构如下: 本人第一步习惯先把需要的包结构创建 ...

随机推荐

  1. 11i and R12 Table Count in Different Module

    Advertisement Module 11i Tables R12 Tables New Tables AR 551 616 118 BOM 264 337 73 GL 186 309 140 A ...

  2. python测试开发django-13.操作数据库(增删改查)

    前言 django的models模块里面可以新增一张表和字段,通常页面上的数据操作都来源于数据库的增删改查,django如何对msyql数据库增删改查操作呢? 本篇详细讲解django操作mysql数 ...

  3. List与Array之间互换

    1 数组转换为List 调用Arrays类的静态方法asList. asList public static <T> List<T> asList(T... a) Return ...

  4. ViewPager的简单用法+适配器+监听器的介绍

    之前的actionbar+fragment文章中写过viewpager的简单用法,但因为是融合的文章,所以今天把viewpager提取出来写了.方便查询浏览~ 思路: 1.在布局文件中设置viewpa ...

  5. 零基础写python爬虫之使用Scrapy框架编写爬虫

    网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻 ...

  6. 使用强大的 Mockito 测试框架来测试你的代码

    原文链接 : Unit tests with Mockito - Tutorial 译文出自 : 掘金翻译计划 译者 : edvardhua 校对者: hackerkevin, futureshine ...

  7. RF的特征子集选取策略(spark ml)

    支持连续变量和类别变量,类别变量就是某个属性有三个值,a,b,c,需要用Feature Transformers中的vectorindexer处理 上来是一堆参数 setMaxDepth:最大树深度 ...

  8. C语言中将0到1000的浮点数用强制指针类型转换的方式生成一幅图像

    搞过计算机图像的人都知道,图像中的每一个像素通常为一个整型数,它可以分成4个无符号的char类型,以表示其RGBA四个分量.一幅图像可以看做是一个二维整型数组.这里我会生成一个float数组,其数组大 ...

  9. 快速书写常见的 Kotlin 代码 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  10. Java程序员须知的七个日志管理工具

    本文由 ImportNew - 赖 信涛 翻译自 takipiblog.欢迎加入翻译小组.转载请见文末要求. Splunk vs. Sumo Logic vs. LogStash vs. GrayLo ...