wiki目录预先加载
This commit is contained in:
@@ -11,7 +11,7 @@ import java.io.Serializable;
|
||||
* </p>
|
||||
*
|
||||
* @author 暮光:城中城
|
||||
* @since 2019-03-09
|
||||
* @since 2019-03-11
|
||||
*/
|
||||
public class WikiSpace implements Serializable {
|
||||
|
||||
@@ -43,6 +43,11 @@ public class WikiSpace implements Serializable {
|
||||
*/
|
||||
private Integer editType;
|
||||
|
||||
/**
|
||||
* 目录延迟加载 0=否 1=是
|
||||
*/
|
||||
private Integer treeLazyLoad;
|
||||
|
||||
/**
|
||||
* 创建人ID
|
||||
*/
|
||||
@@ -98,6 +103,13 @@ public class WikiSpace implements Serializable {
|
||||
public void setEditType(Integer editType) {
|
||||
this.editType = editType;
|
||||
}
|
||||
public Integer getTreeLazyLoad() {
|
||||
return treeLazyLoad;
|
||||
}
|
||||
|
||||
public void setTreeLazyLoad(Integer treeLazyLoad) {
|
||||
this.treeLazyLoad = treeLazyLoad;
|
||||
}
|
||||
public Long getCreateUserId() {
|
||||
return createUserId;
|
||||
}
|
||||
@@ -135,6 +147,7 @@ public class WikiSpace implements Serializable {
|
||||
", type=" + type +
|
||||
", spaceExplain=" + spaceExplain +
|
||||
", editType=" + editType +
|
||||
", treeLazyLoad=" + treeLazyLoad +
|
||||
", createUserId=" + createUserId +
|
||||
", createUserName=" + createUserName +
|
||||
", createTime=" + createTime +
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
* </p>
|
||||
*
|
||||
* @author 暮光:城中城
|
||||
* @since 2019-03-09
|
||||
* @since 2019-03-11
|
||||
*/
|
||||
public interface WikiSpaceMapper extends BaseMapper<WikiSpace> {
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ public class CodeGenerator {
|
||||
final String moduleName = "manage";
|
||||
// final String[] tableName = { "zyplayer_storage", "auth_info", "user_auth", "user_info" };
|
||||
// final String[] tableName = { "wiki_space", "wiki_page", "wiki_page_content", "wiki_page_file", "wiki_page_comment", "wiki_page_zan" };
|
||||
final String[] tableName = { "wiki_space", "wiki_page" };
|
||||
final String[] tableName = { "wiki_space" };
|
||||
|
||||
// 代码生成器
|
||||
AutoGenerator mpg = new AutoGenerator();
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
* </p>
|
||||
*
|
||||
* @author 暮光:城中城
|
||||
* @since 2019-03-09
|
||||
* @since 2019-03-11
|
||||
*/
|
||||
public interface WikiSpaceService extends IService<WikiSpace> {
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
|
||||
* </p>
|
||||
*
|
||||
* @author 暮光:城中城
|
||||
* @since 2019-03-09
|
||||
* @since 2019-03-11
|
||||
*/
|
||||
@Service
|
||||
public class WikiSpaceServiceImpl extends ServiceImpl<WikiSpaceMapper, WikiSpace> implements WikiSpaceService {
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
Target Server Version : 50725
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 09/03/2019 23:31:30
|
||||
Date: 11/03/2019 23:20:13
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
@@ -121,12 +121,12 @@ CREATE TABLE `wiki_page` (
|
||||
-- ----------------------------
|
||||
-- Records of wiki_page
|
||||
-- ----------------------------
|
||||
INSERT INTO `wiki_page` VALUES (1, 1, '关于zyplayer-doc工具', 0, 0, 0, 0, 1, '暮光:城中城', '2019-03-09 14:01:41', 1, '暮光:城中城', '2019-03-09 15:30:22', 0);
|
||||
INSERT INTO `wiki_page` VALUES (2, 1, '开发规划', 0, 0, 0, 0, 1, '暮光:城中城', '2019-03-09 14:14:02', 1, '暮光:城中城', '2019-03-09 15:43:58', 0);
|
||||
INSERT INTO `wiki_page` VALUES (3, 1, '升级日志', 0, 0, 0, 0, 1, '暮光:城中城', '2019-03-09 14:16:20', 1, '暮光:城中城', '2019-03-09 15:46:05', 0);
|
||||
INSERT INTO `wiki_page` VALUES (4, 1, '贡献人员列表', 0, 0, 0, 0, 1, '暮光:城中城', '2019-03-09 15:16:15', 1, '暮光:城中城', '2019-03-09 15:17:12', 0);
|
||||
INSERT INTO `wiki_page` VALUES (5, 1, 'zyplayer-doc-swagger', 0, 0, 0, 0, 1, '暮光:城中城', '2019-03-09 15:33:14', NULL, NULL, NULL, 0);
|
||||
INSERT INTO `wiki_page` VALUES (6, 1, '如何使用', 5, 0, 0, 0, 1, '暮光:城中城', '2019-03-09 15:33:33', 1, '暮光:城中城', '2019-03-09 15:33:46', 0);
|
||||
INSERT INTO `wiki_page` VALUES (1, 1, '关于zyplayer-doc工具', 0, 0, 0, 1, 1, '暮光:城中城', '2019-03-09 14:01:41', 1, '暮光:城中城', '2019-03-09 15:30:22', 0);
|
||||
INSERT INTO `wiki_page` VALUES (2, 1, '开发规划', 0, 0, 0, 1, 1, '暮光:城中城', '2019-03-09 14:14:02', 1, '暮光:城中城', '2019-03-09 15:43:58', 0);
|
||||
INSERT INTO `wiki_page` VALUES (3, 1, '升级日志', 0, 0, 0, 1, 1, '暮光:城中城', '2019-03-09 14:16:20', 1, '暮光:城中城', '2019-03-09 15:46:05', 0);
|
||||
INSERT INTO `wiki_page` VALUES (4, 1, '贡献人员列表', 0, 0, 0, 1, 1, '暮光:城中城', '2019-03-09 15:16:15', 1, '暮光:城中城', '2019-03-11 23:19:15', 0);
|
||||
INSERT INTO `wiki_page` VALUES (5, 1, 'zyplayer-doc-swagger', 0, 0, 0, 1, 1, '暮光:城中城', '2019-03-09 15:33:14', NULL, NULL, NULL, 0);
|
||||
INSERT INTO `wiki_page` VALUES (6, 1, '如何使用', 5, 0, 0, 1, 1, '暮光:城中城', '2019-03-09 15:33:33', 1, '暮光:城中城', '2019-03-09 15:33:46', 0);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for wiki_page_comment
|
||||
@@ -169,7 +169,7 @@ CREATE TABLE `wiki_page_content` (
|
||||
INSERT INTO `wiki_page_content` VALUES (1, 1, '<p>一入开源深似海</p><br>源码地址:<a href=\"https://gitee.com/zyplayer/zyplayer-doc\" target=\"_blank\">https://gitee.com/zyplayer/zyplayer-doc</a><p>体验地址:<a href=\"http://doc.zyplayer.com/zyplayer-doc-manage/static/manage/home.html\" target=\"_blank\">http://doc.zyplayer.com/zyplayer-doc-manage/static/manage/home.html</a> 账号:zyplayer 密码:123456</p><p><br></p><p>更多实用功能请提交评论或加群交流!谢谢!<br></p><p>QQ群:466363173</p>tips:想要编辑本文请修改表:wiki_page的edit_type字段值为0才行哦~<p><br></p><p>有什么问题可以来评论本文章哦!当然,如果你是部署在你们自己本地的我肯定看不到此文章的评论</p><p>可以到本工具官网下评论此文章,我会随时去查看的!</p><p>唯一官网地址:<a href=\"http://doc.zyplayer.com\" target=\"_blank\">http://doc.zyplayer.com</a></p><p><br></p><p>欢迎提交各种变态无理的要求~</p>', 1, '暮光:城中城', '2019-03-09 14:01:41', 1, '暮光:城中城', '2019-03-09 15:30:22');
|
||||
INSERT INTO `wiki_page_content` VALUES (2, 2, '<p>zyplayer-doc-manage:</p><p>1、首页做大的调整优化,希望使用element重构一下</p><p>2、人员导入方案,权限优化,人员管理细化</p><p> </p><p>zyplayer-doc-wiki:</p><p><prefira code\';font-size:10.5pt;\"=\"\">1<spancourier new\';\"=\"\">、支持页面权限控制,包括查看、编辑、删除、评论的权限</spancourier></prefira></p><p><prefira code\';font-size:10.5pt;\"=\"\"><spancourier new\';\"=\"\"><spancourier new\';\"=\"\">2<spancourier new\';\"=\"\">、</spancourier></spancourier></spancourier></prefira>支持把一个空间里的文档一键同步到git<spancourier new\';\"=\"\">的wiki上,统一管理文档</spancourier></p><p><spancourier new\';\"=\"\">3、</spancourier>支持微信文章拉取保存</p><p>4、支持历史记录查看</p><p>5、支持提供多种编辑器选择,更大的选择空间</p><p>6、支持全局搜索、文章内搜索等,当前只支持标题搜索,尴尬</p><p>7、支持开放一个空间里的文档无需登录即可访问</p><p>8、url动态变动,这样就可以复制指定文章的地址了</p><p>9、参考https://www.kancloud.cn,取其精华</p><p><br></p><p>欢迎加入开发!</p><p>如果您觉得哪里不好用也可以拉取源码下来改了后提交PR</p><p>源码地址:<a href=\"https://gitee.com/zyplayer/zyplayer-doc\" target=\"_blank\">https://gitee.com/zyplayer/zyplayer-doc</a></p><p><br></p><p>更多实用功能请提交评论或加群交流!谢谢!</p><p>QQ群:466363173</p>', 1, '暮光:城中城', '2019-03-09 14:14:02', 1, '暮光:城中城', '2019-03-09 15:43:58');
|
||||
INSERT INTO `wiki_page_content` VALUES (3, 3, '<p><span style=\"color: rgb(249, 150, 59);\">V1.0.1 2019-03-09</span></p><p>1、增加zyplayer-doc-wiki模块</p><ul><li>支持空间隔离<br></li><li>支持附件上传<br></li><li>拖动可以改变wiki顺序<br></li><li>基本的文档创建、编辑、评论、删除、搜索等功能</li></ul><p><prefira code\';font-size:10.5pt;\"=\"\">2<spancourier new\';\"=\"\">、dubbo<spancourier new\';\"=\"\">文档支持使用元数据生成参数和返回值,dubbo2.7.0新特性</spancourier></spancourier></prefira></p><p><prefira code\';font-size:10.5pt;\"=\"\"><spancourier new\';\"=\"\"><spancourier new\';\"=\"\">3<spancourier new\';\"=\"\">、框架进行了大的拆分,表修改较多</spancourier></spancourier></spancourier></prefira></p><p><prefira code\';font-size:10.5pt;\"=\"\"><spancourier new\';\"=\"\"><spancourier new\';\"=\"\"><spancourier new\';\"=\"\">4<spancourier new\';\"=\"\">、增加升级通知</spancourier></spancourier></spancourier></spancourier></prefira></p><p><prefira code\';font-size:10.5pt;\"=\"\"><spancourier new\';\"=\"\"><spancourier new\';\"=\"\"><spancourier new\';\"=\"\"><spancourier new\';\"=\"\">5<spancourier new\';\"=\"\">、细节优化</spancourier></spancourier></spancourier></spancourier></spancourier></prefira></p><p><prefira code\';font-size:10.5pt;\"=\"\"><spancourier new\';\"=\"\"><spancourier new\';\"=\"\"><spancourier new\';\"=\"\"><spancourier new\';\"=\"\"><spancourier new\';\"=\"\"><br></spancourier></spancourier></spancourier></spancourier></spancourier></prefira></p><p><span style=\"color: rgb(249, 150, 59);\">V1.0.0 2019-02-15</span><br></p><p>第一个版本发布</p><p>1、zyplayer-doc-swagger,swagger接口文档展示方案,在之前的项目中有许多改进,坚持文档生成和展示分离,有较多需要服务端支持的功能,不对各项目做过多的入侵即可使用,可动态对文档进行开放访问<br>2、zyplayer-doc-dubbo,支持对dubbo服务的自动扫描,直观展示所有的服务,文档的展示、文档编辑和在线接口调试,不需要对已有的服务做任何改动,支持zookeeper、nacos注册中心的服务扫描<br>3、zyplayer-doc-db,数据库文档工具,具有数据库表、字段文档的查看/修改,文档导出等功能,支持mysql和sqlserver数据库<br>4、zyplayer-doc-manage,管理以上几个服务,spring boot项目,spring security做权限管理,可直接运行</p>', 1, '暮光:城中城', '2019-03-09 14:16:20', 1, '暮光:城中城', '2019-03-09 15:46:05');
|
||||
INSERT INTO `wiki_page_content` VALUES (4, 4, '<p>开发人员列表:</p><p><a href=\"http://www.zyplayer.com\" target=\"_blank\">暮光:城中城</a><br></p><p><br></p><p>孤零零的一人,,(希望能早点删除本行)</p>', 1, '暮光:城中城', '2019-03-09 15:16:15', 1, '暮光:城中城', '2019-03-09 15:17:12');
|
||||
INSERT INTO `wiki_page_content` VALUES (4, 4, '<p>开发人员列表:</p><p><a href=\"http://www.zyplayer.com\" target=\"_blank\">暮光:城中城</a><br></p><p><br></p>', 1, '暮光:城中城', '2019-03-09 15:16:15', 1, '暮光:城中城', '2019-03-11 23:19:15');
|
||||
INSERT INTO `wiki_page_content` VALUES (5, 5, '<p>zyplayer-doc-swagger 使用文档目录</p>', 1, '暮光:城中城', '2019-03-09 15:33:14', NULL, NULL, NULL);
|
||||
INSERT INTO `wiki_page_content` VALUES (6, 6, '<p>最不喜欢写文档了。。。</p>', 1, '暮光:城中城', '2019-03-09 15:33:33', 1, '暮光:城中城', '2019-03-09 15:33:46');
|
||||
|
||||
@@ -207,12 +207,13 @@ CREATE TABLE `wiki_page_zan` (
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`yn` tinyint(4) NULL DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of wiki_page_zan
|
||||
-- ----------------------------
|
||||
INSERT INTO `wiki_page_zan` VALUES (1, 1, NULL, 1, '暮光:城中城', '2019-03-09 22:19:44', 0);
|
||||
INSERT INTO `wiki_page_zan` VALUES (2, 2, NULL, 1, '暮光:城中城', '2019-03-11 23:18:43', 0);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for wiki_space
|
||||
@@ -224,6 +225,7 @@ CREATE TABLE `wiki_space` (
|
||||
`type` tinyint(4) NULL DEFAULT 1 COMMENT '空间类型 1=公司 2=个人 3=私人',
|
||||
`space_explain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
|
||||
`edit_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '编辑类型 0=可编辑 1=不允许编辑',
|
||||
`tree_lazy_load` tinyint(4) NOT NULL DEFAULT 0 COMMENT '目录延迟加载 0=否 1=是',
|
||||
`create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
|
||||
`create_user_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人名字',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
@@ -234,8 +236,8 @@ CREATE TABLE `wiki_space` (
|
||||
-- ----------------------------
|
||||
-- Records of wiki_space
|
||||
-- ----------------------------
|
||||
INSERT INTO `wiki_space` VALUES (1, 'zyplayer-doc交流专用', 1, '', 1, 1, '暮光:城中城', '2019-03-09 13:59:14', 0);
|
||||
INSERT INTO `wiki_space` VALUES (2, '体验专用空间', 1, '', 1, 1, '暮光:城中城', '2019-03-09 14:24:30', 0);
|
||||
INSERT INTO `wiki_space` VALUES (1, 'zyplayer-doc交流专用', 1, '交流本工具的空间', 1, 0, 1, '暮光:城中城', '2019-03-09 13:59:14', 0);
|
||||
INSERT INTO `wiki_space` VALUES (2, '体验专用空间', 1, '', 1, 0, 1, '暮光:城中城', '2019-03-09 14:24:30', 0);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for zyplayer_storage
|
||||
|
||||
@@ -31,26 +31,31 @@
|
||||
<li><a href="#" class="page-nav" data-id="auth-manage" data-href="./auth/manage.html" data-icon="icon-lock" data-reload="1"><i class="icon-lock"></i> 权限列表</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<!--<li>-->
|
||||
<!--<a href="#"><i class="icon icon-window-alt"></i> 文档查看页面</a>-->
|
||||
<!--<ul>-->
|
||||
<!--<li><a href="#" class="page-nav" data-id="zyplayer-doc-wiki" data-href="../../doc-wiki.html" data-icon="icon-book" data-reload="1"><i class="icon-book"></i> wiki文档</a></li>-->
|
||||
<!--<li><a href="#" class="page-nav" data-id="zyplayer-doc-dubbo" data-href="../../doc-dubbo.html" data-icon="icon-node" data-reload="1"><i class="icon-node"></i> dubbo文档</a></li>-->
|
||||
<!--<li><a href="#" class="page-nav" data-id="zyplayer-doc-db" data-href="../../doc-db.html" data-icon="icon-database" data-reload="1"><i class="icon-database"></i> 数据库文档</a></li>-->
|
||||
<!--<li><a href="#" class="page-nav" data-id="zyplayer-doc-swagger" data-href="../../document.html" data-icon="icon-file-code" data-reload="1"><i class="icon-file-code"></i> zyplayer-doc-swagger</a></li>-->
|
||||
<!--<li><a href="#" class="page-nav" data-id="swagger-bootstrap-ui" data-href="../../doc.html" data-icon="icon-file-code" data-reload="1"><i class="icon-file-code"></i> swagger-bootstrap-ui</a></li>-->
|
||||
<!--<li><a href="#" class="page-nav" data-id="springfox-swagger-ui" data-href="../../swagger-ui.html" data-icon="icon-file-code" data-reload="1"><i class="icon-file-code"></i> springfox-swagger-ui</a></li>-->
|
||||
<!--</ul>-->
|
||||
<!--</li>-->
|
||||
<li>
|
||||
<a href="#"><i class="icon icon-window-alt"></i> 文档查看页面</a>
|
||||
<ul>
|
||||
<li><a href="#" class="page-nav" data-id="zyplayer-doc-wiki" data-href="../../doc-wiki.html" data-icon="icon-book" data-reload="1"><i class="icon-book"></i> wiki文档</a></li>
|
||||
<li><a href="#" class="page-nav" data-id="zyplayer-doc-dubbo" data-href="../../doc-dubbo.html" data-icon="icon-node" data-reload="1"><i class="icon-node"></i> dubbo文档</a></li>
|
||||
<li><a href="#" class="page-nav" data-id="zyplayer-doc-db" data-href="../../doc-db.html" data-icon="icon-database" data-reload="1"><i class="icon-database"></i> 数据库文档</a></li>
|
||||
<li><a href="#" class="page-nav" data-id="zyplayer-doc-swagger" data-href="../../document.html" data-icon="icon-file-code" data-reload="1"><i class="icon-file-code"></i> zyplayer-doc-swagger</a></li>
|
||||
<li><a href="#" class="page-nav" data-id="swagger-bootstrap-ui" data-href="../../doc.html" data-icon="icon-file-code" data-reload="1"><i class="icon-file-code"></i> swagger-bootstrap-ui</a></li>
|
||||
<li><a href="#" class="page-nav" data-id="springfox-swagger-ui" data-href="../../swagger-ui.html" data-icon="icon-file-code" data-reload="1"><i class="icon-file-code"></i> springfox-swagger-ui</a></li>
|
||||
<li><a target="_blank" href="../../doc-wiki.html"><i class="icon-book"></i> wiki文档</a></li>
|
||||
<li><a target="_blank" href="../../doc-dubbo.html"><i class="icon-node"></i> dubbo文档</a></li>
|
||||
<li><a target="_blank" href="../../doc-db.html"><i class="icon-database"></i> 数据库文档</a></li>
|
||||
<li><a target="_blank" href="../../document.html"><i class="icon-file-code"></i> zyplayer-doc-swagger</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="icon icon-window-alt"></i> 独立文档页面</a>
|
||||
<a href="#"><i class="icon icon-window-alt"></i> 三方文档页面</a>
|
||||
<ul>
|
||||
<li><a target="_blank" href="../../doc-wiki.html"><i class="icon-window"></i> wiki文档</a></li>
|
||||
<li><a target="_blank" href="../../doc-dubbo.html"><i class="icon-window"></i> dubbo文档</a></li>
|
||||
<li><a target="_blank" href="../../doc-db.html"><i class="icon-window"></i> 数据库文档</a></li>
|
||||
<li><a target="_blank" href="../../document.html"><i class="icon-window"></i> zyplayer-doc-swagger</a></li>
|
||||
<li><a target="_blank" href="../../doc.html"><i class="icon-window"></i> swagger-bootstrap-ui</a></li>
|
||||
<li><a target="_blank" href="../../swagger-ui.html"><i class="icon-window"></i> springfox-swagger-ui</a></li>
|
||||
<li><a target="_blank" href="../../doc.html"><i class="icon-file-code"></i> swagger-bootstrap-ui</a></li>
|
||||
<li><a target="_blank" href="../../swagger-ui.html"><i class="icon-file-code"></i> springfox-swagger-ui</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
@@ -14,6 +14,8 @@ import com.zyplayer.doc.data.service.manage.WikiPageFileService;
|
||||
import com.zyplayer.doc.data.service.manage.WikiPageService;
|
||||
import com.zyplayer.doc.data.service.manage.WikiPageZanService;
|
||||
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;
|
||||
@@ -23,7 +25,9 @@ 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.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 文档控制器
|
||||
@@ -44,17 +48,26 @@ public class WikiPageController {
|
||||
WikiPageFileService wikiPageFileService;
|
||||
@Resource
|
||||
WikiPageZanService wikiPageZanService;
|
||||
@Resource
|
||||
Mapper mapper;
|
||||
|
||||
@PostMapping("/list")
|
||||
public ResponseJson<List<WikiPage>> list(WikiPage wikiPage) {
|
||||
public ResponseJson<List<WikiPageVo>> list(WikiPage wikiPage) {
|
||||
// TODO 检查space是否开放访问
|
||||
UpdateWrapper<WikiPage> wrapper = new UpdateWrapper<>();
|
||||
wrapper.eq("del_flag", 0);
|
||||
wrapper.eq("space_id", wikiPage.getSpaceId());
|
||||
wrapper.eq(wikiPage.getParentId() == null, "parent_id", 0);
|
||||
wrapper.eq(wikiPage.getParentId() != null, "parent_id", wikiPage.getParentId());
|
||||
List<WikiPage> authList = wikiPageService.list(wrapper);
|
||||
return DocResponseJson.ok(authList);
|
||||
Map<Long, List<WikiPageVo>> listMap = authList.stream().map(val -> mapper.map(val, WikiPageVo.class)).collect(Collectors.groupingBy(WikiPageVo::getParentId));
|
||||
List<WikiPageVo> nodePageList;
|
||||
if (wikiPage.getParentId() == null) {
|
||||
nodePageList = listMap.get(0L);
|
||||
this.setChildren(listMap, nodePageList);
|
||||
} else {
|
||||
nodePageList = listMap.get(wikiPage.getParentId());
|
||||
}
|
||||
return DocResponseJson.ok(nodePageList);
|
||||
}
|
||||
|
||||
@PostMapping("/detail")
|
||||
@@ -124,5 +137,18 @@ public class WikiPageController {
|
||||
}
|
||||
return DocResponseJson.ok(wikiPage);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.zyplayer.doc.wiki.controller.vo;
|
||||
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class WikiPageVo extends WikiPage {
|
||||
private List<WikiPageVo> children;
|
||||
|
||||
public List<WikiPageVo> getChildren() {
|
||||
return children;
|
||||
}
|
||||
|
||||
public void setChildren(List<WikiPageVo> children) {
|
||||
this.children = children;
|
||||
}
|
||||
}
|
||||
@@ -51,7 +51,8 @@
|
||||
</el-aside>
|
||||
<el-main class="doc-body-box">
|
||||
<el-row type="border-card" v-show="rightContentType == 0">
|
||||
<div style="margin-top: 30px;color: #666; text-align: center;">欢迎使用在线文档</div>
|
||||
<div style="margin-top: 30px;color: #666; text-align: center; font-size: 30px;">欢迎使用在线文档</div>
|
||||
<div style="margin-top: 30px;color: #666; text-align: center;">{{nowSpaceShow.name}} · {{nowSpaceShow.spaceExplain}}</div>
|
||||
</el-row>
|
||||
<el-row type="border-card" v-show="rightContentType == 1">
|
||||
<div class="wiki-title">
|
||||
@@ -162,6 +163,9 @@
|
||||
<el-form-item label="空间描述:" prop="spaceExplain">
|
||||
<el-input v-model="newSpaceForm.spaceExplain"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="目录加载:" prop="treeLazyLoad">
|
||||
<el-switch v-model="newSpaceForm.treeLazyLoad" inactive-text="预先加载" :inactive-value="0" active-text="延迟加载" :active-value="1"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" v-if="newSpaceForm.id > 0" @click="onNewSpaceSubmit('newSpaceForm')">保存修改</el-button>
|
||||
<el-button type="primary" v-else @click="onNewSpaceSubmit('newSpaceForm')">立即创建</el-button>
|
||||
@@ -235,17 +239,17 @@
|
||||
pathIndex: [],
|
||||
defaultProps: {
|
||||
children: 'children',
|
||||
label: 'label',
|
||||
isLeaf: 'leaf'
|
||||
label: 'name'
|
||||
},
|
||||
// 空间搜索相关
|
||||
spaceOptions: [],
|
||||
spaceList:[],
|
||||
choiceSpace: "",
|
||||
nowSpaceId: '',
|
||||
nowSpaceShow: {},
|
||||
newSpaceDialogVisible: false,
|
||||
manageSpaceDialogVisible: false,
|
||||
newSpaceForm: {id: '', name: '', spaceExplain: ''},
|
||||
newSpaceForm: {id: '', name: '', spaceExplain: '', treeLazyLoad: 0},
|
||||
newSpaceFormRules: {
|
||||
name: [
|
||||
{required: true, message: '请输入空间名', trigger: 'blur'},
|
||||
@@ -288,7 +292,10 @@
|
||||
return data.label.indexOf(value) !== -1;
|
||||
},
|
||||
editSpaceInfo(row) {
|
||||
app.newSpaceForm = {id: row.id, name: row.name, spaceExplain: row.spaceExplain};
|
||||
app.newSpaceForm = {
|
||||
id: row.id, name: row.name, spaceExplain: row.spaceExplain,
|
||||
treeLazyLoad: row.treeLazyLoad
|
||||
};
|
||||
app.newSpaceDialogVisible = true;
|
||||
},
|
||||
deleteSpaceInfo(row) {
|
||||
@@ -344,7 +351,8 @@
|
||||
var param = {
|
||||
id: app.newSpaceForm.id,
|
||||
name: app.newSpaceForm.name,
|
||||
spaceExplain: app.newSpaceForm.spaceExplain
|
||||
spaceExplain: app.newSpaceForm.spaceExplain,
|
||||
treeLazyLoad: app.newSpaceForm.treeLazyLoad,
|
||||
};
|
||||
ajaxTemp("zyplayer-doc-wiki/space/update", "post", "json", param, function (json) {
|
||||
if (validateResult(json)) {
|
||||
@@ -356,11 +364,12 @@
|
||||
label: json.data.name, value: json.data.id
|
||||
});
|
||||
app.nowSpaceId = json.data.id;
|
||||
app.nowSpaceShow = json.data;
|
||||
app.choiceSpace = app.nowSpaceId;
|
||||
app.rightContentType = 0;
|
||||
app.doGetPageList(null);
|
||||
}
|
||||
app.newSpaceForm = {id: '', name: '', spaceExplain: ''};
|
||||
app.newSpaceForm = {id: '', name: '', spaceExplain: '', treeLazyLoad: 0};
|
||||
app.newSpaceDialogVisible = false;
|
||||
}
|
||||
});
|
||||
@@ -517,7 +526,7 @@
|
||||
},
|
||||
spaceChangeEvents(data) {
|
||||
if (data == 0) {
|
||||
app.newSpaceForm = {id: '', name: '', spaceExplain: ''};
|
||||
app.newSpaceForm = {id: '', name: '', spaceExplain: '', treeLazyLoad: 0};
|
||||
app.choiceSpace = app.nowSpaceId;
|
||||
app.newSpaceDialogVisible = true;
|
||||
} else if (data == -1) {
|
||||
@@ -526,6 +535,12 @@
|
||||
} else {
|
||||
app.nowSpaceId = data;
|
||||
app.rightContentType = 0;
|
||||
for (var i = 0; i < app.spaceList.length; i++) {
|
||||
if (app.spaceList[i].id == data) {
|
||||
app.nowSpaceShow = app.spaceList[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
app.doGetPageList(null);
|
||||
}
|
||||
},
|
||||
@@ -542,6 +557,7 @@
|
||||
app.spaceOptions = spaceOptions;
|
||||
if (app.spaceList.length > 0) {
|
||||
app.nowSpaceId = app.spaceList[0].id;
|
||||
app.nowSpaceShow = app.spaceList[0];
|
||||
app.choiceSpace = app.nowSpaceId;
|
||||
app.doGetPageList(null);
|
||||
}
|
||||
@@ -604,19 +620,24 @@
|
||||
} else {
|
||||
nodePath = "/";
|
||||
}
|
||||
var param = {spaceId: this.nowSpaceId, parentId: parentId};
|
||||
var param = {spaceId: this.nowSpaceId, parentId: parentId || 0};
|
||||
if (app.nowSpaceShow.treeLazyLoad == 0) {
|
||||
param.parentId = null;
|
||||
}
|
||||
ajaxTemp("zyplayer-doc-wiki/page/list", "post", "json", param, function (json) {
|
||||
if (validateResult(json)) {
|
||||
var result = json.data || [];
|
||||
var pathIndex = [];
|
||||
for (var i = 0; i < json.data.length; i++) {
|
||||
var item = json.data[i];
|
||||
pathIndex.push({
|
||||
id: item.id,
|
||||
parentId: item.parentId || 0,
|
||||
label: item.name,
|
||||
nodePath: nodePath + item.name,
|
||||
children: [{label: '', needLoad: true}],// 初始化一个对象,点击展开时重新查询加载
|
||||
});
|
||||
if (app.nowSpaceShow.treeLazyLoad == 0) {
|
||||
pathIndex = result;
|
||||
} else {
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
var item = result[i];
|
||||
item.parentId = item.parentId || 0;
|
||||
item.nodePath = nodePath + item.name;
|
||||
item.children = [{label: '', needLoad: true}];// 初始化一个对象,点击展开时重新查询加载
|
||||
pathIndex.push(item);
|
||||
}
|
||||
}
|
||||
if (parentId > 0) {
|
||||
node.children = pathIndex;
|
||||
|
||||
Reference in New Issue
Block a user