From 9035f78fbcd60c452b5e37e5687813c35e9c4ff2 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 05 Jul 2022 10:21:23 +0800
Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/farmer-cms
---
src/main/java/com/xcong/farmer/cms/conversion/ColumnConversion.java | 27 ++++++
src/main/java/com/xcong/farmer/cms/core/template/TemplateLoader.java | 1
src/main/java/com/xcong/farmer/cms/core/tag/data/NavData.java | 60 +++++++++++++++
src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java | 2
src/main/resources/mapper/ArticleMapper.xml | 6 +
src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java | 93 ++++++++++++++++++----
src/main/resources/mapper/ColumnMapper.xml | 7 +
src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java | 7 +
src/main/java/com/xcong/farmer/cms/modules/system/mapper/ArticleMapper.java | 2
src/main/java/com/xcong/farmer/cms/core/node/Template.java | 5
src/main/java/com/xcong/farmer/cms/core/template/TemplateConfiguration.java | 4
src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java | 4 +
src/main/java/com/xcong/farmer/cms/modules/system/mapper/ColumnMapper.java | 6 +
13 files changed, 196 insertions(+), 28 deletions(-)
diff --git a/src/main/java/com/xcong/farmer/cms/conversion/ColumnConversion.java b/src/main/java/com/xcong/farmer/cms/conversion/ColumnConversion.java
new file mode 100644
index 0000000..a9dd7f7
--- /dev/null
+++ b/src/main/java/com/xcong/farmer/cms/conversion/ColumnConversion.java
@@ -0,0 +1,27 @@
+package com.xcong.farmer.cms.conversion;
+
+import com.xcong.farmer.cms.core.tag.data.NavData;
+import com.xcong.farmer.cms.modules.system.entity.ColumnEntity;
+import com.xcong.farmer.cms.modules.test.mapper.TestUserEntityMapper;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2022-07-04
+ **/
+@Mapper
+public abstract class ColumnConversion {
+
+ public static final ColumnConversion INSTANCE = Mappers.getMapper(ColumnConversion.class);
+
+ @Mapping(target = "title", source = "columnName")
+ @Mapping(target = "code", source = "columnCode")
+ @Mapping(target = "image", source = "pic")
+ public abstract NavData columnToNav(ColumnEntity column);
+
+ public abstract List<NavData> columnsToNavs(List<ColumnEntity> column);
+}
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 74ff8d3..f0c4db8 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
@@ -1,8 +1,17 @@
package com.xcong.farmer.cms.core.handler;
+import cn.hutool.core.collection.CollUtil;
+import com.xcong.farmer.cms.conversion.ColumnConversion;
import com.xcong.farmer.cms.core.node.AttrNode;
+import com.xcong.farmer.cms.core.tag.data.NavData;
+import com.xcong.farmer.cms.core.tag.model.Nav;
+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.modules.system.vo.AdminColumnVo;
import com.xcong.farmer.cms.utils.SpringContextHolder;
+import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.HashMap;
@@ -13,34 +22,80 @@
* @author wzy
* @date 2022-06-28
**/
+@Slf4j
public class NavDataParserHandler implements DataParserHandler {
private ColumnMapper columnMapper = SpringContextHolder.getBean(ColumnMapper.class);
-
+ private ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
+ private String BASE_URL = "http://192.168.0.1/";
@Override
public void dataParser(AttrNode node) {
- System.out.println("NavDataParserHandler");
- List<Map<String, Object>> list = new ArrayList<>();
- Map<String, Object> aa = new HashMap<>();
- aa.put("title", "导航1");
- list.add(aa);
+ log.info("导航栏解析");
+ Long companyId = (Long) node.getSystemDataValue("companyId");
- Map<String, Object> bb = new HashMap<>();
- bb.put("title", "导航2");
+ List<ColumnEntity> columns = columnMapper.selectColumnByParentId(0L, companyId);
- List<Map<String, Object>> sub = new ArrayList<>();
- Map<String, Object> subBB = new HashMap<>();
- subBB.put("title", "子导航1");
- subBB.put("src", "http://1234");
- sub.add(subBB);
- Map<String, Object> subAA = new HashMap<>();
- subAA.put("title", "子导航2");
- subAA.put("src", "http://123455555");
- sub.add(subAA);
+ if (CollUtil.isEmpty(columns)) {
+ return;
+ }
- bb.put("children", sub);
- list.add(bb);
+ List<NavData> list = new ArrayList<>();
+ for (ColumnEntity column : columns) {
+ NavData navData = columnToNav(column);
+ List<ColumnEntity> child = columnMapper.selectColumnByParentId(column.getId(), companyId);
+ if (CollUtil.isNotEmpty(child)) {
+ List<NavData> childNavData = columnsToNavs(child);
+ navData.setChildren(childNavData);
+ }
+ list.add(navData);
+ }
+// List<Map<String, Object>> list = new ArrayList<>();
+// Map<String, Object> aa = new HashMap<>();
+// aa.put("title", "导航1");
+// list.add(aa);
+//
+// Map<String, Object> bb = new HashMap<>();
+// bb.put("title", "导航2");
+//
+// List<Map<String, Object>> sub = new ArrayList<>();
+// Map<String, Object> subBB = new HashMap<>();
+// subBB.put("title", "子导航1");
+// subBB.put("src", "http://1234");
+// sub.add(subBB);
+// Map<String, Object> subAA = new HashMap<>();
+// subAA.put("title", "子导航2");
+// subAA.put("src", "http://123455555");
+// sub.add(subAA);
+//
+// bb.put("children", sub);
+// list.add(bb);
node.setData(list);
}
+
+ public List<NavData> columnsToNavs(List<ColumnEntity> columns) {
+ List<NavData> list = new ArrayList<>();
+ for (ColumnEntity column : columns) {
+ list.add(columnToNav(column));
+ }
+
+ return list;
+ }
+
+ public NavData columnToNav(ColumnEntity column) {
+ NavData navData = ColumnConversion.INSTANCE.columnToNav(column);
+
+ navData.setUrl(BASE_URL + navData.getCode());
+ if (column.getType() == 2) {
+ if (column.getTargetType() == 1) {
+ ArticleEntity article = this.articleMapper.selectArticleById(Long.parseLong(column.getTargetUrl()));
+ navData.setUrl(BASE_URL + article.getColumnCode() + "/" + article.getId() + ".html");
+ } else if (column.getTargetType() == 2) {
+ navData.setUrl(BASE_URL + column.getTargetUrl());
+ } else {
+ navData.setUrl(column.getTargetUrl());
+ }
+ }
+ return navData;
+ }
}
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 ce47824..ebf2177 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
@@ -258,4 +258,8 @@
public void systemData(Map<String, Object> systemData) {
this.systemData = systemData;
}
+
+ public Object getSystemDataValue(String key) {
+ return this.systemData.get(key);
+ }
}
diff --git a/src/main/java/com/xcong/farmer/cms/core/template/Template.java b/src/main/java/com/xcong/farmer/cms/core/node/Template.java
similarity index 94%
rename from src/main/java/com/xcong/farmer/cms/core/template/Template.java
rename to src/main/java/com/xcong/farmer/cms/core/node/Template.java
index 2b389e0..d160592 100644
--- a/src/main/java/com/xcong/farmer/cms/core/template/Template.java
+++ b/src/main/java/com/xcong/farmer/cms/core/node/Template.java
@@ -1,4 +1,4 @@
-package com.xcong.farmer.cms.core.template;
+package com.xcong.farmer.cms.core.node;
import cn.hutool.core.collection.CollUtil;
import com.xcong.farmer.cms.core.node.PartNode;
@@ -23,9 +23,10 @@
private Map<String, Map<String, Object>> params = new HashMap<>();
private Map<String, Object> system;
-
private List<PartNode> partNodes = new ArrayList<>();
+ private static boolean hasPaging = false;
+
public void parser() {
Elements children = document.body().children();
if (CollUtil.isNotEmpty(children)) {
diff --git a/src/main/java/com/xcong/farmer/cms/core/tag/data/NavData.java b/src/main/java/com/xcong/farmer/cms/core/tag/data/NavData.java
new file mode 100644
index 0000000..ca0b5fb
--- /dev/null
+++ b/src/main/java/com/xcong/farmer/cms/core/tag/data/NavData.java
@@ -0,0 +1,60 @@
+package com.xcong.farmer.cms.core.tag.data;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2022-07-04
+ **/
+public class NavData {
+
+ private String title;
+
+ private String code;
+
+ private String url;
+
+ private String image;
+
+ private List<NavData> children;
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getImage() {
+ return image;
+ }
+
+ public void setImage(String image) {
+ this.image = image;
+ }
+
+ public List<NavData> getChildren() {
+ return children;
+ }
+
+ public void setChildren(List<NavData> children) {
+ this.children = children;
+ }
+}
diff --git a/src/main/java/com/xcong/farmer/cms/core/template/TemplateConfiguration.java b/src/main/java/com/xcong/farmer/cms/core/template/TemplateConfiguration.java
index b951adb..f6b078a 100644
--- a/src/main/java/com/xcong/farmer/cms/core/template/TemplateConfiguration.java
+++ b/src/main/java/com/xcong/farmer/cms/core/template/TemplateConfiguration.java
@@ -1,14 +1,12 @@
package com.xcong.farmer.cms.core.template;
-import cn.hutool.core.collection.CollUtil;
import com.xcong.farmer.cms.core.node.PartNode;
-import com.xcong.farmer.cms.core.tag.TagsEnum;
+import com.xcong.farmer.cms.core.node.Template;
import org.jsoup.nodes.Document;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
diff --git a/src/main/java/com/xcong/farmer/cms/core/template/TemplateLoader.java b/src/main/java/com/xcong/farmer/cms/core/template/TemplateLoader.java
index 6eb9068..261d7a3 100644
--- a/src/main/java/com/xcong/farmer/cms/core/template/TemplateLoader.java
+++ b/src/main/java/com/xcong/farmer/cms/core/template/TemplateLoader.java
@@ -1,5 +1,6 @@
package com.xcong.farmer.cms.core.template;
+import com.xcong.farmer.cms.core.node.Template;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
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 5a2579b..fe34c50 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
@@ -25,7 +25,7 @@
public void articleProcess(Long id, String templateName) {
Map<String, Object> data = new HashMap<>();
data.put("id", id);
-
+ data.put("companyId", 0L);
if (StrUtil.isEmpty(templateName)) {
templateName = "artile.defualt.html";
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java b/src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java
index ab5e558..349877d 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java
@@ -1,5 +1,6 @@
package com.xcong.farmer.cms.modules.system.entity;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xcong.farmer.cms.common.system.base.BaseEntity;
@@ -80,4 +81,10 @@
private String articleUrl;
+ @TableField(exist = false)
+ private String columnCode;
+
+ @TableField(exist = false)
+ private String columnName;
+
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ArticleMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ArticleMapper.java
index d8709fa..3ced7bd 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ArticleMapper.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ArticleMapper.java
@@ -16,4 +16,6 @@
AdminSeeArticleInfoVo selectAdminArticleByid(@Param("id")Long id);
ArticleEntity selectPrevOrNextArticle(@Param("id") Long id, @Param("columnId") Long columnId, @Param("type") Integer type);
+
+ ArticleEntity selectArticleById(@Param("id") Long id);
}
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 8816587..ce9b2a6 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
@@ -11,9 +11,11 @@
public interface ColumnMapper extends BaseMapper<ColumnEntity> {
- IPage<AdminColumnVo> selectAdminColumnVoInPage(Page<AdminColumnVo> page, @Param("record")ColumnEntity columnEntity);
+ IPage<AdminColumnVo> selectAdminColumnVoInPage(Page<AdminColumnVo> page, @Param("record") ColumnEntity columnEntity);
- List<AdminColumnVo> selectColumnInListByParentId(@Param("parentId")Long parentidDefault,@Param("belongId")Long belongId);
+ List<AdminColumnVo> selectColumnInListByParentId(@Param("parentId") Long parentidDefault, @Param("companyId") Long companyId);
ColumnEntity selectByCodeAndCompanyId(@Param("code") String code, @Param("companyId") Long companyId);
+
+ List<ColumnEntity> selectColumnByParentId(@Param("parentId") Long parentId, @Param("companyId") Long companyId);
}
diff --git a/src/main/resources/mapper/ArticleMapper.xml b/src/main/resources/mapper/ArticleMapper.xml
index 3d8f282..acc3a78 100644
--- a/src/main/resources/mapper/ArticleMapper.xml
+++ b/src/main/resources/mapper/ArticleMapper.xml
@@ -47,4 +47,10 @@
</if>
limit 1
</select>
+
+ <select id="selectArticleById" resultType="com.xcong.farmer.cms.modules.system.entity.ArticleEntity">
+ select a.*, b.column_code, b.column_name
+ from t_article a, t_column b
+ where a.column_id=b.id and a.id=#{id}
+ </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 ee49cf2..f5020c5 100644
--- a/src/main/resources/mapper/ColumnMapper.xml
+++ b/src/main/resources/mapper/ColumnMapper.xml
@@ -25,7 +25,7 @@
a.*
FROM
t_column a
- where a.parent_id = #{parentId} and a.company_id = #{belongId}
+ where a.parent_id = #{parentId} and a.company_id = #{companyId}
order by a.order_num ASC,a.create_time desc
</select>
@@ -33,4 +33,9 @@
select * from t_column
where column_code=#{code} and company_id=#{companyId}
</select>
+
+ <select id="selectColumnByParentId" resultType="com.xcong.farmer.cms.modules.system.entity.ColumnEntity">
+ select * from t_column
+ where parent_id=#{parentId} and company_id=#{companyId}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1