删除页面时递归删除子页面
This commit is contained in:
@@ -15,4 +15,5 @@ public interface WikiPageService extends IService<WikiPage> {
|
||||
|
||||
void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq);
|
||||
|
||||
void deletePage(WikiPage wikiPage);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
package com.zyplayer.doc.data.service.manage.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
|
||||
import com.zyplayer.doc.data.repository.manage.mapper.WikiPageMapper;
|
||||
import com.zyplayer.doc.data.service.manage.WikiPageService;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
@@ -41,4 +44,23 @@ public class WikiPageServiceImpl extends ServiceImpl<WikiPageMapper, WikiPage> i
|
||||
}
|
||||
this.updateById(wikiPage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deletePage(WikiPage wikiPage) {
|
||||
wikiPage.setDelFlag(1);
|
||||
this.updateById(wikiPage);
|
||||
|
||||
QueryWrapper<WikiPage> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("del_flag", 0);
|
||||
wrapper.eq("parent_id", wikiPage.getId());
|
||||
List<WikiPage> wikiPageList = this.list(wrapper);
|
||||
if (CollectionUtils.isEmpty(wikiPageList)) {
|
||||
return;
|
||||
}
|
||||
// 递归删除子页面
|
||||
for (WikiPage page : wikiPageList) {
|
||||
wikiPage.setId(page.getId());
|
||||
this.deletePage(wikiPage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,6 +187,7 @@
|
||||
app = this;
|
||||
global.vue.$app = this;
|
||||
this.loadSpaceList();
|
||||
this.checkSystemUpgrade();
|
||||
},
|
||||
methods: {
|
||||
createWiki() {
|
||||
@@ -294,7 +295,14 @@
|
||||
app.nowClickPath = {spaceId: spaceId};
|
||||
app.choiceSpace = spaceId;
|
||||
app.doGetPageList(null);
|
||||
app.$router.push({path: '/home', query: {spaceId: spaceId}});
|
||||
// 在首页时跳转
|
||||
try {
|
||||
if (app.$router.app._route.path == "/home") {
|
||||
app.$router.push({path: '/home', query: {spaceId: spaceId}});
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
@@ -394,6 +402,19 @@
|
||||
onNewSpaceCancel() {
|
||||
this.newSpaceDialogVisible = false;
|
||||
},
|
||||
checkSystemUpgrade() {
|
||||
this.common.post(this.apilist1.systemUpgradeInfo, {}, function (json) {
|
||||
if (!!json.data) {
|
||||
app.upgradeInfo = json.data;
|
||||
console.log("zyplayer-doc发现新版本:"
|
||||
+ "\n升级地址:" + json.data.upgradeUrl
|
||||
+ "\n当前版本:" + json.data.nowVersion
|
||||
+ "\n最新版本:" + json.data.lastVersion
|
||||
+ "\n升级内容:" + json.data.upgradeContent
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
init() {
|
||||
|
||||
},
|
||||
|
||||
@@ -7,6 +7,7 @@ var URL = {
|
||||
pageList: '/zyplayer-doc-wiki/page/list',
|
||||
updatePage: '/zyplayer-doc-wiki/page/update',
|
||||
pageDetail: '/zyplayer-doc-wiki/page/detail',
|
||||
pageDelete: '/zyplayer-doc-wiki/page/delete',
|
||||
pageNews: '/zyplayer-doc-wiki/page/news',
|
||||
spaceList: '/zyplayer-doc-wiki/space/list',
|
||||
updateSpace: '/zyplayer-doc-wiki/space/update',
|
||||
@@ -21,6 +22,8 @@ var URL = {
|
||||
|
||||
commonUpload: '/zyplayer-doc-wiki/common/upload',
|
||||
getUserBaseInfo: '/zyplayer-doc-wiki/common/user/base',
|
||||
|
||||
systemUpgradeInfo: '/system/info/upgrade',
|
||||
};
|
||||
|
||||
var URL1 = {};
|
||||
|
||||
@@ -244,18 +244,18 @@
|
||||
this.pageAuthUserList = pageAuthUserList;
|
||||
},
|
||||
deleteWikiPage() {
|
||||
this.$confirm('确定要删除此页面吗?', '提示', {
|
||||
this.$confirm('确定要删除此页面及其所有子页面吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
var param = {id: app.wikiPage.id, delFlag: 1};
|
||||
this.common.post(this.apilist1.updatePage, param, function (json) {
|
||||
var param = {pageId: app.wikiPage.id};
|
||||
this.common.post(this.apilist1.pageDelete, param, function (json) {
|
||||
// 重新加载左侧列表,跳转到展示页面
|
||||
global.vue.$app.doGetPageList(null);
|
||||
app.$router.push({path: '/home', query: {spaceId: app.nowClickPath.spaceId}});
|
||||
app.$router.push({path: '/home', query: {spaceId: app.wikiPage.spaceId}});
|
||||
});
|
||||
});
|
||||
}).catch(()=>{});
|
||||
},
|
||||
loadPageDetail(pageId) {
|
||||
app.rightContentType = 1;
|
||||
|
||||
@@ -154,14 +154,43 @@ public class WikiPageController {
|
||||
return DocResponseJson.ok();
|
||||
}
|
||||
|
||||
@PostMapping("/delete")
|
||||
public ResponseJson<Object> delete(Long pageId) {
|
||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||
WikiPage wikiPageSel = wikiPageService.getById(pageId);
|
||||
if (wikiPageSel == null || Objects.equals(wikiPageSel.getEditType(), 1)) {
|
||||
return DocResponseJson.warn("当前页面不允许编辑!");
|
||||
}
|
||||
WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPageSel.getSpaceId());
|
||||
// 私人空间不允许调用接口获取文章
|
||||
if (SpaceType.isOthersPrivate(wikiSpaceSel.getType(), currentUser.getUserId(), wikiSpaceSel.getCreateUserId())) {
|
||||
return DocResponseJson.warn("您没有权限修改该空间的文章!");
|
||||
}
|
||||
// 空间不是自己的,也没有权限
|
||||
if (SpaceType.isOthersPersonal(wikiSpaceSel.getType(), currentUser.getUserId(), wikiSpaceSel.getCreateUserId())) {
|
||||
boolean pageAuth = DocUserUtil.havePageAuth(WikiAuthType.DELETE_PAGE.getName(), pageId);
|
||||
if (!pageAuth) {
|
||||
return DocResponseJson.warn("您没有删除该文章的权限!");
|
||||
}
|
||||
}
|
||||
// 执行删除
|
||||
WikiPage wikiPage = new WikiPage();
|
||||
wikiPage.setId(pageId);
|
||||
wikiPage.setDelFlag(1);
|
||||
wikiPage.setUpdateTime(new Date());
|
||||
wikiPage.setUpdateUserId(currentUser.getUserId());
|
||||
wikiPage.setUpdateUserName(currentUser.getUsername());
|
||||
wikiPageService.deletePage(wikiPage);
|
||||
return DocResponseJson.ok();
|
||||
}
|
||||
|
||||
@PostMapping("/update")
|
||||
public ResponseJson<Object> update(WikiPage wikiPage, String content, String preview) {
|
||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||
WikiPageContent pageContent = new WikiPageContent();
|
||||
pageContent.setContent(content);
|
||||
pageContent.setPreview(preview);
|
||||
Integer delFlag = Optional.ofNullable(wikiPage.getDelFlag()).orElse(0);
|
||||
if (delFlag == 0 && StringUtils.isBlank(wikiPage.getName())) {
|
||||
if (StringUtils.isBlank(wikiPage.getName())) {
|
||||
return DocResponseJson.warn("标题不能为空!");
|
||||
}
|
||||
Long pageId = wikiPage.getId();
|
||||
@@ -170,7 +199,7 @@ public class WikiPageController {
|
||||
if (wikiPageSel == null || Objects.equals(wikiPageSel.getEditType(), 1)) {
|
||||
return DocResponseJson.warn("当前页面不允许编辑!");
|
||||
}
|
||||
WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPage.getSpaceId());
|
||||
WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPageSel.getSpaceId());
|
||||
// 私人空间不允许调用接口获取文章
|
||||
if (SpaceType.isOthersPrivate(wikiSpaceSel.getType(), currentUser.getUserId(), wikiSpaceSel.getCreateUserId())) {
|
||||
return DocResponseJson.warn("您没有权限修改该空间的文章!");
|
||||
|
||||
Reference in New Issue
Block a user