瀏覽代碼

添加分页

seeseele 10 月之前
父節點
當前提交
041f047cd7

+ 19 - 3
src/main/java/com/ruoyi/project/VRdemo/controller/SearchController.java

@@ -1,6 +1,11 @@
 package com.ruoyi.project.VRdemo.controller;
 
+import com.alibaba.fastjson2.JSONObject;
+import com.github.pagehelper.PageInfo;
 import com.ruoyi.framework.aspectj.lang.annotation.Anonymous;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.VRdemo.domain.SearchData;
 import com.ruoyi.project.VRdemo.service.ISearchService;
 import org.apache.poi.ss.formula.functions.T;
@@ -11,7 +16,7 @@ import java.util.List;
 
 @RestController
 @RequestMapping("/vr/search")
-public class SearchController {
+public class SearchController extends BaseController {
 
     @Autowired
     private ISearchService searchService;
@@ -19,7 +24,18 @@ public class SearchController {
     // 高级检索功能接口
     @Anonymous
     @PostMapping("/SearchDatabases")
-    public List<Object> searchDatabases(@RequestBody List<SearchData> searchData) {
-        return searchService.MappingSelection(searchData);
+    public TableDataInfo searchDatabases(@RequestBody JSONObject jsonObject) {
+        List<SearchData> searchData = jsonObject.getList("searchData", SearchData.class);
+        Integer pageNum = jsonObject.getInteger("pageNum");
+        Integer pageSize = jsonObject.getInteger("pageSize");
+
+        List<Object> list = searchService.MappingSelection(searchData);
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setCode(200);
+        rspData.setMsg("查询成功");
+        rspData.setRows(searchService.startPage(list, pageNum, pageSize));
+        rspData.setTotal(new PageInfo(list).getTotal());
+
+        return rspData;
     }
 }

+ 2 - 0
src/main/java/com/ruoyi/project/VRdemo/service/ISearchService.java

@@ -8,4 +8,6 @@ import java.util.List;
 public interface ISearchService {
 
     List<Object> MappingSelection(List<SearchData> searchData);
+
+    List<Object> startPage(List<Object> list, Integer pageNum, Integer pageSize);
 }

+ 34 - 0
src/main/java/com/ruoyi/project/VRdemo/service/impl/SearchServiceImpl.java

@@ -35,6 +35,40 @@ public class SearchServiceImpl implements ISearchService {
         }
     }
 
+    /**
+     * 开始分页
+     *
+     * @param list     传入的list集合
+     * @param pageNum  页码
+     * @param pageSize 每页多少条数据
+     * @return
+     */
+    public List<Object> startPage(List<Object> list, Integer pageNum, Integer pageSize) {
+        if (list == null) {
+            return null;
+        }
+        if (list.size() == 0) {
+            return null;
+        }
+        Integer count = list.size(); // 记录总数
+        Integer pageCount = 0; // 页数
+        if (count % pageSize == 0) {
+            pageCount = count / pageSize;
+        } else {
+            pageCount = count / pageSize + 1;
+        }
+        int fromIndex = 0; // 开始索引
+        int toIndex = 0; // 结束索引
+        if (pageNum != pageCount) {
+            fromIndex = (pageNum - 1) * pageSize;
+            toIndex = fromIndex + pageSize;
+        } else {
+            fromIndex = (pageNum - 1) * pageSize;
+            toIndex = count;
+        }
+        List pageList = list.subList(fromIndex, toIndex);
+        return pageList;
+    }
 
     // 期刊逻辑
     private List<Press> handlePeriodicals(List<SearchData> searchData) {