diff --git a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDoc.java b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDoc.java
index e8e426f4e..bfc1b59de 100644
--- a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDoc.java
+++ b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDoc.java
@@ -157,6 +157,11 @@ public class CmsDoc extends BaseSortEntity {
*/
private String auditEditableStatus;
+ /**
+ * 关键词
+ */
+ private String keywords;
+
public CmsDir copyToCmsDir() {
CmsDir cmsDir = new CmsDir();
cmsDir.setId(id);
@@ -224,6 +229,7 @@ public class CmsDoc extends BaseSortEntity {
cmsDocDto.setAuditStatus(auditStatus);
cmsDocDto.setAuditType(auditType);
cmsDocDto.setCreateBy(createBy);
+ cmsDocDto.setKeywords(keywords);
return cmsDocDto;
}
diff --git a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocBaseDto.java b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocBaseDto.java
index 6009f4c23..0c76dcb77 100644
--- a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocBaseDto.java
+++ b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocBaseDto.java
@@ -96,6 +96,11 @@ public class CmsDocBaseDto {
@ApiModelProperty("文章创建者")
private String createBy;
+ /**
+ * 关键词
+ */
+ @ApiModelProperty("关键词")
+ private String keywords;
public void setPublishTime(Date publishTime) {
if (publishTime != null) {
diff --git a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocDto.java b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocDto.java
index aaa6a4f07..3389ee646 100644
--- a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocDto.java
+++ b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocDto.java
@@ -65,6 +65,11 @@ public class CmsDocDto {
@ApiModelProperty("是否在栏目下修改")
private boolean isChangeOnDir;
+ /**
+ * 关键词
+ */
+ @ApiModelProperty("关键词")
+ private String keywords;
public String getName() {
if (name != null) {
diff --git a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocInputDto.java b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocInputDto.java
index 57680719e..b153a4684 100644
--- a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocInputDto.java
+++ b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocInputDto.java
@@ -45,6 +45,11 @@ public class CmsDocInputDto {
*/
@ApiModelProperty("文本编辑器类型")
private String editorType;
+ /**
+ * 关键词
+ */
+ @ApiModelProperty("关键词")
+ private String keywords;
public String getContent() {
String base64decodedString;
@@ -78,6 +83,7 @@ public class CmsDocInputDto {
cmsDoc.setHeadImg(this.getHeadImg());
cmsDoc.setDeptId(dirDoc.getDeptId());
cmsDoc.setEditorType(this.editorType);
+ cmsDoc.setKeywords(this.keywords);
return cmsDoc;
}
}
diff --git a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocSearchVo.java b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocSearchVo.java
index 5fb467dd1..655de8514 100644
--- a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocSearchVo.java
+++ b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/domain/CmsDocSearchVo.java
@@ -78,4 +78,9 @@ public class CmsDocSearchVo {
*/
@ApiModelProperty(value = "创建者", hidden = true)
private String createBy;
+ /**
+ * 关键词
+ */
+ @ApiModelProperty("关键词")
+ private String keywords;
}
diff --git a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/service/impl/CmsDocCommentServiceImpl.java b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/service/impl/CmsDocCommentServiceImpl.java
index c9d382a6d..bb517f0d5 100644
--- a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/service/impl/CmsDocCommentServiceImpl.java
+++ b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/service/impl/CmsDocCommentServiceImpl.java
@@ -166,7 +166,7 @@ public class CmsDocCommentServiceImpl implements ICmsDocCommentService {
return true;
}
// 判断是否为当前组织下的专区管理员
- return deptId.equals(SecurityUtils.getUserIdentity().getDeptId())
+ return deptId.equals(SecurityUtils.getDeptId())
&& SystemRole.ZONE_ADMIN.getRoleKey().equals(SecurityUtils.getRoleKey());
}
diff --git a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/service/impl/CmsDocServiceImpl.java b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/service/impl/CmsDocServiceImpl.java
index 4e0d73e06..fcdfce62e 100644
--- a/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/service/impl/CmsDocServiceImpl.java
+++ b/microservices-modules/microservices-modules-cms/src/main/java/com/microservices/cms/doc/service/impl/CmsDocServiceImpl.java
@@ -677,6 +677,17 @@ public class CmsDocServiceImpl implements ICmsDocService {
if (!hasRepoRelatedChanged(oldCmsDoc, cmsDocDto)) {
return cmsDocMapper.updateCmsDoc(oldCmsDoc) > 0;
}
+ // 当文章名称发生更改时,判断文章名是否在当前栏目下已存在
+ if (StringUtils.isNotEmpty(cmsDocDto.getName()) && !cmsDocDto.getName().equals(oldCmsDoc.getName())) {
+ String dirName = oldCmsDoc.getDirName();
+ if (cmsDocDto.getDirId() != null) {
+ CmsDir cmsDir = selectCmsDirById(cmsDocDto.getDirId(), false);
+ if (!cmsDir.getName().equals(dirName)) {
+ dirName = cmsDir.getName();
+ }
+ }
+ checkDocName(cmsDocDto.getName(), oldCmsDoc.getDeptId(), dirName);
+ }
//用户为专区管理员或专区无审核机制时,直接更新文章及仓库主分支
if (isCurrentUserZoneAdmin(oldCmsDoc.getDeptId()) || isNoAuditRequired(oldCmsDoc.getDeptId())) {
//专区管理员重新编辑并提交审核未通过文章 或 重新编辑并提交待审核文章时专区不需审核机制
@@ -700,6 +711,7 @@ public class CmsDocServiceImpl implements ICmsDocService {
oldCmsDoc = cmsAsyncService.updateCmsDocDatabaseAndUpdateForGitLink(oldCmsDoc, cmsDocDto, branchName);
oldCmsDoc.setAuditStatus(DocAuditStatus.AUDIT_PASS.getAuditCode());
oldCmsDoc.setAuditTmpBranchName(null);
+ oldCmsDoc.setKeywords(cmsDocDto.getKeywords());
return updateCmsCommonDatabase(oldCmsDoc, CmsConstants.BRANCH_MASTER) > 0;
} else {
@@ -761,6 +773,7 @@ public class CmsDocServiceImpl implements ICmsDocService {
}
}
+ oldCmsDoc.setKeywords(cmsDocDto.getKeywords());
oldCmsDoc.setSummary(cmsDocDto.getSummary());
oldCmsDoc.setHeadImg(cmsDocDto.getHeadImg());
return isChangeName || isChangeContent || isChangeDir;
@@ -1133,16 +1146,7 @@ public class CmsDocServiceImpl implements ICmsDocService {
}
private boolean insertCommonCmsDoc(CmsDoc cmsDoc, String message, String content) {
- //检查该文件是否已存在
- CmsDoc oldCmsDoc = cmsDocMapper.selectCmsDocByNameAndDeptId(cmsDoc.getName(), cmsDoc.getDeptId(), cmsDoc.getDirName());
- if (oldCmsDoc != null) {
- if (oldCmsDoc.getIsDir()) {
- throw new ServiceException("该栏目已存在(栏目名称[" + cmsDoc.getName() + "])");
- } else {
- throw new ServiceException("该文章已存在(文章名称[" + cmsDoc.getName() + "])");
- }
-
- }
+ checkDocName(cmsDoc.getName(), cmsDoc.getDeptId(), cmsDoc.getDirName());
createFileByGitLink(cmsDoc, message, content);
boolean success = insertCmsDocDatabase(cmsDoc, content);
// 推送文章地址到搜索引擎
@@ -1150,6 +1154,19 @@ public class CmsDocServiceImpl implements ICmsDocService {
return success;
}
+ private void checkDocName(String docName, Long deptId, String dirName) {
+ //检查该文件是否已存在
+ CmsDoc oldCmsDoc = cmsDocMapper.selectCmsDocByNameAndDeptId(docName, deptId, dirName);
+ if (oldCmsDoc != null) {
+ if (oldCmsDoc.getIsDir()) {
+ throw new ServiceException("该栏目已存在(栏目名称[%s])", docName);
+ } else {
+ throw new ServiceException("该文章在当前栏目下已存在(文章名称[%s],栏目名称[%s])", docName, dirName);
+ }
+
+ }
+ }
+
private boolean insertCmsDocWithAudit(CmsDoc cmsDoc, String message, String content) {
//检查该文件是否已存在
CmsDoc oldCmsDoc = cmsDocMapper.selectCmsDocByNameAndDeptId(cmsDoc.getName(), cmsDoc.getDeptId(), cmsDoc.getDirName());
diff --git a/microservices-modules/microservices-modules-cms/src/main/resources/mapper/cms/CmsDocMapper.xml b/microservices-modules/microservices-modules-cms/src/main/resources/mapper/cms/CmsDocMapper.xml
index 332fec54d..efc76a540 100644
--- a/microservices-modules/microservices-modules-cms/src/main/resources/mapper/cms/CmsDocMapper.xml
+++ b/microservices-modules/microservices-modules-cms/src/main/resources/mapper/cms/CmsDocMapper.xml
@@ -36,6 +36,7 @@
+
@@ -69,6 +70,7 @@
audit_status,
audit_type,
audit_tmp_branch_name,
+ keywords,
audit_pr_number
from cms_doc
@@ -100,6 +102,7 @@
cd.issue_id,
cd.is_homepage,
cd.editor_type,
+ cd.keywords,
cd.is_dir
from cms_doc cd
@@ -163,6 +166,7 @@
and name like concat('%', #{name}, '%')
+ and keywords like concat('%', #{keywords}, '%')
and file_name like concat('%', #{fileName}, '%')
and file_path = #{filePath}
and publish_time = #{publishTime}
@@ -309,6 +313,7 @@
audit_type,
audit_tmp_branch_name,
audit_pr_number,
+ keywords,
#{createBy},
@@ -341,6 +346,7 @@
#{auditType},
#{auditTmpBranchName},
#{auditPrNumber},
+ #{keywords},
@@ -376,6 +382,7 @@
audit_type = #{auditType},
audit_tmp_branch_name = #{auditTmpBranchName},
audit_pr_number = #{auditPrNumber},
+ keywords = #{keywords},
where id = #{id}
diff --git a/sql/update/20240603110330_zone_add_role_menu.sql b/sql/update/20240603110330_zone_add_role_menu.sql
new file mode 100644
index 000000000..ca2985304
--- /dev/null
+++ b/sql/update/20240603110330_zone_add_role_menu.sql
@@ -0,0 +1,7 @@
+-- 专区管理员增加修改组织权限
+SET FOREIGN_KEY_CHECKS = 0;
+
+INSERT INTO sys_role_menu (role_id, menu_id)
+VALUES (5, 1019);
+
+SET FOREIGN_KEY_CHECKS = 1;
\ No newline at end of file
diff --git a/sql/update/20240627090118_zone_alert_cmd_doc_add_keywords.sql b/sql/update/20240627090118_zone_alert_cmd_doc_add_keywords.sql
new file mode 100644
index 000000000..b61f67dbb
--- /dev/null
+++ b/sql/update/20240627090118_zone_alert_cmd_doc_add_keywords.sql
@@ -0,0 +1,3 @@
+-- 专区文章表增加Keywords关键字
+alter table cms_doc
+ add keywords varchar(255) null comment '关键词';
\ No newline at end of file