Эх сурвалжийг харах

add 演示Demo增加自定义分页接口案例

疯狂的狮子li 3 жил өмнө
parent
commit
85376e8d6e

+ 11 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java

@@ -48,7 +48,17 @@ public class TestDemoController extends BaseController {
         return iTestDemoService.queryPageList(bo);
     }
 
-    /**
+	/**
+	 * 自定义分页查询
+	 */
+	@ApiOperation("自定义分页查询")
+	@PreAuthorize("@ss.hasPermi('demo:demo:list')")
+	@GetMapping("/page")
+	public TableDataInfo<TestDemoVo> page(@Validated TestDemoQueryBo bo) {
+		return iTestDemoService.customPageList(bo);
+	}
+
+	/**
      * 导出测试单表列表
      */
     @ApiOperation("导出测试单表列表")

+ 6 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestDemoMapper.java

@@ -1,9 +1,13 @@
 package com.ruoyi.demo.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
 import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
 import com.ruoyi.demo.domain.TestDemo;
+import com.ruoyi.demo.vo.TestDemoVo;
 import org.apache.ibatis.annotations.CacheNamespace;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 测试单表Mapper接口
@@ -15,4 +19,6 @@ import org.apache.ibatis.annotations.CacheNamespace;
 @CacheNamespace(implementation = MybatisPlusRedisCache.class, eviction = MybatisPlusRedisCache.class)
 public interface TestDemoMapper extends BaseMapperPlus<TestDemo> {
 
+    Page<TestDemoVo> customPageList(@Param("page") Page<TestDemo> page, @Param("ew") Wrapper<TestDemo> wrapper);
+
 }

+ 11 - 5
ruoyi-demo/src/main/java/com/ruoyi/demo/service/ITestDemoService.java

@@ -1,12 +1,12 @@
 package com.ruoyi.demo.service;
 
-import com.ruoyi.demo.domain.TestDemo;
-import com.ruoyi.demo.vo.TestDemoVo;
-import com.ruoyi.demo.bo.TestDemoQueryBo;
-import com.ruoyi.demo.bo.TestDemoAddBo;
-import com.ruoyi.demo.bo.TestDemoEditBo;
 import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
 import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.demo.bo.TestDemoAddBo;
+import com.ruoyi.demo.bo.TestDemoEditBo;
+import com.ruoyi.demo.bo.TestDemoQueryBo;
+import com.ruoyi.demo.domain.TestDemo;
+import com.ruoyi.demo.vo.TestDemoVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -29,7 +29,13 @@ public interface ITestDemoService extends IServicePlus<TestDemo> {
 	 * 查询列表
 	 */
     TableDataInfo<TestDemoVo> queryPageList(TestDemoQueryBo bo);
+
 	/**
+	 * 自定义分页查询
+	 */
+	TableDataInfo<TestDemoVo> customPageList(TestDemoQueryBo bo);
+
+    /**
 	 * 查询列表
 	 */
 	List<TestDemoVo> queryList(TestDemoQueryBo bo);

+ 11 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.annotation.DataScope;
 import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
 import com.ruoyi.common.core.page.PagePlus;
@@ -43,6 +44,16 @@ public class TestDemoServiceImpl extends ServicePlusImpl<TestDemoMapper, TestDem
 		return PageUtils.buildDataInfo(result);
 	}
 
+	/**
+	 * 自定义分页查询
+	 */
+	@DataScope(isUser = true)
+	@Override
+	public TableDataInfo<TestDemoVo> customPageList(TestDemoQueryBo bo) {
+		Page<TestDemoVo> result = baseMapper.customPageList(PageUtils.buildPage(), buildQueryWrapper(bo));
+		return PageUtils.buildDataInfo(result);
+	}
+
 	@DataScope(isUser = true)
 	@Override
 	public List<TestDemoVo> queryList(TestDemoQueryBo bo) {

+ 4 - 1
ruoyi-demo/src/main/resources/mapper/demo/TestDemoMapper.xml

@@ -18,6 +18,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy" column="update_by"/>
         <result property="delFlag" column="del_flag"/>
     </resultMap>
+    <select id="customPageList" resultType="com.ruoyi.demo.vo.TestDemoVo">
+        SELECT * FROM test_demo ${ew.customSqlSegment}
+    </select>
 
 
-</mapper>
+</mapper>

+ 10 - 1
ruoyi-ui/src/api/demo/demo.js

@@ -9,6 +9,15 @@ export function listDemo(query) {
   })
 }
 
+// 自定义分页接口
+export function pageDemo(query) {
+  return request({
+    url: '/demo/demo/page',
+    method: 'get',
+    params: query
+  })
+}
+
 // 查询测试单表详细
 export function getDemo(id) {
   return request({
@@ -50,4 +59,4 @@ export function exportDemo(query) {
     method: 'get',
     params: query
   })
-}
+}

+ 21 - 1
ruoyi-ui/src/views/demo/demo/index.vue

@@ -33,6 +33,7 @@
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handlePage">搜索(自定义分页接口)</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
@@ -168,7 +169,7 @@
 </template>
 
 <script>
-import { listDemo, getDemo, delDemo, addDemo, updateDemo, exportDemo } from "@/api/demo/demo";
+import { listDemo, pageDemo, getDemo, delDemo, addDemo, updateDemo, exportDemo } from "@/api/demo/demo";
 
 export default {
   name: "Demo",
@@ -239,6 +240,20 @@ export default {
         this.loading = false;
       });
     },
+    /** 自定义分页查询 */
+    getPage() {
+      this.loading = true;
+      this.queryParams.params = {};
+      if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
+        this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
+        this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
+      }
+      pageDemo(this.queryParams).then(response => {
+        this.demoList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
     // 取消按钮
     cancel() {
       this.open = false;
@@ -267,6 +282,11 @@ export default {
       this.queryParams.pageNum = 1;
       this.getList();
     },
+    /** 搜索按钮操作 */
+    handlePage() {
+      this.queryParams.pageNum = 1;
+      this.getPage();
+    },
     /** 重置按钮操作 */
     resetQuery() {
       this.daterangeCreateTime = [];