From cee43c11fe6772305e19e7ddee1e8276060046d6 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 05 Jul 2022 16:15:37 +0800
Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/farmer-cms
---
src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java | 5 +
src/main/java/com/xcong/farmer/cms/core/tag/data/ArticleData.java | 124 ++++++++++++++++++++++++
src/main/java/com/xcong/farmer/cms/core/tag/model/Articles.java | 22 ++++
src/main/java/com/xcong/farmer/cms/conversion/ArticleConversion.java | 24 ++++
src/main/java/com/xcong/farmer/cms/modules/system/mapper/ArticleMapper.java | 4
src/main/resources/mapper/ArticleMapper.xml | 19 +++
src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java | 9 +
src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java | 17 ++
src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java | 58 +++++++++--
src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java | 6 +
10 files changed, 268 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/xcong/farmer/cms/conversion/ArticleConversion.java b/src/main/java/com/xcong/farmer/cms/conversion/ArticleConversion.java
new file mode 100644
index 0000000..cdb6610
--- /dev/null
+++ b/src/main/java/com/xcong/farmer/cms/conversion/ArticleConversion.java
@@ -0,0 +1,24 @@
+package com.xcong.farmer.cms.conversion;
+
+import com.xcong.farmer.cms.core.tag.data.ArticleData;
+import com.xcong.farmer.cms.modules.system.entity.ArticleEntity;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @author wzy
+ * @date 2022-07-05
+ **/
+@Mapper
+public abstract class ArticleConversion {
+ public static ArticleConversion INSTANCE = Mappers.getMapper(ArticleConversion.class);
+
+ @Mapping(source = "childTitle", target = "subTitle")
+ @Mapping(source = "visits", target = "views")
+ @Mapping(source = "mainDiagram", target = "thumb")
+ @Mapping(source = "releaseTime", target = "createTime")
+ @Mapping(source = "articleDetails", target = "content")
+ @Mapping(source = "uploadFile", target = "filePath")
+ public abstract ArticleData entityToData(ArticleEntity article);
+}
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java
index acfed60..61ecde7 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java
@@ -1,6 +1,17 @@
package com.xcong.farmer.cms.core.handler;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xcong.farmer.cms.conversion.ArticleConversion;
import com.xcong.farmer.cms.core.node.AttrNode;
+import com.xcong.farmer.cms.core.tag.data.ArticleData;
+import com.xcong.farmer.cms.core.tag.model.Articles;
+import com.xcong.farmer.cms.modules.system.entity.ArticleEntity;
+import com.xcong.farmer.cms.modules.system.mapper.ArticleMapper;
+import com.xcong.farmer.cms.utils.SpringContextHolder;
+import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.HashMap;
@@ -11,23 +22,48 @@
* @author wzy
* @date 2022-06-24
**/
+@Slf4j
public class ArticlesDataParserHandler implements DataParserHandler {
+ private ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
+ private String BASE_URL = "http://192.168.0.1";
@Override
public void dataParser(AttrNode node) {
- System.out.println("ArticlesDataParserHandler");
- List<Map<String, Object>> list = new ArrayList<>();
- Map<String, Object> map = new HashMap<>();
- map.put("path", "这是链接1");
- map.put("title", "这是标题1");
- list.add(map);
+ log.info("文章列表解析");
+ Long companyId = (Long) node.getSystemDataValue("companyId");
+ Articles param = (Articles) node.getParam();
- Map<String, Object> map2 = new HashMap<>();
- map2.put("path", "这是链接2");
- map2.put("title", "这是标题2");
- list.add(map2);
+ if (StrUtil.isEmpty(param.getColId())) {
+ Page<ArticleEntity> page = new Page<>(Integer.parseInt(param.getPage()), Integer.parseInt(param.getLimit()));
- node.setData(list);
+ ArticleEntity article = new ArticleEntity();
+ article.setColumnCode(param.getCode());
+ article.setCompanyId(companyId);
+ IPage<ArticleEntity> listPage = articleMapper.selectArticleInPage(page, article);
+
+ List<ArticleData> list = new ArrayList<>();
+ for (ArticleEntity record : listPage.getRecords()) {
+ ArticleData articleData = entityToData(record);
+ list.add(articleData);
+ }
+
+ node.setData(list);
+ } else {
+
+ }
+ }
+
+ public ArticleData entityToData(ArticleEntity article) {
+ ArticleData articleData = ArticleConversion.INSTANCE.entityToData(article);
+
+ if (article.getType() == 2) {
+ articleData.setUrl(article.getArticleUrl());
+ } else {
+ articleData.setUrl(BASE_URL + article.getPath() + "/" + article.getId() + ".html");
+ }
+
+
+ return articleData;
}
}
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java
index db0ebb5..7a742e7 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java
@@ -25,7 +25,7 @@
private ColumnMapper columnMapper = SpringContextHolder.getBean(ColumnMapper.class);
private ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
- private String BASE_URL = "http://192.168.0.1/";
+ private String BASE_URL = "http://192.168.0.1";
@Override
public void dataParser(AttrNode attrNode) {
@@ -55,13 +55,14 @@
public ColumnData columnToData(ColumnEntity column) {
ColumnData columnData = ColumnConversion.INSTANCE.entityToData(column);
- columnData.setUrl(BASE_URL + columnData.getCode());
+ columnData.setUrl(BASE_URL + column.getPath());
if (column.getType() == 2) {
if (column.getTargetType() == 1) {
ArticleEntity article = this.articleMapper.selectArticleById(Long.parseLong(column.getTargetUrl()));
- columnData.setUrl(BASE_URL + article.getColumnCode() + "/" + article.getId() + ".html");
+ columnData.setUrl(BASE_URL + article.getPath() + "/" + article.getId() + ".html");
} else if (column.getTargetType() == 2) {
- columnData.setUrl(BASE_URL + column.getTargetUrl());
+ ColumnEntity columnEntity = this.columnMapper.selectByCodeAndCompanyId(column.getTargetUrl(), column.getCompanyId());
+ columnData.setUrl(BASE_URL + columnEntity.getPath());
} else {
columnData.setUrl(column.getTargetUrl());
}
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java
index 48ed2c0..ab64db2 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java
@@ -27,7 +27,7 @@
private ColumnMapper columnMapper = SpringContextHolder.getBean(ColumnMapper.class);
private ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
- private String BASE_URL = "http://192.168.0.1/";
+ private String BASE_URL = "http://192.168.0.1";
@Override
public void dataParser(AttrNode node) {
log.info("导航栏解析");
@@ -40,6 +40,13 @@
}
List<NavData> list = new ArrayList<>();
+
+ NavData index = new NavData();
+ index.setTitle("首页");
+ index.setUrl(BASE_URL);
+ index.setCode("index");
+ list.add(index);
+
for (ColumnEntity column : columns) {
NavData navData = columnToNav(column);
@@ -50,6 +57,7 @@
}
list.add(navData);
}
+
node.setData(list);
}
@@ -65,13 +73,14 @@
public NavData columnToNav(ColumnEntity column) {
NavData navData = ColumnConversion.INSTANCE.columnToNav(column);
- navData.setUrl(BASE_URL + navData.getCode());
+ navData.setUrl(BASE_URL + column.getPath());
if (column.getType() == 2) {
if (column.getTargetType() == 1) {
ArticleEntity article = this.articleMapper.selectArticleById(Long.parseLong(column.getTargetUrl()));
- navData.setUrl(BASE_URL + article.getColumnCode() + "/" + article.getId() + ".html");
+ navData.setUrl(BASE_URL + article.getPath() + "/" + article.getId() + ".html");
} else if (column.getTargetType() == 2) {
- navData.setUrl(BASE_URL + column.getTargetUrl());
+ ColumnEntity columnEntity = this.columnMapper.selectByCodeAndCompanyId(column.getTargetUrl(), column.getCompanyId());
+ navData.setUrl(BASE_URL + columnEntity.getPath());
} else {
navData.setUrl(column.getTargetUrl());
}
diff --git a/src/main/java/com/xcong/farmer/cms/core/tag/data/ArticleData.java b/src/main/java/com/xcong/farmer/cms/core/tag/data/ArticleData.java
new file mode 100644
index 0000000..d0d345d
--- /dev/null
+++ b/src/main/java/com/xcong/farmer/cms/core/tag/data/ArticleData.java
@@ -0,0 +1,124 @@
+package com.xcong.farmer.cms.core.tag.data;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2022-07-05
+ **/
+public class ArticleData {
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ private Long id;
+
+ private String title;
+
+ private String subTitle;
+
+ private String thumb;
+
+ private String content;
+
+ private String author;
+
+ private String views;
+
+ private String filePath;
+
+ private List<String> images;
+
+ private String url;
+
+ public String getFilePath() {
+ return filePath;
+ }
+
+ public void setFilePath(String filePath) {
+ this.filePath = filePath;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getSubTitle() {
+ return subTitle;
+ }
+
+ public void setSubTitle(String subTitle) {
+ this.subTitle = subTitle;
+ }
+
+ public String getThumb() {
+ return thumb;
+ }
+
+ public void setThumb(String thumb) {
+ this.thumb = thumb;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ public List<String> getImages() {
+ return images;
+ }
+
+ public void setImages(List<String> images) {
+ this.images = images;
+ }
+
+ public String getViews() {
+ return views;
+ }
+
+ public void setViews(String views) {
+ this.views = views;
+ }
+}
diff --git a/src/main/java/com/xcong/farmer/cms/core/tag/model/Articles.java b/src/main/java/com/xcong/farmer/cms/core/tag/model/Articles.java
index 002f9ce..509e369 100644
--- a/src/main/java/com/xcong/farmer/cms/core/tag/model/Articles.java
+++ b/src/main/java/com/xcong/farmer/cms/core/tag/model/Articles.java
@@ -6,10 +6,24 @@
**/
public class Articles {
+ /**
+ * 栏目ID,可colID=1或者colId=[1,2,3]
+ */
private String colId;
+ /**
+ * 栏目code, code=lm
+ */
+ private String code;
+
+ /**
+ * 页码
+ */
private String page;
+ /**
+ * 每页数量
+ */
private String limit;
private String field;
@@ -38,6 +52,14 @@
this.limit = limit;
}
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
public String getField() {
return field;
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java b/src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java
index 5403f5b..d258867 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java
@@ -91,6 +91,11 @@
@TableField(exist = false)
private String columnName;
+ /**
+ * 栏目目录
+ */
+ @TableField(exist = false)
+ private String path;
@TableField(exist = false)
private List<Long> columnIds;
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ArticleMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ArticleMapper.java
index 3ced7bd..05ab4bd 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ArticleMapper.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/ArticleMapper.java
@@ -9,6 +9,8 @@
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
public interface ArticleMapper extends BaseMapper<ArticleEntity> {
IPage<AdminArticleVo> selectAdminArticleInPage(Page<AdminArticleVo> page, @Param("record")ArticleEntity articleEntity);
@@ -18,4 +20,6 @@
ArticleEntity selectPrevOrNextArticle(@Param("id") Long id, @Param("columnId") Long columnId, @Param("type") Integer type);
ArticleEntity selectArticleById(@Param("id") Long id);
+
+ IPage<ArticleEntity> selectArticleInPage(Page<ArticleEntity> page, @Param("record") ArticleEntity article);
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java
index 89ad1d8..12f1d89 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java
@@ -44,6 +44,12 @@
Map<String, Object> map = new HashMap<>();
map.put("id", columnEntity.getId());
map.put("code", columnEntity.getColumnCode());
+ if (columnEntity.getParentId() == 0L) {
+ map.put("parentCode", columnEntity.getColumnCode());
+ } else {
+ ColumnEntity parent = columnMapper.selectById(columnEntity.getParentId());
+ map.put("parentCode", parent.getColumnCode());
+ }
cmsCoreService.columnProcess(map, columnEntity.getListTemplate(), article);
}
diff --git a/src/main/resources/mapper/ArticleMapper.xml b/src/main/resources/mapper/ArticleMapper.xml
index 43ec8e5..aa86fa6 100644
--- a/src/main/resources/mapper/ArticleMapper.xml
+++ b/src/main/resources/mapper/ArticleMapper.xml
@@ -55,8 +55,25 @@
</select>
<select id="selectArticleById" resultType="com.xcong.farmer.cms.modules.system.entity.ArticleEntity">
- select a.*, b.column_code, b.column_name
+ select a.*, b.column_code, b.column_name, b.path
from t_article a, t_column b
where a.column_id=b.id and a.id=#{id}
</select>
+
+ <select id="selectArticleInPage" resultType="com.xcong.farmer.cms.modules.system.entity.ArticleEntity">
+ select
+ a.*,
+ b.column_code,
+ b.column_name,
+ b.path
+ from t_article a
+ inner join t_column b on a.column_id=b.id
+ inner join t_column c on b.parent_id=c.id or c.id=b.id
+ <where>
+ a.company_id=#{record.companyId}
+ <if test="record.columnCode != null and record.columnCode != ''">
+ and c.column_code=#{record.columnCode}
+ </if>
+ </where>
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1