| | |
| | | package com.xcong.farmer.cms.core.handler; |
| | | |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.xcong.farmer.cms.configurations.properties.CmsProperties; |
| | | import com.xcong.farmer.cms.conversion.ArticleConversion; |
| | | import com.xcong.farmer.cms.core.node.AttrNode; |
| | | import com.xcong.farmer.cms.core.tag.data.ArticleChildData; |
| | | import com.xcong.farmer.cms.core.tag.data.ArticleData; |
| | | import com.xcong.farmer.cms.core.tag.model.Article; |
| | | import com.xcong.farmer.cms.modules.system.entity.ArticleEntity; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | |
| | | public class ArticleDataParserHandler implements DataParserHandler { |
| | | |
| | | private final ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.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()); |
| | | |
| | | ArticleEntity prev = articleMapper.selectPrevOrNextArticle(data.getId(), data.getColumnId(), 1); |
| | | ArticleEntity next = articleMapper.selectPrevOrNextArticle(data.getId(), data.getColumnId(), 2); |
| | | |
| | | ArticleData articleData = ArticleConversion.INSTANCE.entityToData(data); |
| | | articleData.setNext(ArticleConversion.INSTANCE.entityToData(next)); |
| | | articleData.setPrev(ArticleConversion.INSTANCE.entityToData(prev)); |
| | | |
| | | 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()); |
| | | } else { |
| | | prev.setUrl(baseUrl + 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(nextEntity.getArticleUrl()); |
| | | } else { |
| | | next.setUrl(baseUrl + nextEntity.getPath() + "/" + nextEntity.getId() + ".html"); |
| | | } |
| | | |
| | | articleData.setNext(next); |
| | | } else { |
| | | articleData.setNext(new ArticleData()); |
| | | } |
| | | |
| | | if (StrUtil.isNotBlank(data.getAtlas())) { |
| | | List<ArticleChildData> children = new ArrayList<>(); |
| | | StrUtil.split(data.getAtlas(), ',').forEach(item -> { |
| | | ArticleChildData child = new ArticleChildData(); |
| | | child.setUrl(item); |
| | | children.add(child); |
| | | }); |
| | | articleData.setChildren(children); |
| | | } |
| | | |
| | | node.setData(articleData); |
| | | } |
| | | } |