wiki增加开放访问
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
package com.zyplayer.doc.wiki.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.zyplayer.doc.core.json.DocResponseJson;
|
||||
import com.zyplayer.doc.core.json.ResponseJson;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPageContent;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPageFile;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiSpace;
|
||||
import com.zyplayer.doc.data.service.manage.WikiPageContentService;
|
||||
import com.zyplayer.doc.data.service.manage.WikiPageFileService;
|
||||
import com.zyplayer.doc.data.service.manage.WikiPageService;
|
||||
import com.zyplayer.doc.data.service.manage.WikiSpaceService;
|
||||
import com.zyplayer.doc.wiki.controller.vo.WikiPageContentVo;
|
||||
import com.zyplayer.doc.wiki.controller.vo.WikiPageVo;
|
||||
import org.dozer.Mapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 文档控制器
|
||||
*
|
||||
* @author 暮光:城中城
|
||||
* @since 2019年2月17日
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/zyplayer-doc-wiki/open-api")
|
||||
public class WikiOpenApiController {
|
||||
private static Logger logger = LoggerFactory.getLogger(WikiOpenApiController.class);
|
||||
|
||||
@Resource
|
||||
WikiPageService wikiPageService;
|
||||
@Resource
|
||||
WikiSpaceService wikiSpaceService;
|
||||
@Resource
|
||||
WikiPageContentService wikiPageContentService;
|
||||
@Resource
|
||||
WikiPageFileService wikiPageFileService;
|
||||
@Resource
|
||||
Mapper mapper;
|
||||
|
||||
@PostMapping("/page/list")
|
||||
public ResponseJson<List<WikiPageVo>> list(String space) {
|
||||
UpdateWrapper<WikiSpace> wrapperSpace = new UpdateWrapper<>();
|
||||
wrapperSpace.eq("uuid", space);
|
||||
WikiSpace wikiSpace = wikiSpaceService.getOne(wrapperSpace);
|
||||
// 不存在或未开放
|
||||
if (wikiSpace == null || wikiSpace.getOpenDoc() != 1) {
|
||||
return DocResponseJson.warn("未找到该文档");
|
||||
}
|
||||
UpdateWrapper<WikiPage> wrapper = new UpdateWrapper<>();
|
||||
wrapper.eq("del_flag", 0);
|
||||
wrapper.eq("space_id", wikiSpace.getId());
|
||||
List<WikiPage> authList = wikiPageService.list(wrapper);
|
||||
Map<Long, List<WikiPageVo>> listMap = authList.stream().map(val -> mapper.map(val, WikiPageVo.class)).collect(Collectors.groupingBy(WikiPageVo::getParentId));
|
||||
List<WikiPageVo> nodePageList = listMap.get(0L);
|
||||
this.setChildren(listMap, nodePageList);
|
||||
return DocResponseJson.ok(nodePageList);
|
||||
}
|
||||
|
||||
@PostMapping("/page/detail")
|
||||
public ResponseJson<WikiPageContentVo> detail(String space, Long pageId) {
|
||||
UpdateWrapper<WikiSpace> wrapperSpace = new UpdateWrapper<>();
|
||||
wrapperSpace.eq("uuid", space);
|
||||
WikiSpace wikiSpace = wikiSpaceService.getOne(wrapperSpace);
|
||||
// 不存在或未开放
|
||||
if (wikiSpace == null || wikiSpace.getOpenDoc() != 1) {
|
||||
return DocResponseJson.warn("未找到该文档");
|
||||
}
|
||||
WikiPage wikiPageSel = wikiPageService.getById(pageId);
|
||||
// 不存在或不属于该空间
|
||||
if (wikiPageSel == null || !Objects.equals(wikiPageSel.getSpaceId(), wikiSpace.getId())) {
|
||||
return DocResponseJson.warn("未找到该文档");
|
||||
}
|
||||
UpdateWrapper<WikiPageContent> wrapper = new UpdateWrapper<>();
|
||||
wrapper.eq("page_id", pageId);
|
||||
WikiPageContent pageContent = wikiPageContentService.getOne(wrapper);
|
||||
UpdateWrapper<WikiPageFile> wrapperFile = new UpdateWrapper<>();
|
||||
wrapperFile.eq("page_id", pageId);
|
||||
wrapperFile.eq("del_flag", 0);
|
||||
List<WikiPageFile> pageFiles = wikiPageFileService.list(wrapperFile);
|
||||
for (WikiPageFile pageFile : pageFiles) {
|
||||
pageFile.setFileUrl("zyplayer-doc-wiki/common/file?uuid=" + pageFile.getUuid());
|
||||
}
|
||||
WikiPageContentVo vo = new WikiPageContentVo();
|
||||
vo.setWikiPage(wikiPageSel);
|
||||
vo.setPageContent(pageContent);
|
||||
vo.setFileList(pageFiles);
|
||||
return DocResponseJson.ok(vo);
|
||||
}
|
||||
|
||||
private void setChildren(Map<Long, List<WikiPageVo>> listMap, List<WikiPageVo> nodePageList) {
|
||||
if (nodePageList == null || listMap == null) {
|
||||
return;
|
||||
}
|
||||
for (WikiPageVo page : nodePageList) {
|
||||
List<WikiPageVo> wikiPageVos = listMap.get(page.getId());
|
||||
if (wikiPageVos != null && wikiPageVos.size() > 0) {
|
||||
page.setChildren(wikiPageVos);
|
||||
this.setChildren(listMap, wikiPageVos);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,10 +24,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -106,7 +103,8 @@ public class WikiPageController {
|
||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||
WikiPageContent pageContent = new WikiPageContent();
|
||||
pageContent.setContent(content);
|
||||
if (wikiPage.getDelFlag() == 0 && StringUtils.isBlank(wikiPage.getName())) {
|
||||
Integer delFlag = Optional.ofNullable(wikiPage.getDelFlag()).orElse(0);
|
||||
if (delFlag == 0 && StringUtils.isBlank(wikiPage.getName())) {
|
||||
return DocResponseJson.warn("标题不能为空!");
|
||||
}
|
||||
Long id = wikiPage.getId();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.zyplayer.doc.wiki.controller;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.zyplayer.doc.core.json.DocResponseJson;
|
||||
import com.zyplayer.doc.core.json.ResponseJson;
|
||||
@@ -37,14 +38,8 @@ public class WikiSpaceController {
|
||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||
UpdateWrapper<WikiSpace> wrapper = new UpdateWrapper<>();
|
||||
wrapper.eq("del_flag", 0);
|
||||
if(wikiSpace.getType() == null) {
|
||||
wrapper.in("type", 1, 2);
|
||||
} else if(wikiSpace.getType() == 1 || wikiSpace.getType() == 2) {
|
||||
wrapper.eq(wikiSpace.getType() != null, "type", wikiSpace.getType());
|
||||
wrapper.eq(Objects.equals(wikiSpace.getType(), 2), "create_user_id", wikiSpace.getCreateUserId());
|
||||
} else if(wikiSpace.getType() == 3) {
|
||||
wrapper.eq("create_user_id", currentUser.getUserId());
|
||||
}
|
||||
wrapper.in("type", 1, 2);
|
||||
//wrapper.or().eq("type", 3).eq("create_user_id", currentUser.getUserId());
|
||||
List<WikiSpace> authList = wikiSpaceService.list(wrapper);
|
||||
return DocResponseJson.ok(authList);
|
||||
}
|
||||
@@ -57,9 +52,11 @@ public class WikiSpaceController {
|
||||
if (Objects.equals(wikiSpaceSel.getEditType(), 1)) {
|
||||
return DocResponseJson.warn("当前空间不允许编辑!");
|
||||
}
|
||||
wikiSpace.setUuid(null);
|
||||
wikiSpaceService.updateById(wikiSpace);
|
||||
} else {
|
||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||
wikiSpace.setUuid(RandomUtil.simpleUUID());
|
||||
wikiSpace.setCreateTime(new Date());
|
||||
wikiSpace.setCreateUserId(currentUser.getUserId());
|
||||
wikiSpace.setCreateUserName(currentUser.getUsername());
|
||||
|
||||
Reference in New Issue
Block a user