From 601f1b0491ceff37538afc4430e0ccbe72dce270 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 11 Jul 2022 10:59:31 +0800
Subject: [PATCH] 修改已发布的栏目和文章的父级栏目、栏目编码,保存其修改前的对应数据
---
src/main/java/com/xcong/farmer/cms/modules/system/entity/ArticleEntity.java | 5 +++++
src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java | 12 ++++++++++++
src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java | 7 +++++++
src/main/java/com/xcong/farmer/cms/modules/system/entity/ColumnEntity.java | 15 +++++++++++++++
4 files changed, 39 insertions(+), 0 deletions(-)
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 318d444..13098e4 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
@@ -85,6 +85,11 @@
//内容类型 1:文章 2:图片 3:文件 4:音频"
private Integer contentType;
+ /**
+ * 更新前栏目编码
+ */
+ private Long beforeColumnId;
+
@TableField(exist = false)
private String columnCode;
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/entity/ColumnEntity.java b/src/main/java/com/xcong/farmer/cms/modules/system/entity/ColumnEntity.java
index 90fa975..f8c87d3 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/entity/ColumnEntity.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/entity/ColumnEntity.java
@@ -60,4 +60,19 @@
@TableField(exist = false)
private List<Long> ids;
+
+ /**
+ * 更新前栏目ID
+ */
+ private Long beforeParentId;
+
+ /**
+ * 更新前栏目编码
+ */
+ private String beforeColumnCode;
+
+ /**
+ * 发布状态 1-已发布 2-未发布
+ */
+ private Integer releaseState;
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java
index 331c66c..0c8ca14 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java
@@ -181,7 +181,12 @@
if(ObjectUtil.isEmpty(columnEntity)){
return Result.fail("请选择文章栏目");
}
+
+ if (articleEntity.getColumnId().equals(columnId) && articleEntity.getReleaseStatus() == 1) {
+ articleEntity.setBeforeColumnId(articleEntity.getColumnId());
+ }
articleEntity.setColumnId(columnId);
+
Integer visits = adminUpdateArticleDto.getVisits() == null ? 0 : adminUpdateArticleDto.getVisits();
articleEntity.setVisits(visits);
String mainDiagram = adminUpdateArticleDto.getMainDiagram();
@@ -202,6 +207,8 @@
articleEntity.setArticleUrl(adminUpdateArticleDto.getArticleUrl());
articleEntity.setType(adminUpdateArticleDto.getType());
articleEntity.setContentType(adminUpdateArticleDto.getContentType());
+ articleEntity.setReleaseStatus(0);
+
String authorBelong = adminUpdateArticleDto.getAuthorBelong();
articleEntity.setAuthorBelong(authorBelong);
this.baseMapper.updateById(articleEntity);
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java
index 8fbca01..287fe8c 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java
@@ -209,7 +209,13 @@
if(CollUtil.isNotEmpty(columnEntities) && columnEntities.size() > 1){
return Result.fail("栏目编码不能重复");
}
+
+ // 判断是否编辑了栏目编码且此时栏目处于已发布的状态,然后保存之前的编码。因为如果是未发布状态,多次保存的话,容易覆盖真正的最开始的栏目编码
+ if (!columnEntity.getColumnCode().equals(columnCode) && columnEntity.getReleaseState() == 1) {
+ columnEntity.setBeforeColumnCode(columnCode);
+ }
columnEntity.setColumnCode(columnCode);
+
String remark = adminUpdateColumnDto.getRemark();
columnEntity.setRemark(remark);
String pic = adminUpdateColumnDto.getPic();
@@ -219,6 +225,11 @@
columnEntity.setOrderNum(orderNum);
}
Long parentId = adminUpdateColumnDto.getParentId();
+ // 同栏目编码
+ if (!columnEntity.getParentId().equals(parentId) && columnEntity.getReleaseState() == 1) {
+ columnEntity.setBeforeParentId(columnEntity.getParentId());
+ }
+
if(ObjectUtil.isEmpty(parentId)){
columnEntity.setParentId(ColumnEntity.PARENTID_DEFAULT);
columnEntity.setPath("/" + columnEntity.getColumnCode());
@@ -235,6 +246,7 @@
columnEntity.setTargetUrl(adminUpdateColumnDto.getTargetUrl());
columnEntity.setIsNav(adminUpdateColumnDto.getIsNav());
columnEntity.setContentType(adminUpdateColumnDto.getContentType());
+ columnEntity.setReleaseState(2);
this.baseMapper.updateById(columnEntity);
return Result.ok("更新成功");
}
--
Gitblit v1.9.1