mysql-plus自定义查询,带分页

xml

    <sql id="selectXgSampleRecord">
        SELECT  xsr.id ,xsr.jyjg_id as 'jyjgId', jyjg.jg_name as 'jyjgName', xsr.create_user_id as 'createUserId'  , xsr.jysb_id as 'jysbId' ,
        jysb.sbm as jysbName , sysUser.user_name as 'createUserName' , xsr.specimen_number as 'specimenNumber' , xsr.create_time as 'createTime',
        xsr.result_time as 'resultTime', xsr.result_user as 'resultUser',
            d.id as djxxId, d.xm, d.sfzh, d.jcrq, d.bgrq, d.ypmc, d.yyid, d.bgzt, d.sjh, d.djid, d.djsj, d.guid, d.csrq,
            d.nation, d.sex, d.ryfl, d.bz, d.age, d.xzz, d.dzzsj,
            d.native_detailed as nativeDetailed, d.xzz_code as xzzCode,
            d.former_code as formerCode, d.former_detailed as formerDetailed, d.xlh as sampleCode,
            cyd.cydname as cydName,czyUser.user_name as czyName,d.gzdw as gzdw,d.other_card as otherIdCard
        from  xg_sample_record xsr
        LEFT JOIN xg_jyjg jyjg on xsr.jyjg_id =jyjg.id
        LEFT JOIN xg_jysb jysb on xsr.jysb_id =jysb.id
        LEFT JOIN sys_user  sysUser on sysUser.user_id =xsr.create_user_id
        join xg_djxx d on xsr.djxx_id = d.id
        left join xg_cyd cyd on cyd.id = d.cyd_id
        left join sys_user czyUser  on  czyUser.user_id = d.czyid
    </sql>
	<!--  -->
    <select id="XgSampleRecordList" resultType="java.util.Map">
        <include refid="selectXgSampleRecord"/>

        ${ew.customSqlSegment}
        - 固定写法  官网有介绍
    </select>

mapper


    public List<Map<String, Object>> XgSampleRecordList(IPage<XgSampleRecord> page, 
    													@Param(Constants.WRAPPER) Wrapper queryWrapper);

serviceImpl

    @Override
    public List<Map<String, Object>> selectXgSampleRecordList(IPage<XgSampleRecord> page, Wrapper queryWrapper) {
        return xgSampleRecordMapper.XgSampleRecordList(page,queryWrapper);
    }

controller

    @PreAuthorize("@ss.hasPermi('accounting:XgSampleRecord:list')")
    @GetMapping("/list")
    public TableDataInfo list(XgSampleRecord xgSampleRecord, String createUser, String jysb, Long pageNum, Long pageSize) throws ParseException {
       // startPage();
        QueryWrapper<XgSampleRecord> lqw = new QueryWrapper<XgSampleRecord>();
        if (StringUtils.isNotBlank(xgSampleRecord.getJyjgId())){
            lqw.like("xsr.jg_name" ,xgSampleRecord.getJyjgId());
        }
        if (Strings.isNotBlank(createUser)){
            lqw.like("sysUser.user_name", createUser);
        }
        if (StringUtils.isNotBlank(jysb)){
            lqw.like("jysb.sbm", jysb);
        }
        if(StringUtils.isNotBlank(xgSampleRecord.getSampleCode()) ){
            lqw.eq("d.xlh",xgSampleRecord.getSampleCode());
        }
        if (xgSampleRecord.getSpecimenNumber() != null){
            lqw.eq("xsr.specimen_number" ,xgSampleRecord.getSpecimenNumber());
        }
        if (xgSampleRecord.getCreateTime() != null){
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
            String dateString = formatter.format(xgSampleRecord.getCreateTime());
           lqw.apply( "datediff (day, xsr.create_time, '"+dateString+"') = 0");
        }
        if (xgSampleRecord.getDjsj() != null){
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
            String dateString = formatter.format(xgSampleRecord.getDjsj());
            lqw.apply( "datediff (day, d.djsj, '"+dateString+"') = 0");
        }
        if (StringUtils.isNotBlank(xgSampleRecord.getResultUser())){
            lqw.eq("xsr.result_user" ,xgSampleRecord.getResultUser());
        }
        if(StringUtils.isNotBlank(xgSampleRecord.getCydId())){
            lqw.eq("cyd.id" ,xgSampleRecord.getCydId());
        }
        //System.err.println("检验机构id"+SecurityUtils.getLoginUser().getUser().getJgId());
        if(!ADMIN_jg.equals(SecurityUtils.getLoginUser().getUser().getJgId())){
            lqw.eq("xsr.jyjg_id", SecurityUtils.getLoginUser().getUser().getJgId());
        }
        lqw.inSql("d.bgzt", "1,2");
        //lqw.orderByDesc("xsr.id");
        IPage<XgSampleRecord> page = new Page<>(pageNum, pageSize);
        List<Map<String, Object>> list = iXgSampleRecordService.selectXgSampleRecordList(page,lqw);
        return getDataTable(list, page.getTotal());
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis-Plus 支持使用自定义 SQL 语句进行分页查询,下面是一个示例代码: ```java // 设置分页参数 Page<User> page = new Page<>(1, 10); // 查询第 1 页,每页 10 条记录 // 执行分页查询 List<User> userList = userMapper.selectUserList(page, 1); // 执行自定义 SQL 查询 // 输出查询结果 long total = page.getTotal(); // 获取查询总数 ``` 上面的代码中,我们首先通过 `new Page<>(1, 10)` 创建一个分页参数对象,表示查询第 1 页,每页 10 条记录。然后,我们使用自定义的 SQL 语句进行分页查询,通过 `userMapper.selectUserList(page, 1)` 执行查询,将查询结果保存到 `userList` 对象中。最后,我们通过 `page.getTotal()` 获取查询总数。 在自定义 SQL 语句中,我们需要使用 MyBatis-Plus 提供的分页参数。例如,在 MySQL 中,我们可以使用 `limit #{page.offset}, #{page.size}` 来限制查询结果的数量,并使用 `count(1)` 函数统计查询总数。下面是一个示例 SQL 语句: ```xml <select id="selectUserList" resultType="com.example.User"> select * from user where status = #{status} limit #{page.offset}, #{page.size} </select> ``` 在上面的 SQL 语句中,我们使用 `#{page.offset}` 表示查询结果的偏移量,使用 `#{page.size}` 表示查询结果的数量,其中 `page` 是 MyBatis-Plus 提供的分页参数对象。我们还使用 `count(1)` 函数统计查询总数,并将查询总数保存到 `page` 对象中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值