jeecg-boot通过sql获取的数据集,实现分页查询

893人浏览 / 0人评论 / 添加收藏

1、controller实现

/**
    * 分页列表查询(SQL)
    *
    * @param cronJobList
    * @param pageNo
    * @param pageSize
    * @param req
    * @return
    */
   @AutoLog(value = "发布任务清单表SQL-分页列表查询")
   @ApiOperation(value = "发布任务清单表SQL-分页列表查询", notes = "发布任务清单表SQL-分页列表查询")
   @GetMapping(value = "/list2")
   public Result<?> queryPageListBySql(CronJobList cronJobList,
                                       @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                       @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                       HttpServletRequest req) {
       Page<CronJobList> page = new Page<CronJobList>(pageNo, pageSize);
       IPage<CronJobList> pageList = cronJobListService.queryPageListBySql(page, cronJobList);
       return Result.OK(pageList);
   }

 

2、service层

2.1接口

package org.jeecg.modules.task.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.task.entity.CronJobList;

/**
* @Description: 发布任务清单表
* @Author: jeecg-boot
* @Date: 2022-09-29
* @Version: V1.0
*/
public interface ICronJobListService extends IService<CronJobList> {
   IPage<CronJobList> queryPageListBySql(Page<CronJobList> page, CronJobList cronJobList);
}

2.2实现

package org.jeecg.modules.task.service.impl;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.task.entity.CronJobList;
import org.jeecg.modules.task.mapper.CronJobListMapper;
import org.jeecg.modules.task.service.ICronJobListService;
import org.springframework.stereotype.Service;

import java.util.List;

/**
* @Description: 发布任务清单表
* @Author: jeecg-boot
* @Date: 2022-09-29
* @Version: V1.0
*/
@Service
public class CronJobListServiceImpl extends ServiceImpl<CronJobListMapper, CronJobList> implements ICronJobListService {
   @Override
   public IPage<CronJobList> queryPageListBySql(Page<CronJobList> page, CronJobList cronJobList) {
       List<CronJobList> cronJobLists = this.baseMapper.queryPageListBySql(page, cronJobList);
       return page.setRecords(cronJobLists);
   }
}

 

3、mapper接口

package org.jeecg.modules.task.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.task.entity.CronJobList;

import java.util.List;

/**
* @Description: 发布任务清单表
* @Author: jeecg-boot
* @Date: 2022-09-29
* @Version: V1.0
*/
public interface CronJobListMapper extends BaseMapper<CronJobList> {
   List<CronJobList> queryPageListBySql(Page<CronJobList> page, CronJobList dto);
}

 

4、xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.task.mapper.CronJobListMapper">

   <!--查list分组归并,状态、时间排序-->
   <select id="queryPageListBySql" parameterType="Object"
           resultType="org.jeecg.modules.task.entity.CronJobList">
       SELECT
       cjl.*
       FROM
       CRON_JOB_LIST cjl
       LEFT JOIN (
       SELECT
       LIST_CODE,
       CASE

       WHEN min( CASE WHEN CRON_STATUS = 1 THEN 1 ELSE 0 END ) = 0 THEN
       0 ELSE 1
       END rn
       FROM
       CRON_JOB_LIST cjl
       GROUP BY
       LIST_CODE
       ) tt ON cjl.LIST_CODE = tt.list_code
       WHERE
       1 = 1
       <if test="dto.cronName !=null and dto.cronName != ''">
           AND cjl.cron_name like concat(concat('%',#{dto.cronName}),'%')
       </if>
       <if test="dto.demindCycletxt !=null and dto.demindCycletxt != ''">
           AND cjl.demind_cycletxt like concat(concat('%',#{dto.demindCycletxt}),'%')
       </if>
       <if test="dto.cronStatus !=null">
           AND cjl.cron_status = #{dto.cronStatus}
       </if>
       ORDER BY
       tt.rn,
       DEMIND_DATE DESC

   </select>

</mapper>

 

 

 

全部评论