• springboot 注解版案例


    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() - 1) * 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() - 1) * 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()>=7){
                    conditionSql.append("t.day>#{CuiKuanRequest.day} ");
                }else{
                    conditionSql.append("t.day=#{CuiKuanRequest.day} ");
                }
    
            }
           conditionSql.append("order by t.day desc");
    
            return conditionSql;
        }
    }
  • 相关阅读:
    Linux命令之用户与组管理
    ubantu命令安装banner
    Linux命令之必杀绝技Vi文本编辑的使用
    Linux命令初步了解
    C#中的一些技巧
    .net对文件的操作之对文件目录的操作
    Linux学习一些在Terminal可以用到的快捷键及Shell常用的通配符
    【初识】正则表达式
    .net对文件的操作之文件读写
    分享一次在Windows Server2012 R2中安装SQL Server2008
  • 原文地址:https://www.cnblogs.com/a8457013/p/9087074.html
Copyright © 2020-2023  润新知