Helius
2022-07-08 4e95eb7d3040d9dc38e843b8ab8cd75a89f38984
修改文章解析下一篇和上一篇,分页并发问题
4 files modified
24 ■■■■ changed files
src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java 17 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/farmer/cms/core/handler/ChildDataParserHandler.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java 2 ●●●●● 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/handler/ArticleDataParserHandler.java
@@ -32,7 +32,10 @@
        Article tag = (Article) node.getParam();
        ArticleEntity data = articleMapper.selectById(tag.getId());
        ArticleData articleData = ArticleConversion.INSTANCE.entityToData(data);
        ArticleEntity prevEntity = articleMapper.selectPrevOrNextArticle(data.getId(), data.getColumnId(), 1);
        if (prevEntity != null) {
        ArticleData prev = ArticleConversion.INSTANCE.entityToData(prevEntity);
        if (prevEntity.getType() == 2) {
            prev.setUrl(prevEntity.getArticleUrl());
@@ -40,17 +43,25 @@
            prev.setUrl(cmsProperties.getBaseUrl() + prevEntity.getPath() + "/" + prevEntity.getId() + ".html");
        }
            articleData.setPrev(prev);
        } else {
            articleData.setPrev(new ArticleData());
        }
        ArticleEntity nextEntity = articleMapper.selectPrevOrNextArticle(data.getId(), data.getColumnId(), 2);
        if (nextEntity != null) {
        ArticleData next = ArticleConversion.INSTANCE.entityToData(nextEntity);
        if (nextEntity.getType() == 2) {
            next.setUrl(prevEntity.getArticleUrl());
                next.setUrl(nextEntity.getArticleUrl());
        } else {
            next.setUrl(cmsProperties.getBaseUrl() + nextEntity.getPath() + "/" + nextEntity.getId() + ".html");
        }
        ArticleData articleData = ArticleConversion.INSTANCE.entityToData(data);
        articleData.setNext(next);
        articleData.setPrev(prev);
        } else {
            articleData.setNext(new ArticleData());
        }
        node.setData(articleData);
    }
}
src/main/java/com/xcong/farmer/cms/core/handler/ChildDataParserHandler.java
@@ -25,6 +25,9 @@
        String obj = param.getObj();
        Object o = parserData.get(obj);
        if (o == null) {
            return;
        }
        Object state = JSONObject.parseObject(JSONObject.toJSONString(o)).get("state");
        List children = JSONObject.parseObject(JSONObject.toJSONString(state)).getObject("children", List.class);
        attrNode.setData(children);
src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java
@@ -31,6 +31,7 @@
    @Override
    public void dataParser(AttrNode attrNode) {
        log.info("分页解析");
        synchronized (this) {
        Template.HAS_PAGING = true;
        Long companyId = (Long) attrNode.getSystemDataValue("companyId");
@@ -79,6 +80,7 @@
        attrNode.setData(pageData);
    }
    }
    /**
     * (x + y)/2 = index
src/main/java/com/xcong/farmer/cms/core/node/Template.java
@@ -31,7 +31,7 @@
    // 页面中包含的标签
    public static Set<String> TAGS;
    public static boolean HAS_PAGING = false;
    public volatile static boolean HAS_PAGING = false;
    public Template() {
        TAGS = new HashSet<>();