From 2e6277a8cf7a1d78b5151ac42f1aa785205cc907 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 07 Jul 2022 14:18:52 +0800
Subject: [PATCH] finish index

---
 src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java   |   11 +++++
 src/main/resources/mapper/ArticleMapper.xml                                            |    6 +++
 src/main/java/com/xcong/farmer/cms/modules/core/controller/CmsCoreController.java      |    7 +++
 src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java           |    3 +
 src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java             |    2 
 src/main/java/com/xcong/farmer/cms/modules/system/service/IReleaseService.java         |    2 +
 src/main/resources/mapper/ColumnMapper.xml                                             |   13 ++++++
 src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java |    6 +++
 src/main/java/com/xcong/farmer/cms/core/handler/ChildDataParserHandler.java            |   10 +++--
 src/main/java/com/xcong/farmer/cms/modules/system/entity/ColumnEntity.java             |    6 +++
 src/main/java/com/xcong/farmer/cms/core/node/Template.java                             |    2 
 src/main/java/com/xcong/farmer/cms/modules/core/service/ICmsCoreService.java           |    2 +
 src/main/java/com/xcong/farmer/cms/modules/system/mapper/ColumnMapper.java             |    2 +
 src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java         |   29 +++++++++-----
 src/main/java/com/xcong/farmer/cms/core/node/PartNode.java                             |    4 --
 15 files changed, 84 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java
index 2a0f273..9135964 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java
@@ -35,24 +35,31 @@
         Long companyId = (Long) node.getSystemDataValue("companyId");
         Articles param = (Articles) node.getParam();
 
+        ArticleEntity article = new ArticleEntity();
+        Page<ArticleEntity> page = new Page<>(Integer.parseInt(param.getPage()), Integer.parseInt(param.getLimit()));
         if (StrUtil.isEmpty(param.getColId())) {
-            Page<ArticleEntity> page = new Page<>(Integer.parseInt(param.getPage()), Integer.parseInt(param.getLimit()));
 
-            ArticleEntity article = new ArticleEntity();
             article.setColumnCode(param.getCode());
-            article.setCompanyId(companyId);
-            IPage<ArticleEntity> listPage = articleMapper.selectArticleInPage(page, article);
 
-            List<ArticleData> list = new ArrayList<>();
-            for (ArticleEntity record : listPage.getRecords()) {
-                ArticleData articleData = entityToData(record);
-                list.add(articleData);
-            }
-
-            node.setData(list);
         } else {
+            List<String> colIdsStr = StrUtil.split(param.getColId(), ',');
+            List<Long> colIds = new ArrayList<>();
+            colIdsStr.forEach(item -> {
+                colIds.add(Long.parseLong(item));
+            });
 
+            article.setColumnIds(colIds);
         }
+        article.setCompanyId(companyId);
+        IPage<ArticleEntity> listPage = articleMapper.selectArticleInPage(page, article);
+
+        List<ArticleData> list = new ArrayList<>();
+        for (ArticleEntity record : listPage.getRecords()) {
+            ArticleData articleData = entityToData(record);
+            list.add(articleData);
+        }
+
+        node.setData(list);
     }
 
     public ArticleData entityToData(ArticleEntity article) {
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/ChildDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/ChildDataParserHandler.java
index 72c52e1..94a06e2 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/ChildDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/ChildDataParserHandler.java
@@ -3,6 +3,8 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.xcong.farmer.cms.core.node.AttrNode;
+import com.xcong.farmer.cms.core.tag.model.Child;
+import lombok.extern.slf4j.Slf4j;
 
 import java.util.List;
 import java.util.Map;
@@ -11,16 +13,16 @@
  * @author wzy
  * @date 2022-06-29
  **/
+@Slf4j
 public class ChildDataParserHandler implements DataParserHandler {
 
     @Override
     public void dataParser(AttrNode attrNode) {
-        System.out.println("ChildDataParserHandler");
+        log.info("#数据子集执行#");
         Map<String, Object> parserData = attrNode.getParserData();
 
-        Object param = attrNode.getParam();
-        JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(param));
-        String obj = jsonObject.getString("obj");
+        Child param = (Child) attrNode.getParam();
+        String obj = param.getObj();
 
         Object o = parserData.get(obj);
         Object state = JSONObject.parseObject(JSONObject.toJSONString(o)).get("state");
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java
index 0ec80b8..99705b7 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java
@@ -37,6 +37,9 @@
 
         ColumnEntity columnEntity = columnMapper.selectByCodeAndCompanyId(param.getCode(), companyId);
 
+        if (columnEntity == null) {
+            return;
+        }
         ColumnData columnData = columnToData(columnEntity);
         if (columnEntity.getParentId() == 0L) {
             List<ColumnEntity> child = columnMapper.selectColumnByParentId(columnEntity.getId(), companyId);
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 5ad116f..4b97d98 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
@@ -82,7 +82,7 @@
 
     /**
      * (x + y)/2 = index
-     * y - x= size  解二元一次方程
+     * y - x= size  解二元一次方程 x-起点 y-终点
      *
      * @param index 当前页码
      * @param totalPage 总页数
diff --git a/src/main/java/com/xcong/farmer/cms/core/node/PartNode.java b/src/main/java/com/xcong/farmer/cms/core/node/PartNode.java
index 630fa71..6006d2c 100644
--- a/src/main/java/com/xcong/farmer/cms/core/node/PartNode.java
+++ b/src/main/java/com/xcong/farmer/cms/core/node/PartNode.java
@@ -87,10 +87,6 @@
             }
         }
 
-        if (attrNode.tagsEnum != null && attrNode.tagsEnum.getType() == 1) {
-            this.put(attrNode.getField(), result.toString());
-        }
-
         attrNode.getElement().append(result.toString());
         return attrNode.getElement().toString();
     }
diff --git a/src/main/java/com/xcong/farmer/cms/core/node/Template.java b/src/main/java/com/xcong/farmer/cms/core/node/Template.java
index aef600e..9e2e5b9 100644
--- a/src/main/java/com/xcong/farmer/cms/core/node/Template.java
+++ b/src/main/java/com/xcong/farmer/cms/core/node/Template.java
@@ -21,7 +21,7 @@
     // 文件名称
     private String name = "index";
     // 文件保存路径
-    private String path;
+    private String path = "";
 
     private Document document;
     private Map<String, Map<String, Object>> params = new HashMap<>();
diff --git a/src/main/java/com/xcong/farmer/cms/modules/core/controller/CmsCoreController.java b/src/main/java/com/xcong/farmer/cms/modules/core/controller/CmsCoreController.java
index 938022c..8c5ae0f 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/core/controller/CmsCoreController.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/core/controller/CmsCoreController.java
@@ -41,4 +41,11 @@
         releaseService.releaseColumn(id, article);
         return Result.ok("success");
     }
+
+    @ApiOperation(value = "发布首页", notes = "发布首页")
+    @PostMapping(value = "/releaseIndex")
+    public Result releaseIndex() {
+        releaseService.releaseIndex();
+        return Result.ok("success");
+    }
 }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/core/service/ICmsCoreService.java b/src/main/java/com/xcong/farmer/cms/modules/core/service/ICmsCoreService.java
index 0d933a8..0a15e8e 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/core/service/ICmsCoreService.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/core/service/ICmsCoreService.java
@@ -20,4 +20,6 @@
      */
     void columnProcess(Map<String, Object> map, String templateName, boolean columnOnly);
 
+    void indexProcess(Map<String, Object> map, String templateName);
+
 }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java
index 538f32e..475c74d 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java
@@ -7,6 +7,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.validation.constraints.NotNull;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -45,4 +46,14 @@
         }
         cfg.process(data, templateName);
     }
+
+    @Override
+    public void indexProcess(@NotNull Map<String, Object> data, String templateName) {
+        if (StrUtil.isEmpty(templateName)) {
+            templateName = "index.html";
+        }
+
+        data.put("companyId", 23L);
+        cfg.process(data, templateName);
+    }
 }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/entity/ColumnEntity.java b/src/main/java/com/xcong/farmer/cms/modules/system/entity/ColumnEntity.java
index 29220a8..90fa975 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/entity/ColumnEntity.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/entity/ColumnEntity.java
@@ -1,9 +1,12 @@
 package com.xcong.farmer.cms.modules.system.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.xcong.farmer.cms.common.system.base.BaseEntity;
 import lombok.Data;
 import org.tron.trident.abi.datatypes.Int;
+
+import java.util.List;
 
 /**
  * 栏目表
@@ -54,4 +57,7 @@
 
     // 栏目目录
     private String path;
+
+    @TableField(exist = false)
+    private List<Long> ids;
 }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ColumnMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ColumnMapper.java
index ce9b2a6..81774ab 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ColumnMapper.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ColumnMapper.java
@@ -18,4 +18,6 @@
     ColumnEntity selectByCodeAndCompanyId(@Param("code") String code, @Param("companyId") Long companyId);
 
     List<ColumnEntity> selectColumnByParentId(@Param("parentId") Long parentId, @Param("companyId") Long companyId);
+
+    IPage<ColumnEntity> selectColumnInPage(Page<ColumnEntity> page, @Param("record") ColumnEntity column);
 }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/IReleaseService.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/IReleaseService.java
index 19fc9fc..786eccb 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/IReleaseService.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/IReleaseService.java
@@ -6,4 +6,6 @@
     void releaseArticle(Long id);
 
     void releaseColumn(Long id, boolean article);
+
+    void releaseIndex();
 }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java
index ce2f7d4..8002634 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java
@@ -53,4 +53,10 @@
         map.put("templatePath", columnEntity.getPath());
         cmsCoreService.columnProcess(map, columnEntity.getListTemplate(), article);
     }
+
+    @Override
+    public void releaseIndex() {
+        Map<String, Object> map = new HashMap<>();
+        cmsCoreService.indexProcess(map, null);
+    }
 }
diff --git a/src/main/resources/mapper/ArticleMapper.xml b/src/main/resources/mapper/ArticleMapper.xml
index aa86fa6..ec1e9d3 100644
--- a/src/main/resources/mapper/ArticleMapper.xml
+++ b/src/main/resources/mapper/ArticleMapper.xml
@@ -74,6 +74,12 @@
             <if test="record.columnCode != null and record.columnCode != ''">
                 and c.column_code=#{record.columnCode}
             </if>
+            <if test="record.columnIds != null">
+                and c.id in
+                <foreach collection="record.columnIds" item="item" open="(" close=")" separator=",">
+                    ${item}
+                </foreach>
+            </if>
         </where>
     </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/ColumnMapper.xml b/src/main/resources/mapper/ColumnMapper.xml
index f5020c5..6b09973 100644
--- a/src/main/resources/mapper/ColumnMapper.xml
+++ b/src/main/resources/mapper/ColumnMapper.xml
@@ -38,4 +38,17 @@
         select * from t_column
         where parent_id=#{parentId} and company_id=#{companyId}
     </select>
+
+    <select id="selectColumnInPage" resultType="com.xcong.farmer.cms.modules.system.entity.ColumnEntity">
+        select
+               *
+        from t_column
+        where company_id=#{companyId}
+        <if test="record.ids != null">
+            and id in
+            <foreach collection="record.columnIds" item="item" open="(" close=")" separator=",">
+                ${item}
+            </foreach>
+        </if>
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1