删除页面时递归删除子页面
This commit is contained in:
@@ -15,4 +15,5 @@ public interface WikiPageService extends IService<WikiPage> {
|
|||||||
|
|
||||||
void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq);
|
void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq);
|
||||||
|
|
||||||
|
void deletePage(WikiPage wikiPage);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
package com.zyplayer.doc.data.service.manage.impl;
|
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
|
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
|
||||||
import com.zyplayer.doc.data.repository.manage.mapper.WikiPageMapper;
|
import com.zyplayer.doc.data.repository.manage.mapper.WikiPageMapper;
|
||||||
import com.zyplayer.doc.data.service.manage.WikiPageService;
|
import com.zyplayer.doc.data.service.manage.WikiPageService;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,4 +44,23 @@ public class WikiPageServiceImpl extends ServiceImpl<WikiPageMapper, WikiPage> i
|
|||||||
}
|
}
|
||||||
this.updateById(wikiPage);
|
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;
|
app = this;
|
||||||
global.vue.$app = this;
|
global.vue.$app = this;
|
||||||
this.loadSpaceList();
|
this.loadSpaceList();
|
||||||
|
this.checkSystemUpgrade();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
createWiki() {
|
createWiki() {
|
||||||
@@ -294,7 +295,14 @@
|
|||||||
app.nowClickPath = {spaceId: spaceId};
|
app.nowClickPath = {spaceId: spaceId};
|
||||||
app.choiceSpace = spaceId;
|
app.choiceSpace = spaceId;
|
||||||
app.doGetPageList(null);
|
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() {
|
onNewSpaceCancel() {
|
||||||
this.newSpaceDialogVisible = false;
|
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() {
|
init() {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ var URL = {
|
|||||||
pageList: '/zyplayer-doc-wiki/page/list',
|
pageList: '/zyplayer-doc-wiki/page/list',
|
||||||
updatePage: '/zyplayer-doc-wiki/page/update',
|
updatePage: '/zyplayer-doc-wiki/page/update',
|
||||||
pageDetail: '/zyplayer-doc-wiki/page/detail',
|
pageDetail: '/zyplayer-doc-wiki/page/detail',
|
||||||
|
pageDelete: '/zyplayer-doc-wiki/page/delete',
|
||||||
pageNews: '/zyplayer-doc-wiki/page/news',
|
pageNews: '/zyplayer-doc-wiki/page/news',
|
||||||
spaceList: '/zyplayer-doc-wiki/space/list',
|
spaceList: '/zyplayer-doc-wiki/space/list',
|
||||||
updateSpace: '/zyplayer-doc-wiki/space/update',
|
updateSpace: '/zyplayer-doc-wiki/space/update',
|
||||||
@@ -21,6 +22,8 @@ var URL = {
|
|||||||
|
|
||||||
commonUpload: '/zyplayer-doc-wiki/common/upload',
|
commonUpload: '/zyplayer-doc-wiki/common/upload',
|
||||||
getUserBaseInfo: '/zyplayer-doc-wiki/common/user/base',
|
getUserBaseInfo: '/zyplayer-doc-wiki/common/user/base',
|
||||||
|
|
||||||
|
systemUpgradeInfo: '/system/info/upgrade',
|
||||||
};
|
};
|
||||||
|
|
||||||
var URL1 = {};
|
var URL1 = {};
|
||||||
|
|||||||
@@ -244,18 +244,18 @@
|
|||||||
this.pageAuthUserList = pageAuthUserList;
|
this.pageAuthUserList = pageAuthUserList;
|
||||||
},
|
},
|
||||||
deleteWikiPage() {
|
deleteWikiPage() {
|
||||||
this.$confirm('确定要删除此页面吗?', '提示', {
|
this.$confirm('确定要删除此页面及其所有子页面吗?', '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
var param = {id: app.wikiPage.id, delFlag: 1};
|
var param = {pageId: app.wikiPage.id};
|
||||||
this.common.post(this.apilist1.updatePage, param, function (json) {
|
this.common.post(this.apilist1.pageDelete, param, function (json) {
|
||||||
// 重新加载左侧列表,跳转到展示页面
|
// 重新加载左侧列表,跳转到展示页面
|
||||||
global.vue.$app.doGetPageList(null);
|
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) {
|
loadPageDetail(pageId) {
|
||||||
app.rightContentType = 1;
|
app.rightContentType = 1;
|
||||||
|
|||||||
@@ -154,14 +154,43 @@ public class WikiPageController {
|
|||||||
return DocResponseJson.ok();
|
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")
|
@PostMapping("/update")
|
||||||
public ResponseJson<Object> update(WikiPage wikiPage, String content, String preview) {
|
public ResponseJson<Object> update(WikiPage wikiPage, String content, String preview) {
|
||||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||||
WikiPageContent pageContent = new WikiPageContent();
|
WikiPageContent pageContent = new WikiPageContent();
|
||||||
pageContent.setContent(content);
|
pageContent.setContent(content);
|
||||||
pageContent.setPreview(preview);
|
pageContent.setPreview(preview);
|
||||||
Integer delFlag = Optional.ofNullable(wikiPage.getDelFlag()).orElse(0);
|
if (StringUtils.isBlank(wikiPage.getName())) {
|
||||||
if (delFlag == 0 && StringUtils.isBlank(wikiPage.getName())) {
|
|
||||||
return DocResponseJson.warn("标题不能为空!");
|
return DocResponseJson.warn("标题不能为空!");
|
||||||
}
|
}
|
||||||
Long pageId = wikiPage.getId();
|
Long pageId = wikiPage.getId();
|
||||||
@@ -170,7 +199,7 @@ public class WikiPageController {
|
|||||||
if (wikiPageSel == null || Objects.equals(wikiPageSel.getEditType(), 1)) {
|
if (wikiPageSel == null || Objects.equals(wikiPageSel.getEditType(), 1)) {
|
||||||
return DocResponseJson.warn("当前页面不允许编辑!");
|
return DocResponseJson.warn("当前页面不允许编辑!");
|
||||||
}
|
}
|
||||||
WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPage.getSpaceId());
|
WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPageSel.getSpaceId());
|
||||||
// 私人空间不允许调用接口获取文章
|
// 私人空间不允许调用接口获取文章
|
||||||
if (SpaceType.isOthersPrivate(wikiSpaceSel.getType(), currentUser.getUserId(), wikiSpaceSel.getCreateUserId())) {
|
if (SpaceType.isOthersPrivate(wikiSpaceSel.getType(), currentUser.getUserId(), wikiSpaceSel.getCreateUserId())) {
|
||||||
return DocResponseJson.warn("您没有权限修改该空间的文章!");
|
return DocResponseJson.warn("您没有权限修改该空间的文章!");
|
||||||
|
|||||||
Reference in New Issue
Block a user