From 6a07f220e8f855740eee9b9dcae75464d6266380 Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Thu, 20 Oct 2022 22:53:10 +0800
Subject: [PATCH] 修复分页死循环

---
 src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java
index f405ed2..a29599f 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java
@@ -10,9 +10,12 @@
 import com.xcong.farmer.cms.core.tag.data.PageChildData;
 import com.xcong.farmer.cms.core.tag.data.PageData;
 import com.xcong.farmer.cms.core.tag.model.Article;
+import com.xcong.farmer.cms.core.tag.model.Column;
 import com.xcong.farmer.cms.core.tag.model.Pagination;
 import com.xcong.farmer.cms.modules.system.entity.ArticleEntity;
+import com.xcong.farmer.cms.modules.system.entity.ColumnEntity;
 import com.xcong.farmer.cms.modules.system.mapper.ArticleMapper;
+import com.xcong.farmer.cms.modules.system.mapper.ColumnMapper;
 import com.xcong.farmer.cms.utils.SpringContextHolder;
 import lombok.extern.slf4j.Slf4j;
 
@@ -27,15 +30,22 @@
 public class PageDataParserHandler implements DataParserHandler {
 
     private ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
-    private CmsProperties cmsProperties = SpringContextHolder.getBean(CmsProperties.class);
+    private ColumnMapper columnMapper = SpringContextHolder.getBean(ColumnMapper.class);
     @Override
     public void dataParser(AttrNode attrNode) {
         log.info("分页解析");
         synchronized (this) {
             Template.HAS_PAGING = true;
 
+            String baseUrl = (String) attrNode.getSystemDataValue("baseUrl");
+
             Long companyId = (Long) attrNode.getSystemDataValue("companyId");
             Pagination param = (Pagination) attrNode.getParam();
+
+            Object pageNum = attrNode.getSystemDataValue("page");
+            if (pageNum != null) {
+                param.setPage(pageNum.toString());
+            }
 
             Page<ArticleEntity> page = new Page<>(Integer.parseInt(param.getPage()), Integer.parseInt(param.getLimit()));
             ArticleEntity article = new ArticleEntity();
@@ -49,7 +59,14 @@
             pageData.setTotalCnt((int) pageList.getSize());
 
             if (CollUtil.isNotEmpty(pageList.getRecords())) {
-                String path = cmsProperties.getBaseUrl() + "/" + param.getCode();
+                ColumnEntity parentColumn = columnMapper.selectParentColumnByCodeAndCompanyId(param.getCode(), companyId);
+                String path;
+                if (parentColumn == null) {
+                    path = baseUrl + "/" + param.getCode();
+                } else {
+                    path = baseUrl + "/" + parentColumn.getColumnCode() + "/" + param.getCode();
+                }
+
                 String filename = "index_{}.html";
 
                 List<PageChildData> list = new ArrayList<>();
@@ -74,7 +91,7 @@
                 pageData.setPrev("javascript:void(0)");
             }
 
-            if (Integer.parseInt(param.getPage()) == pageList.getPages()) {
+            if (Integer.parseInt(param.getPage()) >= pageList.getPages()) {
                 Template.HAS_PAGING = false;
             }
 

--
Gitblit v1.9.1