From f975e23cd81506cd80a1740ba2bf467a682ae954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9A=AE=E5=85=89=EF=BC=9A=E5=9F=8E=E4=B8=AD=E5=9F=8E?= <806783409@qq.com> Date: Sat, 15 Jun 2019 13:13:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=A1=B5=E9=9D=A2=E6=97=B6?= =?UTF-8?q?=E9=80=92=E5=BD=92=E5=88=A0=E9=99=A4=E5=AD=90=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/service/manage/WikiPageService.java | 1 + .../manage/impl/WikiPageServiceImpl.java | 22 ++++++++++++ zyplayer-doc-ui/wiki-ui/src/App.vue | 23 +++++++++++- .../wiki-ui/src/common/config/apilist.js | 3 ++ .../wiki-ui/src/views/page/Show.vue | 10 +++--- .../wiki/controller/WikiPageController.java | 35 +++++++++++++++++-- 6 files changed, 85 insertions(+), 9 deletions(-) diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/WikiPageService.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/WikiPageService.java index 71029cc2..8a295cba 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/WikiPageService.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/WikiPageService.java @@ -15,4 +15,5 @@ public interface WikiPageService extends IService { void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq); + void deletePage(WikiPage wikiPage); } diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/WikiPageServiceImpl.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/WikiPageServiceImpl.java index 0bea6ba4..112ca0ce 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/WikiPageServiceImpl.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/WikiPageServiceImpl.java @@ -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 i } this.updateById(wikiPage); } + + @Override + public void deletePage(WikiPage wikiPage) { + wikiPage.setDelFlag(1); + this.updateById(wikiPage); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("del_flag", 0); + wrapper.eq("parent_id", wikiPage.getId()); + List wikiPageList = this.list(wrapper); + if (CollectionUtils.isEmpty(wikiPageList)) { + return; + } + // 递归删除子页面 + for (WikiPage page : wikiPageList) { + wikiPage.setId(page.getId()); + this.deletePage(wikiPage); + } + } } diff --git a/zyplayer-doc-ui/wiki-ui/src/App.vue b/zyplayer-doc-ui/wiki-ui/src/App.vue index 11c38e5f..b3acc97e 100644 --- a/zyplayer-doc-ui/wiki-ui/src/App.vue +++ b/zyplayer-doc-ui/wiki-ui/src/App.vue @@ -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() { }, diff --git a/zyplayer-doc-ui/wiki-ui/src/common/config/apilist.js b/zyplayer-doc-ui/wiki-ui/src/common/config/apilist.js index 568e34db..85ac4c73 100644 --- a/zyplayer-doc-ui/wiki-ui/src/common/config/apilist.js +++ b/zyplayer-doc-ui/wiki-ui/src/common/config/apilist.js @@ -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 = {}; diff --git a/zyplayer-doc-ui/wiki-ui/src/views/page/Show.vue b/zyplayer-doc-ui/wiki-ui/src/views/page/Show.vue index 63cd554a..920ff604 100644 --- a/zyplayer-doc-ui/wiki-ui/src/views/page/Show.vue +++ b/zyplayer-doc-ui/wiki-ui/src/views/page/Show.vue @@ -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; diff --git a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageController.java b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageController.java index 01da20d2..b29d36a7 100644 --- a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageController.java +++ b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageController.java @@ -154,14 +154,43 @@ public class WikiPageController { return DocResponseJson.ok(); } + @PostMapping("/delete") + public ResponseJson 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 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("您没有权限修改该空间的文章!");