From 85376e8d6e56a7b7588dc556303ec16d45c5a7f3 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期三, 21 七月 2021 12:07:12 +0800
Subject: [PATCH] add 演示Demo增加自定义分页接口案例

---
 ruoyi-ui/src/api/demo/demo.js                                                 |   11 +++++
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java    |   12 +++++
 ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java |   11 +++++
 ruoyi-ui/src/views/demo/demo/index.vue                                        |   22 ++++++++++
 ruoyi-demo/src/main/java/com/ruoyi/demo/service/ITestDemoService.java         |   16 +++++--
 ruoyi-demo/src/main/resources/mapper/demo/TestDemoMapper.xml                  |    5 ++
 ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestDemoMapper.java            |    6 +++
 7 files changed, 74 insertions(+), 9 deletions(-)

diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
index 2ac99d6..9ba8a2a 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
@@ -48,7 +48,17 @@
         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("瀵煎嚭娴嬭瘯鍗曡〃鍒楄〃")
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestDemoMapper.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestDemoMapper.java
index aceaf6d..45dc539 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestDemoMapper.java
+++ b/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 @@
 @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);
+
 }
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/ITestDemoService.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/ITestDemoService.java
index c011325..2676703 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/ITestDemoService.java
+++ b/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 @@
 	 * 鏌ヨ鍒楄〃
 	 */
     TableDataInfo<TestDemoVo> queryPageList(TestDemoQueryBo bo);
+
 	/**
+	 * 鑷畾涔夊垎椤垫煡璇�
+	 */
+	TableDataInfo<TestDemoVo> customPageList(TestDemoQueryBo bo);
+
+    /**
 	 * 鏌ヨ鍒楄〃
 	 */
 	List<TestDemoVo> queryList(TestDemoQueryBo bo);
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java
index 4d35efe..552c70d 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java
@@ -4,6 +4,7 @@
 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 @@
 		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) {
diff --git a/ruoyi-demo/src/main/resources/mapper/demo/TestDemoMapper.xml b/ruoyi-demo/src/main/resources/mapper/demo/TestDemoMapper.xml
index ec433d6..bfec5a0 100644
--- a/ruoyi-demo/src/main/resources/mapper/demo/TestDemoMapper.xml
+++ b/ruoyi-demo/src/main/resources/mapper/demo/TestDemoMapper.xml
@@ -18,6 +18,9 @@
         <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>
\ No newline at end of file
+</mapper>
diff --git a/ruoyi-ui/src/api/demo/demo.js b/ruoyi-ui/src/api/demo/demo.js
index fc9937d..c7195af 100644
--- a/ruoyi-ui/src/api/demo/demo.js
+++ b/ruoyi-ui/src/api/demo/demo.js
@@ -9,6 +9,15 @@
   })
 }
 
+// 鑷畾涔夊垎椤垫帴鍙�
+export function pageDemo(query) {
+  return request({
+    url: '/demo/demo/page',
+    method: 'get',
+    params: query
+  })
+}
+
 // 鏌ヨ娴嬭瘯鍗曡〃璇︾粏
 export function getDemo(id) {
   return request({
@@ -50,4 +59,4 @@
     method: 'get',
     params: query
   })
-}
\ No newline at end of file
+}
diff --git a/ruoyi-ui/src/views/demo/demo/index.vue b/ruoyi-ui/src/views/demo/demo/index.vue
index a6679f3..c2ef2e0 100644
--- a/ruoyi-ui/src/views/demo/demo/index.vue
+++ b/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 @@
         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 @@
       this.queryParams.pageNum = 1;
       this.getList();
     },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handlePage() {
+      this.queryParams.pageNum = 1;
+      this.getPage();
+    },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
       this.daterangeCreateTime = [];

--
Gitblit v1.9.3