From 39a322c380ac88874760b4b9a28def18c0b7753a Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 31 Aug 2022 23:42:25 +0800
Subject: [PATCH] add ad and friendly parse
---
src/main/java/com/xcong/farmer/cms/core/handler/AdDataParserHandler.java | 29 +++++++++
src/main/java/com/xcong/farmer/cms/core/tag/data/FriendlyData.java | 6 +-
src/main/java/com/xcong/farmer/cms/core/node/Template.java | 2
src/main/java/com/xcong/farmer/cms/core/tag/data/AdData.java | 22 +++++++
src/main/resources/mapper/CmsFriendlyLinkMapper.xml | 4 +
src/main/java/com/xcong/farmer/cms/core/handler/FriendlyDataParserHandler.java | 30 ++++++++++
src/main/java/com/xcong/farmer/cms/modules/system/mapper/CmsFriendlyLinkMapper.java | 4 +
src/test/java/com/xcong/farmer/cms/TemplateTest.java | 35 +++++++++--
8 files changed, 120 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/AdDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/AdDataParserHandler.java
index 402e032..2e4604d 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/AdDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/AdDataParserHandler.java
@@ -1,5 +1,6 @@
package com.xcong.farmer.cms.core.handler;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.xcong.farmer.cms.core.node.AttrNode;
import com.xcong.farmer.cms.core.tag.data.AdData;
@@ -9,6 +10,7 @@
import com.xcong.farmer.cms.modules.system.mapper.CmsAdInfoMapper;
import com.xcong.farmer.cms.utils.SpringContextHolder;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -26,9 +28,34 @@
Ad param = (Ad) attrNode.getParam();
if (StrUtil.isNotBlank(param.getGroupId())) {
List<CmsAdInfoEntity> ads = adInfoMapper.selectByGroupIdAndCompanyId(Long.parseLong(param.getGroupId()), companyId);
- } else {
+ if (CollUtil.isEmpty(ads)) {
+ attrNode.setData(new AdData());
+ } else {
+ int i = 1;
+ List<AdData> adDataList = new ArrayList<>();
+ for (CmsAdInfoEntity ad : ads) {
+ adDataList.add(entityToData(ad, i));
+ }
+
+ attrNode.setData(adDataList);
+ }
+ } else {
+ CmsAdInfoEntity ad = adInfoMapper.selectById(param.getId());
+ attrNode.setData(entityToData(ad, 1));
+ }
+ }
+
+ private AdData entityToData(CmsAdInfoEntity entity, int index) {
+ AdData adData = new AdData();
+ adData.setIndex(index);
+
+ if (entity.getType() == 1) {
+ adData.setChildren(StrUtil.split(entity.getValue(), ','));
+ } else {
+ adData.setData(entity.getValue());
}
+ return adData;
}
}
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/FriendlyDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/FriendlyDataParserHandler.java
index ced3c1b..0bd8d95 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/FriendlyDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/FriendlyDataParserHandler.java
@@ -1,6 +1,17 @@
package com.xcong.farmer.cms.core.handler;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
import com.xcong.farmer.cms.core.node.AttrNode;
+import com.xcong.farmer.cms.core.tag.data.FriendlyData;
+import com.xcong.farmer.cms.core.tag.model.Ad;
+import com.xcong.farmer.cms.core.tag.model.Friendly;
+import com.xcong.farmer.cms.modules.system.entity.CmsFriendlyLinkEntity;
+import com.xcong.farmer.cms.modules.system.mapper.CmsFriendlyLinkMapper;
+import com.xcong.farmer.cms.utils.SpringContextHolder;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* @author wzy
@@ -8,8 +19,27 @@
**/
public class FriendlyDataParserHandler implements DataParserHandler{
+ private final CmsFriendlyLinkMapper cmsFriendlyLinkMapper = SpringContextHolder.getBean(CmsFriendlyLinkMapper.class);
+
@Override
public void dataParser(AttrNode attrNode) {
+ Long companyId = (Long) attrNode.getSystemDataValue("companyId");
+ Friendly param = (Friendly) attrNode.getParam();
+ List<CmsFriendlyLinkEntity> friendlies = cmsFriendlyLinkMapper.selectByGroupIdAndCompanyId(Long.parseLong(param.getGroupId()), companyId);
+ if (CollUtil.isEmpty(friendlies)) {
+ attrNode.setData(new FriendlyData());
+ } else {
+ List<FriendlyData> list = new ArrayList<>();
+
+ for (int i = 0; i < friendlies.size(); i++) {
+ FriendlyData data = new FriendlyData();
+ BeanUtil.copyProperties(friendlies.get(i), data);
+ data.setIndex(i + 1);
+ list.add(data);
+ }
+
+ attrNode.setData(list);
+ }
}
}
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 50a66cc..5770040 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
@@ -2,6 +2,7 @@
import cn.hutool.core.collection.CollUtil;
import com.xcong.farmer.cms.core.node.PartNode;
+import lombok.extern.slf4j.Slf4j;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
@@ -16,6 +17,7 @@
* @author wzy
* @date 2022-06-22
**/
+@Slf4j
public class Template {
// 文件名称
diff --git a/src/main/java/com/xcong/farmer/cms/core/tag/data/AdData.java b/src/main/java/com/xcong/farmer/cms/core/tag/data/AdData.java
index 6232b02..1bc1cb1 100644
--- a/src/main/java/com/xcong/farmer/cms/core/tag/data/AdData.java
+++ b/src/main/java/com/xcong/farmer/cms/core/tag/data/AdData.java
@@ -1,16 +1,22 @@
package com.xcong.farmer.cms.core.tag.data;
+import java.util.List;
+
/**
* @author wzy
* @date 2022-08-30
**/
public class AdData {
+ private String id;
+
private String name;
private String data;
private int index;
+
+ private List<String> children;
public String getName() {
return name;
@@ -35,4 +41,20 @@
public void setIndex(int index) {
this.index = index;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public List<String> getChildren() {
+ return children;
+ }
+
+ public void setChildren(List<String> children) {
+ this.children = children;
+ }
}
diff --git a/src/main/java/com/xcong/farmer/cms/core/tag/data/FriendlyData.java b/src/main/java/com/xcong/farmer/cms/core/tag/data/FriendlyData.java
index c093c96..9dd6717 100644
--- a/src/main/java/com/xcong/farmer/cms/core/tag/data/FriendlyData.java
+++ b/src/main/java/com/xcong/farmer/cms/core/tag/data/FriendlyData.java
@@ -10,7 +10,7 @@
private String url;
- private String index;
+ private int index;
private String logo;
@@ -32,11 +32,11 @@
this.url = url;
}
- public String getIndex() {
+ public int getIndex() {
return index;
}
- public void setIndex(String index) {
+ public void setIndex(int index) {
this.index = index;
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/CmsFriendlyLinkMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/CmsFriendlyLinkMapper.java
index 65a93e9..c58de60 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/CmsFriendlyLinkMapper.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/CmsFriendlyLinkMapper.java
@@ -5,7 +5,11 @@
import com.xcong.farmer.cms.modules.system.entity.CmsFriendlyLinkEntity;
import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
public interface CmsFriendlyLinkMapper extends BaseMapper<CmsFriendlyLinkEntity> {
Page<CmsFriendlyLinkEntity> selectInPage(Page<CmsFriendlyLinkEntity> page, @Param("record") CmsFriendlyLinkEntity cmsFriendlyLinkEntity);
+
+ List<CmsFriendlyLinkEntity> selectByGroupIdAndCompanyId(@Param("groupId") Long groupId, @Param("companyId") Long companyId);
}
diff --git a/src/main/resources/mapper/CmsFriendlyLinkMapper.xml b/src/main/resources/mapper/CmsFriendlyLinkMapper.xml
index e129cca..db91272 100644
--- a/src/main/resources/mapper/CmsFriendlyLinkMapper.xml
+++ b/src/main/resources/mapper/CmsFriendlyLinkMapper.xml
@@ -16,4 +16,8 @@
</where>
</select>
+ <select id="selectByGroupIdAndCompanyId" resultType="com.xcong.farmer.cms.modules.system.entity.CmsFriendlyLinkEntity">
+ select * from cms_friendly_link
+ where group_id=#{groupId} and company_id=#{companyId}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/test/java/com/xcong/farmer/cms/TemplateTest.java b/src/test/java/com/xcong/farmer/cms/TemplateTest.java
index 1b030d7..0452d5b 100644
--- a/src/test/java/com/xcong/farmer/cms/TemplateTest.java
+++ b/src/test/java/com/xcong/farmer/cms/TemplateTest.java
@@ -2,6 +2,7 @@
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
+import com.xcong.farmer.cms.modules.core.service.ICmsCoreService;
import com.xcong.farmer.cms.modules.system.service.IReleaseService;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
@@ -14,6 +15,8 @@
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
/**
* @author wzy
@@ -26,16 +29,19 @@
@Test
public void staticFileTest() throws IOException {
- File file = new File("/Users/helius/Desktop/template-online/index-test.html");
+ // /Users/helius/Desktop/template-online/template/ahrnfy/test.html
+ // /Users/helius/Desktop/template-online/template/ahrnfy/test.html
+ File file = new File("/Users/helius/Desktop/template-online/template/ahrnfy/test.html");
Document parse = Jsoup.parse(file, "utf-8");
- staticPathParser(parse, "img", "src");
- staticPathParser(parse, "href", "link");
- staticPathParser(parse, "script", "src");
-
- FileOutputStream outputStream = new FileOutputStream(file);
- outputStream.write(parse.html().getBytes());
- outputStream.close();
+ System.out.println(111);
+// staticPathParser(parse, "img", "src");
+// staticPathParser(parse, "href", "link");
+// staticPathParser(parse, "script", "src");
+//
+// FileOutputStream outputStream = new FileOutputStream(file);
+// outputStream.write(parse.html().getBytes());
+// outputStream.close();
}
public void staticPathParser(Document document, String tagName, String attrKey) {
@@ -59,4 +65,17 @@
public void columnTest() {
releaseService.releaseColumn(135L, 1, 26L);
}
+
+
+ @Autowired
+ private ICmsCoreService cmsCoreService;
+
+ @Test
+ public void parserTest() {
+ Map<String, Object> map = new HashMap<>();
+ map.put("companyId", 24L);
+ map.put("id", 81L);
+ map.put("templateType", "article");
+ cmsCoreService.columnProcess(map, "test.html");
+ }
}
--
Gitblit v1.9.1