zoukankan      html  css  js  c++  java
  • Mybatisplus 自定义sql 使用条件构造器 多表查询分页

    代码示例:

        Page<Handling> finPage(@Param("page") Page<Handling> page,@Param(Constants.WRAPPER) QueryWrapper<Handling> qw);
    

      

    <select id="finPage" resultType="com.zw.zwzc.module.business.entity.Handling">
            select *
            from (
                     SELECT a.*,
                            b.user_name,
                            c.area_code,
                            c.dept_name,
                            d.implement_name,
                            d.event_type,
                            ap.applicant_name,
                            ha.handler_name,
                            if(a.applicant_id is null, "N", "Y") is_to_do
                     FROM handling a
                              LEFT JOIN sys_user b ON b.user_id = a.user_id
                              LEFT JOIN sys_dept c ON c.dept_id = b.dept_id
                              left join event_implementation d on d.event_id = a.event_id
                              left join applicant ap on ap.applicant_id = a.applicant_id
                              left join handler ha on ha.handler_id = a.handler_id
                 ) tab
                ${ew.customSqlSegment}
        </select>

    条件设置:

    @Override
        public Page<Handling> findPage(Page<Handling> page, Handling en) throws Exception {
            QueryWrapper<Handling> qw = new QueryWrapper<>();
    
            //区分代办查询和已办查询(如果不传状态 默认查询代办[去除办理成功数据])
            if (StrUtil.isNotEmpty(en.getState())) {
                qw.eq("tab.state", en.getAreaCode());
            }else {
                qw.ne("tab.state", CommonConstant.SUCCESS);
            }
    
            // 办件查询添加环节筛选需求
            if (StrUtil.isNotEmpty(en.getBusinessTacheId())) {
                qw.eq("tab.business_tache_id", en.getBusinessTacheId());
            }
    
            if (StrUtil.isNotEmpty(en.getAreaCode())) {
                qw.eq("tab.area_code", en.getAreaCode());
            }
    
            if (StrUtil.isNotEmpty(en.getUserName())) {
                qw.eq("tab.user_name", en.getUserName());
            }
    
            if (StrUtil.isNotEmpty(en.getDeptName())) {
                qw.eq("tab.dept_name", en.getDeptName());
            }
            if (StrUtil.isNotEmpty(en.getEventType())) {
                qw.eq("tab.event_type", en.getEventType());
            }
    
            if (StrUtil.isNotEmpty(en.getSearch())) {
                qw.like("tab.applicant_name", en.getSearch()).or().like("tab.implement_name", en.getSearch());
            }
            if (en.getStartDate() != null && !en.getStartDate().equals("")) {
                qw.ge("tab.start_date", en.getStartDate());
            }
            if (en.getEndDate() != null && !en.getEndDate().equals("")) {
                qw.le("tab.start_date", en.getEndDate());
            }
            if (StringUtils.isNotBlank(en.getIsOneThing())) {
                qw.eq("tab.is_one_thing", en.getIsOneThing());
            }
            if (StringUtils.isNotBlank(en.getIsTongBan())) {
                qw.eq("tab.is_tong_ban", en.getIsTongBan());
            }
    
            Page<Handling> handlingPage = baseMapper.finPage(page, qw);
            //翻译state字段
            dictItemService.setDescByValue(handlingPage.getRecords(),"state","stateName","handling_state");
            //添加时限信息
            addTimeLimitDesc(handlingPage);
    
            return handlingPage;
        }

    可以少在XML里面写条件了 

    ⎛⎝官萧何⎠⎞一只快乐的爪哇程序猿;公司官网:www.csbwbd.com;邮箱:1570608034@qq.com
  • 相关阅读:
    学习笔记15—Python 存储集
    学习笔记14—Python error集
    学习笔记13—python DataFrame获取行数、列数、索引及第几行第几列的值
    学习笔记12—linux下文件的复制、移动与删除
    学习笔记11—MATLAB 界面设计
    学习笔记10—Python 绘图集
    学习笔记9—python数据表的合并(join(), merge()和concat())
    学习笔记8—MATLAB中奇异值处理办法
    make ffmpeg makefile
    Linux Socket
  • 原文地址:https://www.cnblogs.com/guanxiaohe/p/14771503.html
Copyright © 2011-2022 走看看