From 7edb48df8a45d232eb1417a88d0df0e9233c63fa Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 11 Jul 2022 15:02:30 +0800
Subject: [PATCH] fix

---
 src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java            |    3 +++
 src/main/resources/mapper/ArticleMapper.xml                                            |    5 ++++-
 src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java         |    5 ++++-
 src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java |   22 ++++++++++++++++++++--
 4 files changed, 31 insertions(+), 4 deletions(-)

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 9135964..f4d8011 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
@@ -34,7 +34,6 @@
         log.info("文章列表解析");
         Long companyId = (Long) node.getSystemDataValue("companyId");
         Articles param = (Articles) node.getParam();
-
         ArticleEntity article = new ArticleEntity();
         Page<ArticleEntity> page = new Page<>(Integer.parseInt(param.getPage()), Integer.parseInt(param.getLimit()));
         if (StrUtil.isEmpty(param.getColId())) {
@@ -51,6 +50,10 @@
             article.setColumnIds(colIds);
         }
         article.setCompanyId(companyId);
+
+        Integer releaseType = (Integer) node.getSystemDataValue("releaseType");
+        article.setReleaseType(releaseType);
+
         IPage<ArticleEntity> listPage = articleMapper.selectArticleInPage(page, article);
 
         List<ArticleData> list = new ArrayList<>();
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 13098e4..70d85ee 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
@@ -108,4 +108,7 @@
     @TableField(exist = false)
     private String timeType;
 
+    @TableField(exist = false)
+    private Integer releaseType;
+
 }
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 91d040d..87c1629 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
@@ -79,6 +79,7 @@
         ColumnEntity columnEntity = columnMapper.selectById(id);
         Map<String, Object> map = buildColumnData(columnEntity);
 
+        map.put("releaseType", type);
         executor.execute(() -> {
             cmsCoreService.columnProcess(map, columnEntity.getListTemplate());
             releaseIndex(companyId);
@@ -93,8 +94,20 @@
                             Map<String, Object> data = buildColumnData(column);
                             cmsCoreService.columnProcess(data, column.getListTemplate());
 
-                            List<Long> ids = articleMapper.selectArticleIdsByColumnId(column.getId(), companyId,type);
-                            cmsCoreService.articlesProcess(data, ids, column.getArticleTemplate(), column.getPath());
+                            List<ArticleEntity> articles = articleMapper.selectArticleByColumnId(columnEntity.getId(), companyId, type);
+                            if (CollUtil.isNotEmpty(articles)) {
+                                for (ArticleEntity article : articles) {
+                                    if (article.getReleaseStatus() == 0) {
+                                        article.setReleaseStatus(1);
+                                        articleMapper.updateById(article);
+                                    }
+
+                                    if (article.getType() == 1) {
+                                        map.put("id", article.getId());
+                                        cmsCoreService.articleProcess(map, columnEntity.getArticleTemplate(), columnEntity.getPath());
+                                    }
+                                }
+                            }
                         }
                     }
                 }
@@ -102,6 +115,11 @@
                 List<ArticleEntity> articles = articleMapper.selectArticleByColumnId(columnEntity.getId(), companyId, type);
                 if (CollUtil.isNotEmpty(articles)) {
                     for (ArticleEntity article : articles) {
+                        if (article.getReleaseStatus() == 0) {
+                            article.setReleaseStatus(1);
+                            articleMapper.updateById(article);
+                        }
+
                         if (article.getType() == 1) {
                             map.put("id", article.getId());
                             cmsCoreService.articleProcess(map, columnEntity.getArticleTemplate(), columnEntity.getPath());
diff --git a/src/main/resources/mapper/ArticleMapper.xml b/src/main/resources/mapper/ArticleMapper.xml
index b4f4930..c8c0357 100644
--- a/src/main/resources/mapper/ArticleMapper.xml
+++ b/src/main/resources/mapper/ArticleMapper.xml
@@ -48,7 +48,7 @@
     <select id="selectPrevOrNextArticle" resultType="com.xcong.farmer.cms.modules.system.entity.ArticleEntity">
         select *
         from t_article a, t_column b
-        where a.id!=#{id} and (a.column_id=b.id or a.column_id=b.parent_id) and a.column_id=#{columnId}
+        where a.id!=#{id} and (a.column_id=b.id or a.column_id=b.parent_id) and a.column_id=#{columnId} and release_status=1
         <!--上一篇-->
         <if test="type == 1">
             order by a.id
@@ -86,6 +86,9 @@
                     ${item}
                 </foreach>
             </if>
+            <if test="record.releaseType == 2">
+                and release_status = 1
+            </if>
         </where>
         order by release_time desc
     </select>

--
Gitblit v1.9.1