From ccafbd516a315f23214aea124f41d47ea47b69f7 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 12 Jul 2022 10:42:53 +0800 Subject: [PATCH] fix --- src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java | 38 +++++++++++++++++++++++++------------- 1 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java index a8c1e0d..1beb535 100644 --- a/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java +++ b/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java @@ -25,32 +25,44 @@ public class ArticleDataParserHandler implements DataParserHandler { private final ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class); - private final CmsProperties cmsProperties = SpringContextHolder.getBean(CmsProperties.class); @Override public void dataParser(AttrNode node) { - log.info("文章解析"); + log.info("######文章解析########"); + String baseUrl = (String) node.getSystemDataValue("baseUrl"); + 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); - ArticleData prev = ArticleConversion.INSTANCE.entityToData(prevEntity); - if (prevEntity.getType() == 2) { - prev.setUrl(prevEntity.getArticleUrl()); + if (prevEntity != null) { + ArticleData prev = ArticleConversion.INSTANCE.entityToData(prevEntity); + if (prevEntity.getType() == 2) { + prev.setUrl(prevEntity.getArticleUrl()); + } else { + prev.setUrl(baseUrl + prevEntity.getPath() + "/" + prevEntity.getId() + ".html"); + } + + articleData.setPrev(prev); } else { - prev.setUrl(cmsProperties.getBaseUrl() + prevEntity.getPath() + "/" + prevEntity.getId() + ".html"); + articleData.setPrev(new ArticleData()); } ArticleEntity nextEntity = articleMapper.selectPrevOrNextArticle(data.getId(), data.getColumnId(), 2); - ArticleData next = ArticleConversion.INSTANCE.entityToData(nextEntity); - if (nextEntity.getType() == 2) { - next.setUrl(prevEntity.getArticleUrl()); + if (nextEntity != null) { + ArticleData next = ArticleConversion.INSTANCE.entityToData(nextEntity); + if (nextEntity.getType() == 2) { + next.setUrl(nextEntity.getArticleUrl()); + } else { + next.setUrl(baseUrl + nextEntity.getPath() + "/" + nextEntity.getId() + ".html"); + } + + articleData.setNext(next); } else { - next.setUrl(cmsProperties.getBaseUrl() + nextEntity.getPath() + "/" + nextEntity.getId() + ".html"); + articleData.setNext(new ArticleData()); } - ArticleData articleData = ArticleConversion.INSTANCE.entityToData(data); - articleData.setNext(next); - articleData.setPrev(prev); node.setData(articleData); } } -- Gitblit v1.9.1