Helius
2022-08-31 39a322c380ac88874760b4b9a28def18c0b7753a
add ad and friendly parse
8 files modified
132 ■■■■■ changed files
src/main/java/com/xcong/farmer/cms/core/handler/AdDataParserHandler.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/farmer/cms/core/handler/FriendlyDataParserHandler.java 30 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/farmer/cms/core/node/Template.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/farmer/cms/core/tag/data/AdData.java 22 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/farmer/cms/core/tag/data/FriendlyData.java 6 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/farmer/cms/modules/system/mapper/CmsFriendlyLinkMapper.java 4 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/CmsFriendlyLinkMapper.xml 4 ●●●● patch | view | raw | blame | history
src/test/java/com/xcong/farmer/cms/TemplateTest.java 35 ●●●● patch | view | raw | blame | history
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;
    }
}
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);
        }
    }
}
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 {
    // 文件名称
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;
    }
}
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;
    }
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);
}
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>
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");
    }
}