From 23ded627f87ca96ef793013dd3f44ab05e2d111b Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 08 Jul 2022 12:13:34 +0800
Subject: [PATCH] 修改article handler 增加 ‡签

---
 src/main/java/com/xcong/farmer/cms/core/tag/data/ArticleData.java                      |   30 +++++++++++++++
 src/main/java/com/xcong/farmer/cms/conversion/ArticleConversion.java                   |    1 
 src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java           |    2 
 src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java                             |    2 +
 src/main/java/com/xcong/farmer/cms/modules/system/mapper/ColumnMapper.java             |    2 
 src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java              |    4 +-
 src/main/resources/mapper/ColumnMapper.xml                                             |    3 +
 src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java |    2 
 src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java          |   17 ++++----
 9 files changed, 50 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/xcong/farmer/cms/conversion/ArticleConversion.java b/src/main/java/com/xcong/farmer/cms/conversion/ArticleConversion.java
index cdb6610..4cdc576 100644
--- a/src/main/java/com/xcong/farmer/cms/conversion/ArticleConversion.java
+++ b/src/main/java/com/xcong/farmer/cms/conversion/ArticleConversion.java
@@ -18,6 +18,7 @@
     @Mapping(source = "visits", target = "views")
     @Mapping(source = "mainDiagram", target = "thumb")
     @Mapping(source = "releaseTime", target = "createTime")
+    @Mapping(source = "authorBelong", target = "company")
     @Mapping(source = "articleDetails", target = "content")
     @Mapping(source = "uploadFile", target = "filePath")
     public abstract ArticleData entityToData(ArticleEntity article);
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java
index b5b5b7f..345573c 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java
@@ -2,11 +2,14 @@
 
 
 import com.alibaba.fastjson.JSONObject;
+import com.xcong.farmer.cms.conversion.ArticleConversion;
 import com.xcong.farmer.cms.core.node.AttrNode;
+import com.xcong.farmer.cms.core.tag.data.ArticleData;
 import com.xcong.farmer.cms.core.tag.model.Article;
 import com.xcong.farmer.cms.modules.system.entity.ArticleEntity;
 import com.xcong.farmer.cms.modules.system.mapper.ArticleMapper;
 import com.xcong.farmer.cms.utils.SpringContextHolder;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -17,25 +20,23 @@
  * @author wzy
  * @date 2022-06-24
  **/
+@Slf4j
 public class ArticleDataParserHandler implements DataParserHandler {
 
     private final ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
 
     @Override
     public void dataParser(AttrNode node) {
-        System.out.println("ArticleDataParserHandler");
+        log.info("文章解析");
         Article tag = (Article) node.getParam();
         ArticleEntity data = articleMapper.selectById(tag.getId());
 
         ArticleEntity prev = articleMapper.selectPrevOrNextArticle(data.getId(), data.getColumnId(), 1);
         ArticleEntity next = articleMapper.selectPrevOrNextArticle(data.getId(), data.getColumnId(), 2);
 
-        Map map = JSONObject.parseObject(JSONObject.toJSONString(data), Map.class);
-//        Map<String, Object> map = new HashMap<>();
-//        map.put("title", "这是单个文章标题");
-
-        map.put("prev", prev);
-        map.put("next", next);
-        node.setData(map);
+        ArticleData articleData = ArticleConversion.INSTANCE.entityToData(data);
+        articleData.setNext(ArticleConversion.INSTANCE.entityToData(next));
+        articleData.setPrev(ArticleConversion.INSTANCE.entityToData(prev));
+        node.setData(articleData);
     }
 }
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 99705b7..50ef367 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
@@ -42,7 +42,7 @@
         }
         ColumnData columnData = columnToData(columnEntity);
         if (columnEntity.getParentId() == 0L) {
-            List<ColumnEntity> child = columnMapper.selectColumnByParentId(columnEntity.getId(), companyId);
+            List<ColumnEntity> child = columnMapper.selectColumnByParentId(columnEntity.getId(), companyId, 1);
             if (CollUtil.isNotEmpty(child)) {
                 List<ColumnData> list = new ArrayList<>();
                 for (ColumnEntity entity : child) {
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java
index b50a231..cac8b9a 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java
@@ -35,7 +35,7 @@
         log.info("导航栏解析");
         Long companyId = (Long) node.getSystemDataValue("companyId");
 
-        List<ColumnEntity> columns = columnMapper.selectColumnByParentId(0L, companyId);
+        List<ColumnEntity> columns = columnMapper.selectColumnByParentId(0L, companyId, 1);
 
         if (CollUtil.isEmpty(columns)) {
             return;
@@ -52,7 +52,7 @@
         for (ColumnEntity column : columns) {
             NavData navData = columnToNav(column);
 
-            List<ColumnEntity> child = columnMapper.selectColumnByParentId(column.getId(), companyId);
+            List<ColumnEntity> child = columnMapper.selectColumnByParentId(column.getId(), companyId, 1);
             if (CollUtil.isNotEmpty(child)) {
                 List<NavData> childNavData = columnsToNavs(child);
                 navData.setChildren(childNavData);
diff --git a/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java b/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java
index c85e75e..16f3cd9 100644
--- a/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java
+++ b/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java
@@ -177,6 +177,8 @@
                 String result = attrValueFormat(value);
                 if ("text".equals(key)) {
                     this.element.text(result);
+                } else if ("html".equals(key)) {
+                    this.element.html(result);
                 } else {
                     this.element.attr(key, result);
                 }
diff --git a/src/main/java/com/xcong/farmer/cms/core/tag/data/ArticleData.java b/src/main/java/com/xcong/farmer/cms/core/tag/data/ArticleData.java
index d0d345d..c55d356 100644
--- a/src/main/java/com/xcong/farmer/cms/core/tag/data/ArticleData.java
+++ b/src/main/java/com/xcong/farmer/cms/core/tag/data/ArticleData.java
@@ -28,12 +28,42 @@
 
     private String views;
 
+    private String company;
+
     private String filePath;
 
     private List<String> images;
 
     private String url;
 
+    private ArticleData next;
+
+    private ArticleData prev;
+
+    public String getCompany() {
+        return company;
+    }
+
+    public void setCompany(String company) {
+        this.company = company;
+    }
+
+    public ArticleData getNext() {
+        return next;
+    }
+
+    public void setNext(ArticleData next) {
+        this.next = next;
+    }
+
+    public ArticleData getPrev() {
+        return prev;
+    }
+
+    public void setPrev(ArticleData prev) {
+        this.prev = prev;
+    }
+
     public String getFilePath() {
         return filePath;
     }
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 7c2327d..0ddbb20 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,7 +18,7 @@
 
     ColumnEntity selectByCodeAndCompanyId(@Param("code") String code, @Param("companyId") Long companyId);
 
-    List<ColumnEntity> selectColumnByParentId(@Param("parentId") Long parentId, @Param("companyId") Long companyId);
+    List<ColumnEntity> selectColumnByParentId(@Param("parentId") Long parentId, @Param("companyId") Long companyId, @Param("isNav") Integer isNav);
 
     IPage<ColumnEntity> selectColumnInPage(Page<ColumnEntity> page, @Param("record") ColumnEntity column);
 
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 d156360..d0b0aeb 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
@@ -79,7 +79,7 @@
         if (type != 1) {
             executor.execute(() -> {
                 if (columnEntity.getParentId() == 0L) {
-                    List<ColumnEntity> columns = columnMapper.selectColumnByParentId(columnEntity.getParentId(), companyId);
+                    List<ColumnEntity> columns = columnMapper.selectColumnByParentId(columnEntity.getParentId(), companyId, 2);
                     if (CollUtil.isNotEmpty(columns)) {
                         for (ColumnEntity column : columns) {
                             map.put("id", column.getId());
diff --git a/src/main/resources/mapper/ColumnMapper.xml b/src/main/resources/mapper/ColumnMapper.xml
index 9301d93..e4022c0 100644
--- a/src/main/resources/mapper/ColumnMapper.xml
+++ b/src/main/resources/mapper/ColumnMapper.xml
@@ -37,6 +37,9 @@
     <select id="selectColumnByParentId" resultType="com.xcong.farmer.cms.modules.system.entity.ColumnEntity">
         select * from t_column
         where parent_id=#{parentId} and company_id=#{companyId}
+        <if test="isNav == 1">
+            and is_nav=1
+        </if>
     </select>
 
     <select id="selectColumnInPage" resultType="com.xcong.farmer.cms.modules.system.entity.ColumnEntity">

--
Gitblit v1.9.1