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