优化wiki文档上传,增加消息提醒功能

This commit is contained in:
暮光:城中城
2020-06-26 11:23:26 +08:00
parent 1dd6588d63
commit fbfede7663
28 changed files with 1030 additions and 395 deletions

View File

@@ -52,5 +52,10 @@
<artifactId>pagehelper</artifactId> <artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version> <version>${pagehelper.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-core</artifactId>
<version>3.3.0</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@@ -3,6 +3,7 @@ package com.zyplayer.doc.core.json;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializeConfig; import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer; import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@@ -124,6 +125,13 @@ public class DocResponseJson<T> implements ResponseJson<T> {
this.pageNum = pageInfo.getPageNum(); this.pageNum = pageInfo.getPageNum();
this.pageSize = pageInfo.getPageSize(); this.pageSize = pageInfo.getPageSize();
this.totalPage = pageInfo.getPages(); this.totalPage = pageInfo.getPages();
} else if (data instanceof IPage) {
IPage<?> iPage = (IPage<?>) data;
this.data = iPage.getRecords();
this.total = iPage.getTotal();
this.pageNum = (int) iPage.getCurrent();
this.pageSize = (int) iPage.getSize();
this.totalPage = (int) iPage.getPages();
} else { } else {
this.data = data; this.data = data;
} }

View File

@@ -13,6 +13,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.annotation.Resource;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.util.Properties; import java.util.Properties;
@@ -54,6 +55,8 @@ public class MybatisPlusConfig {
private String username; private String username;
@Value("${zyplayer.doc.manage.datasource.password}") @Value("${zyplayer.doc.manage.datasource.password}")
private String password; private String password;
@Resource
private PaginationInterceptor paginationInterceptor;
@Bean(name = "manageDatasource") @Bean(name = "manageDatasource")
public DataSource manageDatasource() throws Exception { public DataSource manageDatasource() throws Exception {
@@ -64,7 +67,7 @@ public class MybatisPlusConfig {
public MybatisSqlSessionFactoryBean manageSqlSessionFactory() throws Exception { public MybatisSqlSessionFactoryBean manageSqlSessionFactory() throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean(); MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(manageDatasource()); sqlSessionFactoryBean.setDataSource(manageDatasource());
sqlSessionFactoryBean.setPlugins(new Interceptor[]{SQL_LOG_INTERCEPTOR, MYSQL_PAGE_HELPER}); sqlSessionFactoryBean.setPlugins(new Interceptor[]{SQL_LOG_INTERCEPTOR, MYSQL_PAGE_HELPER, paginationInterceptor});
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mapper/manage/*Mapper.xml")); sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mapper/manage/*Mapper.xml"));

View File

@@ -0,0 +1,197 @@
package com.zyplayer.doc.data.repository.manage.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 用户消息表
* </p>
*
* @author 暮光:城中城
* @since 2020-06-23
*/
public class UserMessage implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键自增ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 系统类型 1=manage 2=wiki 3=db
*/
private Integer sysType;
/**
* 消息类型 1=普通文本消息 2=wiki文档创建 3=wiki文档删除 4=wiki文档编辑 5=wiki文档权限修改 6=wiki文档评论 7=wiki文档删除评论
*/
private Integer msgType;
/**
* 消息关联的数据ID
*/
private Long dataId;
/**
* 消息关联的数据说明
*/
private String dataDesc;
/**
* 消息内容
*/
private String msgContent;
/**
* 消息状态 0=未读 1=已读 2=已删除
*/
private Integer msgStatus;
/**
* 操作人用户ID
*/
private Long operatorUserId;
/**
* 操作人用户名
*/
private String operatorUserName;
/**
* 影响用户ID
*/
private Long affectUserId;
/**
* 影响人用户名
*/
private String affectUserName;
/**
* 接收人用户ID
*/
private Long acceptUserId;
/**
* 创建时间
*/
private Date creationTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getSysType() {
return sysType;
}
public void setSysType(Integer sysType) {
this.sysType = sysType;
}
public Integer getMsgType() {
return msgType;
}
public void setMsgType(Integer msgType) {
this.msgType = msgType;
}
public Long getDataId() {
return dataId;
}
public void setDataId(Long dataId) {
this.dataId = dataId;
}
public String getDataDesc() {
return dataDesc;
}
public void setDataDesc(String dataDesc) {
this.dataDesc = dataDesc;
}
public Integer getMsgStatus() {
return msgStatus;
}
public void setMsgStatus(Integer msgStatus) {
this.msgStatus = msgStatus;
}
public Long getOperatorUserId() {
return operatorUserId;
}
public void setOperatorUserId(Long operatorUserId) {
this.operatorUserId = operatorUserId;
}
public String getOperatorUserName() {
return operatorUserName;
}
public void setOperatorUserName(String operatorUserName) {
this.operatorUserName = operatorUserName;
}
public Long getAcceptUserId() {
return acceptUserId;
}
public void setAcceptUserId(Long acceptUserId) {
this.acceptUserId = acceptUserId;
}
public Date getCreationTime() {
return creationTime;
}
public void setCreationTime(Date creationTime) {
this.creationTime = creationTime;
}
@Override
public String toString() {
return "UserMessage{" +
"id=" + id +
", sysType=" + sysType +
", msgType=" + msgType +
", dataId=" + dataId +
", dataDesc=" + dataDesc +
", msgStatus=" + msgStatus +
", operatorUserId=" + operatorUserId +
", operatorUserName=" + operatorUserName +
", acceptUserId=" + acceptUserId +
", creationTime=" + creationTime +
"}";
}
public String getMsgContent() {
return msgContent;
}
public void setMsgContent(String msgContent) {
this.msgContent = msgContent;
}
public Long getAffectUserId() {
return affectUserId;
}
public void setAffectUserId(Long affectUserId) {
this.affectUserId = affectUserId;
}
public String getAffectUserName() {
return affectUserName;
}
public void setAffectUserName(String affectUserName) {
this.affectUserName = affectUserName;
}
}

View File

@@ -0,0 +1,16 @@
package com.zyplayer.doc.data.repository.manage.mapper;
import com.zyplayer.doc.data.repository.manage.entity.UserMessage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 用户消息表 Mapper 接口
* </p>
*
* @author 暮光:城中城
* @since 2020-06-23
*/
public interface UserMessageMapper extends BaseMapper<UserMessage> {
}

View File

@@ -0,0 +1,21 @@
package com.zyplayer.doc.data.repository.support.consts;
public enum UserMsgSysType {
// 系统类型 1=manage 2=wiki 3=db
MANAGE(1), WIKI(2), DB(2),
;
UserMsgSysType(int type) {
this.type = type;
}
private int type;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
}

View File

@@ -0,0 +1,23 @@
package com.zyplayer.doc.data.repository.support.consts;
public enum UserMsgType {
// 消息类型 1=普通文本消息 2=wiki文档创建 3=wiki文档删除 4=wiki文档编辑 5=wiki文档权限修改
// 6=wiki文档评论 7=wiki文档删除评论 8=wiki文档上传附件 9=wiki文档修改了父级 10=wiki文档点赞 11=wiki文档附件删除
SIMPLE(1), WIKI_PAGE_CREATE(2), WIKI_PAGE_DELETE(3), WIKI_PAGE_UPDATE(4), WIKI_PAGE_AUTH(5),
WIKI_PAGE_COMMENT(6), WIKI_PAGE_COMMENT_DEL(7), WIKI_PAGE_UPLOAD(8), WIKI_PAGE_PARENT(9), WIKI_PAGE_ZAN(10), WIKI_PAGE_FILE_DEL(11),
;
UserMsgType(int type) {
this.type = type;
}
private int type;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
}

View File

@@ -20,7 +20,7 @@ public class CodeGenerator {
// final String[] tableName = { "zyplayer_storage", "auth_info", "user_auth", "user_info", "db_datasource" }; // final String[] tableName = { "zyplayer_storage", "auth_info", "user_auth", "user_info", "db_datasource" };
// 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", "wiki_page_content", "wiki_page_file", "wiki_page_comment", "wiki_page_zan" };
// final String[] tableName = { "db_datasource", "es_datasource", "db_favorite" }; // final String[] tableName = { "db_datasource", "es_datasource", "db_favorite" };
final String[] tableName = { "db_transfer_task" }; final String[] tableName = { "user_message" };
// 代码生成器 // 代码生成器
AutoGenerator mpg = new AutoGenerator(); AutoGenerator mpg = new AutoGenerator();

View File

@@ -0,0 +1,22 @@
package com.zyplayer.doc.data.service.manage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.repository.manage.entity.UserMessage;
import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType;
import com.zyplayer.doc.data.repository.support.consts.UserMsgType;
/**
* <p>
* 用户消息表 服务类
* </p>
*
* @author 暮光:城中城
* @since 2020-06-23
*/
public interface UserMessageService extends IService<UserMessage> {
void addWikiMessage(UserMessage userMessage);
UserMessage createUserMessage(DocUserDetails currentUser, Long pageId, String dataDesc, UserMsgSysType sysType, UserMsgType msgType);
}

View File

@@ -0,0 +1,112 @@
package com.zyplayer.doc.data.service.manage.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.repository.manage.entity.UserMessage;
import com.zyplayer.doc.data.repository.manage.mapper.UserMessageMapper;
import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType;
import com.zyplayer.doc.data.repository.support.consts.UserMsgType;
import com.zyplayer.doc.data.service.manage.UserMessageService;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.Objects;
/**
* <p>
* 用户消息表 服务实现类
* </p>
*
* @author 暮光:城中城
* @since 2020-06-23
*/
@Service
public class UserMessageServiceImpl extends ServiceImpl<UserMessageMapper, UserMessage> implements UserMessageService {
@Override
public UserMessage createUserMessage(DocUserDetails currentUser, Long dataId, String dataDesc, UserMsgSysType sysType, UserMsgType msgType) {
UserMessage userMessage = new UserMessage();
userMessage.setDataId(dataId);
userMessage.setDataDesc(dataDesc);
userMessage.setSysType(sysType.getType());
userMessage.setMsgType(msgType.getType());
userMessage.setOperatorUserId(currentUser.getUserId());
userMessage.setOperatorUserName(currentUser.getUsername());
return userMessage;
}
@Override
public void addWikiMessage(UserMessage userMessage) {
// 初始值
userMessage.setMsgStatus(0);
userMessage.setCreationTime(new Date());
// 操作人
userMessage.setAcceptUserId(userMessage.getOperatorUserId());
this.setWikiMsgContentForOperator(userMessage);
this.save(userMessage);
// 影响人
if (userMessage.getAffectUserId() != null && !Objects.equals(userMessage.getAffectUserId(), userMessage.getOperatorUserId())) {
userMessage.setId(null);
userMessage.setAcceptUserId(userMessage.getAffectUserId());
this.setWikiMsgContentForAffect(userMessage);
this.save(userMessage);
}
// 后期可以添加文档的关注人等
}
/**
* 给操作人发通知的内容
*
* @param userMessage
*/
private void setWikiMsgContentForOperator(UserMessage userMessage) {
if (Objects.equals(UserMsgType.WIKI_PAGE_UPLOAD.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您在‘%s文档内上传了附件", userMessage.getDataDesc()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_AUTH.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您修改了‘%s文档内%s的权限", userMessage.getDataDesc(), userMessage.getAffectUserName()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您评论了‘%s文档", userMessage.getDataDesc()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT_DEL.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您删除了‘%s文档的评论", userMessage.getDataDesc()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_PARENT.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您修改了‘%s文档的父级", userMessage.getDataDesc()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_DELETE.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您删除了‘%s文档", userMessage.getDataDesc()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_CREATE.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您创建了‘%s文档", userMessage.getDataDesc()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_UPDATE.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您修改了‘%s文档", userMessage.getDataDesc()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_ZAN.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您赞同了‘%s文档", userMessage.getDataDesc()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_FILE_DEL.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您删除了‘%s文档的一个附件", userMessage.getDataDesc()));
}
}
/**
* 给影响人发通知的内容
*
* @param userMessage
*/
private void setWikiMsgContentForAffect(UserMessage userMessage) {
if (Objects.equals(UserMsgType.WIKI_PAGE_UPLOAD.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("%s为您的文档%s上传了附件", userMessage.getOperatorUserName(), userMessage.getDataDesc()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_AUTH.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您在‘%s文档内的权限被%s修改了", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您的‘%s文档收到了来自%s的评论", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_COMMENT_DEL.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("%s删除了您的文档%s的一条评论", userMessage.getOperatorUserName(), userMessage.getDataDesc()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_PARENT.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您的‘%s文档被%s修改了父级", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_DELETE.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您的‘%s文档被%s删除了", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_UPDATE.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您的‘%s文档被%s修改了", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_ZAN.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您的‘%s文档收到了%s的赞同", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
} else if (Objects.equals(UserMsgType.WIKI_PAGE_FILE_DEL.getType(), userMessage.getMsgType())) {
userMessage.setMsgContent(String.format("您的‘%s文档被%s删除了一个附件", userMessage.getDataDesc(), userMessage.getOperatorUserName()));
}
}
}

View File

@@ -2,8 +2,14 @@ package com.zyplayer.doc.data.service.manage.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.UserMessage;
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.repository.support.consts.UserMsgSysType;
import com.zyplayer.doc.data.repository.support.consts.UserMsgType;
import com.zyplayer.doc.data.service.manage.UserMessageService;
import com.zyplayer.doc.data.service.manage.WikiPageService; import com.zyplayer.doc.data.service.manage.WikiPageService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -25,6 +31,8 @@ public class WikiPageServiceImpl extends ServiceImpl<WikiPageMapper, WikiPage> i
@Resource @Resource
WikiPageMapper wikiPageMapper; WikiPageMapper wikiPageMapper;
@Resource
UserMessageService userMessageService;
@Override @Override
public void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq) { public void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq) {
@@ -43,10 +51,27 @@ public class WikiPageServiceImpl extends ServiceImpl<WikiPageMapper, WikiPage> i
wikiPage.setSeqNo(lastSeq + 1); wikiPage.setSeqNo(lastSeq + 1);
} }
this.updateById(wikiPage); this.updateById(wikiPage);
// 给相关人发送消息
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPage.getId(), wikiPage.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_PARENT);
userMessage.setAffectUserId(wikiPage.getCreateUserId());
userMessage.setAffectUserName(wikiPage.getCreateUserName());
userMessageService.addWikiMessage(userMessage);
} }
@Override @Override
public void deletePage(WikiPage wikiPage) { public void deletePage(WikiPage wikiPage) {
// 给相关人发送消息
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPage.getId(), wikiPage.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_DELETE);
userMessage.setAffectUserId(wikiPage.getCreateUserId());
userMessage.setAffectUserName(wikiPage.getCreateUserName());
userMessageService.addWikiMessage(userMessage);
// 递归删除
this.deletePageAndSon(wikiPage);
}
private void deletePageAndSon(WikiPage wikiPage) {
wikiPage.setDelFlag(1); wikiPage.setDelFlag(1);
this.updateById(wikiPage); this.updateById(wikiPage);
@@ -60,7 +85,7 @@ public class WikiPageServiceImpl extends ServiceImpl<WikiPageMapper, WikiPage> i
// 递归删除子页面 // 递归删除子页面
for (WikiPage page : wikiPageList) { for (WikiPage page : wikiPageList) {
wikiPage.setId(page.getId()); wikiPage.setId(page.getId());
this.deletePage(wikiPage); this.deletePageAndSon(wikiPage);
} }
} }
} }

View File

@@ -0,0 +1,20 @@
package com.zyplayer.doc.data.web.generator;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 用户消息表 前端控制器
* </p>
*
* @author 暮光:城中城
* @since 2020-06-23
*/
@RestController
@RequestMapping("/user-message")
public class GeneratorUserMessageController {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zyplayer.doc.data.repository.manage.mapper.UserMessageMapper">
</mapper>

View File

@@ -0,0 +1,94 @@
package com.zyplayer.doc.manage.web.manage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.UserMessage;
import com.zyplayer.doc.data.service.manage.UserMessageService;
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.Arrays;
/**
* 用户消息控制器
*
* @author 暮光:城中城
* @since 2020年6月25日
*/
@AuthMan
@RestController
@RequestMapping("/user/message")
public class UserMessageController {
@Resource
UserMessageService userMessageService;
/**
* 消息列表
*
* @param pageNum 当前页
* @param pageSize 每页条数
* @param msgStatus 消息状态
* @return 数据列表
*/
@PostMapping("/list")
public ResponseJson<Object> list(Long pageNum, Long pageSize, Integer msgStatus) {
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
IPage<UserMessage> page = new Page<>(pageNum, pageSize);
QueryWrapper<UserMessage> wrapper = new QueryWrapper<>();
wrapper.eq("accept_user_id", currentUser.getUserId());
if (msgStatus != null && msgStatus >= 0) {
wrapper.eq("msg_status", msgStatus);
}
userMessageService.page(page, wrapper);
return DocResponseJson.ok(page);
}
/**
* 更新消息已读状态
*
* @param ids 消息IDS
* @return 是否成功
*/
@PostMapping("/read")
public ResponseJson<Object> read(String ids) {
this.update(ids, 1);
return DocResponseJson.ok();
}
/**
* 删除消息
*
* @param ids 消息IDS
* @return 是否成功
*/
@PostMapping("/delete")
public ResponseJson<Object> delete(String ids) {
this.update(ids, 2);
return DocResponseJson.ok();
}
/**
* 更新消息状态
*
* @param ids 消息IDS
* @param status 状态
*/
public void update(String ids, Integer status) {
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
QueryWrapper<UserMessage> wrapper = new QueryWrapper<>();
wrapper.in("id", Arrays.asList(ids.split(",")));
wrapper.eq("accept_user_id", currentUser.getUserId());
UserMessage msgUp = new UserMessage();
msgUp.setMsgStatus(status);
userMessageService.update(msgUp, wrapper);
}
}

View File

@@ -11,6 +11,23 @@ ADD COLUMN `group_name` varchar(50) NULL COMMENT '数据源分组名';
ALTER TABLE `wiki_page` ALTER TABLE `wiki_page`
ADD COLUMN `editor_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '编辑框类型 1=HTML 2=Markdown'; ADD COLUMN `editor_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '编辑框类型 1=HTML 2=Markdown';
CREATE TABLE `user_message` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
`sys_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '系统类型 1=manage 2=wiki 3=db',
`msg_type` int NOT NULL DEFAULT 1 COMMENT '消息类型 1=普通文本消息 2=wiki文档创建 3=wiki文档删除 4=wiki文档编辑 5=wiki文档权限修改 6=wiki文档评论 7=wiki文档删除评论 8=wiki文档上传附件',
`data_id` bigint(20) NULL DEFAULT NULL COMMENT '消息关联的数据ID',
`data_desc` varchar(100) NULL DEFAULT NULL COMMENT '消息关联的数据说明',
`msg_content` varchar(255) NULL DEFAULT NULL COMMENT '消息内容',
`msg_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '消息状态 0=未读 1=已读 2=已删除',
`operator_user_id` bigint(20) NULL DEFAULT NULL COMMENT '操作人用户ID',
`operator_user_name` varchar(20) NULL DEFAULT NULL COMMENT '操作人用户名',
`affect_user_id` bigint(20) NULL DEFAULT NULL COMMENT '影响人用户ID',
`affect_user_name` varchar(20) NULL DEFAULT NULL COMMENT '影响人用户名',
`accept_user_id` bigint(20) NULL DEFAULT NULL COMMENT '接收人用户ID',
`creation_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户消息表' ROW_FORMAT = Compact;
-- ------------------------全新的库:------------------------ -- ------------------------全新的库:------------------------
/* /*
Navicat Premium Data Transfer Navicat Premium Data Transfer
@@ -226,6 +243,7 @@ CREATE TABLE `wiki_page` (
`del_flag` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0=有效 1=删除', `del_flag` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0=有效 1=删除',
`view_num` int(11) NOT NULL DEFAULT 0 COMMENT '阅读数', `view_num` int(11) NOT NULL DEFAULT 0 COMMENT '阅读数',
`seq_no` int(11) NOT NULL DEFAULT 0 COMMENT '顺序', `seq_no` int(11) NOT NULL DEFAULT 0 COMMENT '顺序',
`editor_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '编辑框类型 1=HTML 2=Markdown',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; ) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

View File

@@ -2,8 +2,8 @@
ENV = 'development' ENV = 'development'
# base api # base api
VUE_APP_BASE_API = 'http://local.zyplayer.com:8083/zyplayer-doc-manage' # VUE_APP_BASE_API = 'http://local.zyplayer.com:8083/zyplayer-doc-manage'
# VUE_APP_BASE_API = 'http://doc.zyplayer.com/zyplayer-doc-manage' VUE_APP_BASE_API = 'http://doc.zyplayer.com/zyplayer-doc-manage'
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true

View File

@@ -1496,7 +1496,7 @@
}, },
"@webassemblyjs/ast": { "@webassemblyjs/ast": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.8.5.tgz",
"integrity": "sha1-UbHF/mV2o0lTv0slPfnw1JDZ41k=", "integrity": "sha1-UbHF/mV2o0lTv0slPfnw1JDZ41k=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1507,25 +1507,25 @@
}, },
"@webassemblyjs/floating-point-hex-parser": { "@webassemblyjs/floating-point-hex-parser": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.8.5.tgz",
"integrity": "sha1-G6kmopI2E+3OSW/VsC6M6KX0lyE=", "integrity": "sha1-G6kmopI2E+3OSW/VsC6M6KX0lyE=",
"dev": true "dev": true
}, },
"@webassemblyjs/helper-api-error": { "@webassemblyjs/helper-api-error": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.8.5.tgz",
"integrity": "sha1-xJ2tIvZFInxe22EL25aX8aq3Ifc=", "integrity": "sha1-xJ2tIvZFInxe22EL25aX8aq3Ifc=",
"dev": true "dev": true
}, },
"@webassemblyjs/helper-buffer": { "@webassemblyjs/helper-buffer": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.8.5.tgz",
"integrity": "sha1-/qk+Qphj3V5DOFVfQikjhaZT8gQ=", "integrity": "sha1-/qk+Qphj3V5DOFVfQikjhaZT8gQ=",
"dev": true "dev": true
}, },
"@webassemblyjs/helper-code-frame": { "@webassemblyjs/helper-code-frame": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.8.5.tgz",
"integrity": "sha1-mnQP9I4/qjAisd/1RCPfmqKTwl4=", "integrity": "sha1-mnQP9I4/qjAisd/1RCPfmqKTwl4=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1534,13 +1534,13 @@
}, },
"@webassemblyjs/helper-fsm": { "@webassemblyjs/helper-fsm": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.8.5.tgz",
"integrity": "sha1-ugt9Oz9+RzPaYFnJMyJ12GBwJFI=", "integrity": "sha1-ugt9Oz9+RzPaYFnJMyJ12GBwJFI=",
"dev": true "dev": true
}, },
"@webassemblyjs/helper-module-context": { "@webassemblyjs/helper-module-context": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.8.5.tgz",
"integrity": "sha1-3vS5knsBAdyMu9jR7bW3ucguskU=", "integrity": "sha1-3vS5knsBAdyMu9jR7bW3ucguskU=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1550,13 +1550,13 @@
}, },
"@webassemblyjs/helper-wasm-bytecode": { "@webassemblyjs/helper-wasm-bytecode": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.8.5.tgz",
"integrity": "sha1-U3p1Dt31weky83RCBlUckcG5PmE=", "integrity": "sha1-U3p1Dt31weky83RCBlUckcG5PmE=",
"dev": true "dev": true
}, },
"@webassemblyjs/helper-wasm-section": { "@webassemblyjs/helper-wasm-section": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.8.5.tgz",
"integrity": "sha1-dMpqa8vhnlCjtrRihH5pUD5r/L8=", "integrity": "sha1-dMpqa8vhnlCjtrRihH5pUD5r/L8=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1568,7 +1568,7 @@
}, },
"@webassemblyjs/ieee754": { "@webassemblyjs/ieee754": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.8.5.tgz",
"integrity": "sha1-cSMp2+8kDza/V70ve4+5v0FUQh4=", "integrity": "sha1-cSMp2+8kDza/V70ve4+5v0FUQh4=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1577,7 +1577,7 @@
}, },
"@webassemblyjs/leb128": { "@webassemblyjs/leb128": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.8.5.tgz",
"integrity": "sha1-BE7es06mefPgTNT9mCTV41dnrhA=", "integrity": "sha1-BE7es06mefPgTNT9mCTV41dnrhA=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1586,13 +1586,13 @@
}, },
"@webassemblyjs/utf8": { "@webassemblyjs/utf8": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.8.5.tgz",
"integrity": "sha1-qL87XY/+mGx8Hjc8y9wqCRXwztw=", "integrity": "sha1-qL87XY/+mGx8Hjc8y9wqCRXwztw=",
"dev": true "dev": true
}, },
"@webassemblyjs/wasm-edit": { "@webassemblyjs/wasm-edit": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.8.5.tgz",
"integrity": "sha1-li2hKqWswcExyBxCMpkcgs5W4Bo=", "integrity": "sha1-li2hKqWswcExyBxCMpkcgs5W4Bo=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1608,7 +1608,7 @@
}, },
"@webassemblyjs/wasm-gen": { "@webassemblyjs/wasm-gen": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.8.5.tgz",
"integrity": "sha1-VIQHZsLBAC62TtGr5yCt7XFPmLw=", "integrity": "sha1-VIQHZsLBAC62TtGr5yCt7XFPmLw=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1621,7 +1621,7 @@
}, },
"@webassemblyjs/wasm-opt": { "@webassemblyjs/wasm-opt": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.8.5.tgz",
"integrity": "sha1-sk2fa6UDlK8TSfUQr6j/y4pj0mQ=", "integrity": "sha1-sk2fa6UDlK8TSfUQr6j/y4pj0mQ=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1633,7 +1633,7 @@
}, },
"@webassemblyjs/wasm-parser": { "@webassemblyjs/wasm-parser": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.8.5.tgz",
"integrity": "sha1-IVdvDsiLkUJzV7hTY4NmjvfGa40=", "integrity": "sha1-IVdvDsiLkUJzV7hTY4NmjvfGa40=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1647,7 +1647,7 @@
}, },
"@webassemblyjs/wast-parser": { "@webassemblyjs/wast-parser": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.8.5.tgz",
"integrity": "sha1-4Q7s1ULQ5705T2gnxJ899tTu+4w=", "integrity": "sha1-4Q7s1ULQ5705T2gnxJ899tTu+4w=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1661,7 +1661,7 @@
}, },
"@webassemblyjs/wast-printer": { "@webassemblyjs/wast-printer": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.8.5.tgz", "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.8.5.tgz",
"integrity": "sha1-EUu8SB/RDKDiOzVg+oEnSLC65bw=", "integrity": "sha1-EUu8SB/RDKDiOzVg+oEnSLC65bw=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -1672,13 +1672,13 @@
}, },
"@xtuc/ieee754": { "@xtuc/ieee754": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", "resolved": "http://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz",
"integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=",
"dev": true "dev": true
}, },
"@xtuc/long": { "@xtuc/long": {
"version": "4.2.2", "version": "4.2.2",
"resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", "resolved": "http://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz",
"integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=",
"dev": true "dev": true
}, },
@@ -1743,7 +1743,7 @@
}, },
"ajv-errors": { "ajv-errors": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", "resolved": "http://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz",
"integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=",
"dev": true "dev": true
}, },
@@ -2442,7 +2442,7 @@
}, },
"buffer-from": { "buffer-from": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", "resolved": "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz",
"integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=",
"dev": true "dev": true
}, },
@@ -3096,7 +3096,7 @@
}, },
"concat-stream": { "concat-stream": {
"version": "1.6.2", "version": "1.6.2",
"resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz",
"integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -3171,7 +3171,7 @@
}, },
"copy-concurrently": { "copy-concurrently": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", "resolved": "http://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz",
"integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -3648,7 +3648,7 @@
}, },
"deepmerge": { "deepmerge": {
"version": "1.5.2", "version": "1.5.2",
"resolved": "http://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz", "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz",
"integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=" "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M="
}, },
"default-gateway": { "default-gateway": {
@@ -4328,7 +4328,7 @@
}, },
"esrecurse": { "esrecurse": {
"version": "4.2.1", "version": "4.2.1",
"resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz", "resolved": "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz",
"integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -4616,7 +4616,7 @@
}, },
"fast-deep-equal": { "fast-deep-equal": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz", "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true "dev": true
}, },
@@ -4641,7 +4641,7 @@
}, },
"fast-json-stable-stringify": { "fast-json-stable-stringify": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz", "resolved": "http://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz",
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
"dev": true "dev": true
}, },
@@ -4665,7 +4665,7 @@
}, },
"figgy-pudding": { "figgy-pudding": {
"version": "3.5.1", "version": "3.5.1",
"resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz", "resolved": "http://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz",
"integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=", "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=",
"dev": true "dev": true
}, },
@@ -4792,7 +4792,7 @@
}, },
"flush-write-stream": { "flush-write-stream": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", "resolved": "http://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz",
"integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -4866,7 +4866,7 @@
}, },
"from2": { "from2": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", "resolved": "http://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz",
"integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -4896,7 +4896,7 @@
}, },
"fs-write-stream-atomic": { "fs-write-stream-atomic": {
"version": "1.0.10", "version": "1.0.10",
"resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", "resolved": "http://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz",
"integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -4932,7 +4932,8 @@
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
@@ -4953,12 +4954,14 @@
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
@@ -4973,17 +4976,20 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
@@ -5100,7 +5106,8 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
@@ -5112,6 +5119,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
@@ -5126,6 +5134,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
@@ -5133,12 +5142,14 @@
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"minipass": { "minipass": {
"version": "2.3.5", "version": "2.3.5",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.1.2", "safe-buffer": "^5.1.2",
"yallist": "^3.0.0" "yallist": "^3.0.0"
@@ -5157,6 +5168,7 @@
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
@@ -5237,7 +5249,8 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
@@ -5249,6 +5262,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
@@ -5334,7 +5348,8 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
@@ -5370,6 +5385,7 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
@@ -5389,6 +5405,7 @@
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
@@ -5432,12 +5449,14 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"yallist": { "yallist": {
"version": "3.0.3", "version": "3.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
} }
} }
}, },
@@ -5963,7 +5982,7 @@
}, },
"iferr": { "iferr": {
"version": "0.1.5", "version": "0.1.5",
"resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", "resolved": "http://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz",
"integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
"dev": true "dev": true
}, },
@@ -6025,7 +6044,7 @@
}, },
"imurmurhash": { "imurmurhash": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", "resolved": "http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true "dev": true
}, },
@@ -6501,7 +6520,7 @@
}, },
"json-parse-better-errors": { "json-parse-better-errors": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", "resolved": "http://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz",
"integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=",
"dev": true "dev": true
}, },
@@ -6513,7 +6532,7 @@
}, },
"json-schema-traverse": { "json-schema-traverse": {
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
"integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
"dev": true "dev": true
}, },
@@ -7284,7 +7303,7 @@
}, },
"move-concurrently": { "move-concurrently": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", "resolved": "http://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
"integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -7502,7 +7521,7 @@
}, },
"normalize-wheel": { "normalize-wheel": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "http://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz", "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-wheel%2Fdownload%2Fnormalize-wheel-1.0.1.tgz",
"integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
}, },
"npm-run-path": { "npm-run-path": {
@@ -8718,7 +8737,7 @@
}, },
"promise-inflight": { "promise-inflight": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", "resolved": "http://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz",
"integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
"dev": true "dev": true
}, },
@@ -8764,7 +8783,7 @@
}, },
"pump": { "pump": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", "resolved": "http://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz",
"integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -8774,7 +8793,7 @@
}, },
"pumpify": { "pumpify": {
"version": "1.5.1", "version": "1.5.1",
"resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz", "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpumpify%2Fdownload%2Fpumpify-1.5.1.tgz",
"integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -8785,7 +8804,7 @@
"dependencies": { "dependencies": {
"pump": { "pump": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", "resolved": "http://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz",
"integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -9172,7 +9191,7 @@
}, },
"resize-observer-polyfill": { "resize-observer-polyfill": {
"version": "1.5.1", "version": "1.5.1",
"resolved": "http://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz", "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz",
"integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=" "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ="
}, },
"resolve": { "resolve": {
@@ -9260,7 +9279,7 @@
}, },
"run-queue": { "run-queue": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", "resolved": "http://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz",
"integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -9959,7 +9978,7 @@
}, },
"stream-each": { "stream-each": {
"version": "1.2.3", "version": "1.2.3",
"resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", "resolved": "http://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz",
"integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -9982,7 +10001,7 @@
}, },
"stream-shift": { "stream-shift": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.0.tgz", "resolved": "http://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.0.tgz",
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
"dev": true "dev": true
}, },
@@ -10169,7 +10188,7 @@
"dependencies": { "dependencies": {
"source-map": { "source-map": {
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
"integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
"dev": true "dev": true
} }
@@ -10194,7 +10213,7 @@
"dependencies": { "dependencies": {
"source-map": { "source-map": {
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
"integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
"dev": true "dev": true
} }
@@ -10236,7 +10255,7 @@
}, },
"through2": { "through2": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz",
"integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -10398,7 +10417,7 @@
}, },
"typedarray": { "typedarray": {
"version": "0.0.6", "version": "0.0.6",
"resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", "resolved": "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true "dev": true
}, },
@@ -10488,7 +10507,7 @@
}, },
"unique-filename": { "unique-filename": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", "resolved": "http://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz",
"integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=",
"dev": true, "dev": true,
"requires": { "requires": {
@@ -10576,7 +10595,7 @@
}, },
"uri-js": { "uri-js": {
"version": "4.2.2", "version": "4.2.2",
"resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", "resolved": "http://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz",
"integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=",
"dev": true, "dev": true,
"requires": { "requires": {

View File

@@ -2,9 +2,6 @@ import Qs from 'qs'
import request from './request' import request from './request'
export default { export default {
commonUpload: data => {
return request({url: '/zyplayer-doc-wiki/common/upload', method: 'post', data: Qs.stringify(data)});
},
getUserBaseInfo: data => { getUserBaseInfo: data => {
return request({url: '/zyplayer-doc-wiki/common/user/base', method: 'post', data: Qs.stringify(data)}); return request({url: '/zyplayer-doc-wiki/common/user/base', method: 'post', data: Qs.stringify(data)});
}, },

View File

@@ -44,8 +44,8 @@ export default {
assignPageUserAuth: data => { assignPageUserAuth: data => {
return request({url: '/zyplayer-doc-wiki/page/auth/assign', method: 'post', data: Qs.stringify(data)}); return request({url: '/zyplayer-doc-wiki/page/auth/assign', method: 'post', data: Qs.stringify(data)});
}, },
updatePageFile: data => { deletePageFile: data => {
return request({url: '/zyplayer-doc-wiki/page/file/update', method: 'post', data: Qs.stringify(data)}); return request({url: '/zyplayer-doc-wiki/page/file/delete', method: 'post', data: Qs.stringify(data)});
}, },
pageCommentList: data => { pageCommentList: data => {
return request({url: '/zyplayer-doc-wiki/page/comment/list', method: 'post', data: Qs.stringify(data)}); return request({url: '/zyplayer-doc-wiki/page/comment/list', method: 'post', data: Qs.stringify(data)});

View File

@@ -29,7 +29,7 @@
</el-tree> </el-tree>
</div> </div>
</el-aside> </el-aside>
<el-container> <el-container style="box-shadow: 0 0 8px rgba(0,0,0,.1);">
<el-header> <el-header>
<!--<el-switch v-model="isCollapse" ></el-switch>--> <!--<el-switch v-model="isCollapse" ></el-switch>-->
<i class="el-icon-menu icon-collapse" @click="leftCollapse = !leftCollapse"></i> <i class="el-icon-menu icon-collapse" @click="leftCollapse = !leftCollapse"></i>

View File

@@ -227,7 +227,7 @@
}, },
initEditor() { initEditor() {
this.editor = new WangEditor('#newPageContentDiv'); this.editor = new WangEditor('#newPageContentDiv');
this.editor.customConfig.uploadImgServer = process.env.VUE_APP_BASE_API + '/zyplayer-doc-wiki/common/wangEditor/upload'; this.editor.customConfig.uploadImgServer = process.env.VUE_APP_BASE_API + '/zyplayer-doc-wiki/page/file/wangEditor/upload';
this.editor.customConfig.zIndex = 100; this.editor.customConfig.zIndex = 100;
this.editor.customConfig.uploadFileName = 'files'; this.editor.customConfig.uploadFileName = 'files';
this.editor.customConfig.uploadImgMaxLength = 1; this.editor.customConfig.uploadImgMaxLength = 1;

View File

@@ -1,12 +1,12 @@
<template> <template>
<div style="padding: 10px;" class="page-show-vue"> <div class="page-show-vue">
<el-row type="border-card"> <el-row type="border-card">
<div class="wiki-title"> <div class="wiki-title">
{{wikiPage.name}} {{wikiPage.name}}
</div> </div>
<div class="wiki-author"> <div class="wiki-author">
<div> <div>
创建{{wikiPage.createUserName}} {{wikiPage.createTime}}   <span class="create-user-time">创建{{wikiPage.createUserName}} {{wikiPage.createTime}}</span>
<span v-show="wikiPage.updateUserName">修改{{wikiPage.updateUserName}} {{wikiPage.updateTime}}</span> <span v-show="wikiPage.updateUserName">修改{{wikiPage.updateUserName}} {{wikiPage.updateTime}}</span>
<div style="float: right;"> <div style="float: right;">
<el-upload v-if="wikiPageAuth.canUploadFile==1" <el-upload v-if="wikiPageAuth.canUploadFile==1"
@@ -171,7 +171,7 @@
commentTextInput: "", commentTextInput: "",
commentList: [], commentList: [],
recommentInfo: {}, recommentInfo: {},
uploadFileUrl: process.env.VUE_APP_BASE_API + '/zyplayer-doc-wiki/common/upload', uploadFileUrl: process.env.VUE_APP_BASE_API + '/zyplayer-doc-wiki/page/file/upload',
// 页面权限 // 页面权限
pageAuthDialogVisible: false, pageAuthDialogVisible: false,
pageAuthUserList: [], pageAuthUserList: [],
@@ -406,8 +406,8 @@
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
let param = {id: row.id, delFlag: 1}; let param = {id: row.id};
pageApi.updatePageFile(param).then(() => { pageApi.deletePageFile(param).then(() => {
let pageFileList = []; let pageFileList = [];
for (let i = 0; i < this.pageFileList.length; i++) { for (let i = 0; i < this.pageFileList.length; i++) {
if (this.pageFileList[i].id != row.id) { if (this.pageFileList[i].id != row.id) {
@@ -434,12 +434,13 @@
}, },
} }
} }
</script> </script>
<style> <style>
.page-show-vue {width: 80%; margin: 0 auto; padding: 20px 0;}
.page-show-vue .icon-collapse{float: left;font-size: 25px;color: #aaa;margin-top: 8px;cursor: pointer;} .page-show-vue .icon-collapse{float: left;font-size: 25px;color: #aaa;margin-top: 8px;cursor: pointer;}
.page-show-vue .icon-collapse:hover{color: #eee;} .page-show-vue .icon-collapse:hover{color: #eee;}
.page-show-vue .wiki-title{font-size: 20px;} .page-show-vue .wiki-title{font-size: 20px;text-align: center;font-weight: bold;}
.page-show-vue .create-user-time{margin-right: 20px;}
.page-show-vue .wiki-author{font-size: 14px;color: #888;padding: 20px 0;height: 40px;line-height: 40px;} .page-show-vue .wiki-author{font-size: 14px;color: #888;padding: 20px 0;height: 40px;line-height: 40px;}
.page-show-vue .wiki-content{font-size: 14px;} .page-show-vue .wiki-content{font-size: 14px;}
.page-show-vue .wiki-content.w-e-text{overflow-y: auto;} .page-show-vue .wiki-content.w-e-text{overflow-y: auto;}

View File

@@ -1,7 +1,5 @@
package com.zyplayer.doc.wiki.controller; package com.zyplayer.doc.wiki.controller;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.zyplayer.doc.core.annotation.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
@@ -14,20 +12,18 @@ import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
import com.zyplayer.doc.data.repository.manage.entity.WikiPageFile; import com.zyplayer.doc.data.repository.manage.entity.WikiPageFile;
import com.zyplayer.doc.data.repository.manage.entity.WikiSpace; import com.zyplayer.doc.data.repository.manage.entity.WikiSpace;
import com.zyplayer.doc.data.repository.manage.mapper.WikiPageFileMapper; import com.zyplayer.doc.data.repository.manage.mapper.WikiPageFileMapper;
import com.zyplayer.doc.data.repository.support.consts.DocAuthConst;
import com.zyplayer.doc.data.service.manage.UserInfoService; import com.zyplayer.doc.data.service.manage.UserInfoService;
import com.zyplayer.doc.data.service.manage.WikiPageFileService; import com.zyplayer.doc.data.service.manage.WikiPageFileService;
import com.zyplayer.doc.data.service.manage.WikiPageService; import com.zyplayer.doc.data.service.manage.WikiPageService;
import com.zyplayer.doc.data.service.manage.WikiSpaceService; import com.zyplayer.doc.data.service.manage.WikiSpaceService;
import com.zyplayer.doc.wiki.framework.consts.Const; import com.zyplayer.doc.wiki.framework.consts.Const;
import com.zyplayer.doc.wiki.framework.consts.SpaceType;
import com.zyplayer.doc.wiki.framework.consts.WikiAuthType;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -36,7 +32,8 @@ import java.io.FileInputStream;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.*; import java.util.List;
import java.util.Optional;
/** /**
* 文档控制器 * 文档控制器
@@ -49,9 +46,6 @@ import java.util.*;
public class WikiCommonController { public class WikiCommonController {
private static Logger logger = LoggerFactory.getLogger(WikiCommonController.class); private static Logger logger = LoggerFactory.getLogger(WikiCommonController.class);
@Value("${zyplayer.doc.wiki.upload-path:}")
private String uploadPath;
@Resource @Resource
WikiPageFileService wikiPageFileService; WikiPageFileService wikiPageFileService;
@Resource @Resource
@@ -77,67 +71,6 @@ public class WikiCommonController {
return DocResponseJson.ok(userInfoList); return DocResponseJson.ok(userInfoList);
} }
@AuthMan
@PostMapping("/wangEditor/upload")
public Map<String, Object> wangEditorUpload(WikiPageFile wikiPageFile, @RequestParam("files") MultipartFile file) {
this.upload(wikiPageFile, file);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("errno", "0");
resultMap.put("data", new String[]{wikiPageFile.getFileUrl()});
return resultMap;
}
@AuthMan
@PostMapping("/upload")
public ResponseJson<Object> upload(WikiPageFile wikiPageFile, @RequestParam("files") MultipartFile file) {
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
Long pageId = wikiPageFile.getPageId();
if (pageId != null && pageId > 0) {
WikiPage wikiPageSel = wikiPageService.getById(pageId);
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.haveCustomAuth(WikiAuthType.PAGE_FILE_UPLOAD.getName(), DocAuthConst.WIKI + pageId);
if (!pageAuth) {
return DocResponseJson.warn("您没有修改该文章附件的权限!");
}
}
}
String fileName = file.getOriginalFilename();
String fileSuffix = "";
if (fileName != null && fileName.lastIndexOf(".") >= 0) {
fileSuffix = fileName.substring(fileName.lastIndexOf("."));
}
String path = uploadPath + "/" + DateTime.now().toString("yyyy/MM/dd") + "/";
File newFile = new File(path);
if (!newFile.exists() && !newFile.mkdirs()) {
return DocResponseJson.warn("创建文件夹失败");
}
String simpleUUID = RandomUtil.simpleUUID();
path += simpleUUID + fileSuffix;
newFile = new File(path);
try {
file.transferTo(newFile);
} catch (Exception e) {
e.printStackTrace();
return DocResponseJson.warn("保存文件失败");
}
wikiPageFile.setUuid(simpleUUID);
wikiPageFile.setFileUrl(path);
wikiPageFile.setFileName(fileName);
wikiPageFile.setCreateTime(new Date());
wikiPageFile.setCreateUserId(currentUser.getUserId());
wikiPageFile.setCreateUserName(currentUser.getUsername());
wikiPageFile.setDelFlag(0);
wikiPageFileService.save(wikiPageFile);
wikiPageFile.setFileUrl("zyplayer-doc-wiki/common/file?uuid=" + wikiPageFile.getUuid());
return DocResponseJson.ok(wikiPageFile);
}
@GetMapping("/file") @GetMapping("/file")
public ResponseJson<Object> file(HttpServletResponse response, String uuid) { public ResponseJson<Object> file(HttpServletResponse response, String uuid) {
if (StringUtils.isBlank(uuid)) { if (StringUtils.isBlank(uuid)) {

View File

@@ -9,9 +9,10 @@ import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.*; import com.zyplayer.doc.data.repository.manage.entity.*;
import com.zyplayer.doc.data.repository.support.consts.DocAuthConst; import com.zyplayer.doc.data.repository.support.consts.DocAuthConst;
import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType;
import com.zyplayer.doc.data.repository.support.consts.UserMsgType;
import com.zyplayer.doc.data.service.manage.*; import com.zyplayer.doc.data.service.manage.*;
import com.zyplayer.doc.wiki.controller.vo.UserPageAuthVo; import com.zyplayer.doc.wiki.controller.vo.UserPageAuthVo;
import com.zyplayer.doc.wiki.framework.consts.SpaceType;
import com.zyplayer.doc.wiki.framework.consts.WikiAuthType; import com.zyplayer.doc.wiki.framework.consts.WikiAuthType;
import com.zyplayer.doc.wiki.service.WikiPageAuthService; import com.zyplayer.doc.wiki.service.WikiPageAuthService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
@@ -52,6 +53,8 @@ public class WikiPageAuthController {
AuthInfoService authInfoService; AuthInfoService authInfoService;
@Resource @Resource
WikiPageAuthService wikiPageAuthService; WikiPageAuthService wikiPageAuthService;
@Resource
UserMessageService userMessageService;
@PostMapping("/assign") @PostMapping("/assign")
public ResponseJson<List<WikiPageZan>> assign(Long pageId, String authList) { public ResponseJson<List<WikiPageZan>> assign(Long pageId, String authList) {
@@ -118,6 +121,12 @@ public class WikiPageAuthController {
} }
// 保存权限,重新登录后可用,后期可以考虑在这里直接修改缓存里的用户权限 // 保存权限,重新登录后可用,后期可以考虑在这里直接修改缓存里的用户权限
userAuthService.saveBatch(userAuthList); userAuthService.saveBatch(userAuthList);
// 给相关人发送消息
UserInfo userInfo = userInfoService.getById(authVo.getUserId());
UserMessage userMessage = userMessageService.createUserMessage(currentUser, pageId, wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_AUTH);
userMessage.setAffectUserId(userInfo.getId());
userMessage.setAffectUserName(userInfo.getUserName());
userMessageService.addWikiMessage(userMessage);
} }
return DocResponseJson.ok(); return DocResponseJson.ok();
} }

View File

@@ -6,9 +6,13 @@ import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.UserMessage;
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.entity.WikiPageComment; import com.zyplayer.doc.data.repository.manage.entity.WikiPageComment;
import com.zyplayer.doc.data.repository.manage.entity.WikiSpace; import com.zyplayer.doc.data.repository.manage.entity.WikiSpace;
import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType;
import com.zyplayer.doc.data.repository.support.consts.UserMsgType;
import com.zyplayer.doc.data.service.manage.UserMessageService;
import com.zyplayer.doc.data.service.manage.WikiPageCommentService; import com.zyplayer.doc.data.service.manage.WikiPageCommentService;
import com.zyplayer.doc.data.service.manage.WikiPageService; import com.zyplayer.doc.data.service.manage.WikiPageService;
import com.zyplayer.doc.data.service.manage.WikiSpaceService; import com.zyplayer.doc.data.service.manage.WikiSpaceService;
@@ -47,6 +51,8 @@ public class WikiPageCommentController {
@Resource @Resource
WikiPageService wikiPageService; WikiPageService wikiPageService;
@Resource @Resource
UserMessageService userMessageService;
@Resource
Mapper mapper; Mapper mapper;
@PostMapping("/list") @PostMapping("/list")
@@ -76,9 +82,9 @@ public class WikiPageCommentController {
@PostMapping("/delete") @PostMapping("/delete")
public ResponseJson<Object> delete(Long id) { public ResponseJson<Object> delete(Long id) {
WikiPageComment pageCommentSel = wikiPageCommentService.getById(id); WikiPageComment pageCommentSel = wikiPageCommentService.getById(id);
WikiPage wikiPageSel = wikiPageService.getById(pageCommentSel.getPageId());
DocUserDetails currentUser = DocUserUtil.getCurrentUser(); DocUserDetails currentUser = DocUserUtil.getCurrentUser();
if (!Objects.equals(pageCommentSel.getCreateUserId(), currentUser.getUserId())) { if (!Objects.equals(pageCommentSel.getCreateUserId(), currentUser.getUserId())) {
WikiPage wikiPageSel = wikiPageService.getById(pageCommentSel.getPageId());
if (!Objects.equals(currentUser.getUserId(), wikiPageSel.getCreateUserId())) { if (!Objects.equals(currentUser.getUserId(), wikiPageSel.getCreateUserId())) {
return DocResponseJson.warn("只有评论人或页面创建人才有权限删除此评论!"); return DocResponseJson.warn("只有评论人或页面创建人才有权限删除此评论!");
} }
@@ -87,6 +93,11 @@ public class WikiPageCommentController {
pageComment.setId(id); pageComment.setId(id);
pageComment.setDelFlag(1); pageComment.setDelFlag(1);
wikiPageCommentService.updateById(pageComment); wikiPageCommentService.updateById(pageComment);
// 给相关人发送消息
UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_COMMENT_DEL);
userMessage.setAffectUserId(wikiPageSel.getCreateUserId());
userMessage.setAffectUserName(wikiPageSel.getCreateUserName());
userMessageService.addWikiMessage(userMessage);
return DocResponseJson.ok(); return DocResponseJson.ok();
} }
@@ -128,6 +139,11 @@ public class WikiPageCommentController {
pageComment.setCreateUserName(currentUser.getUsername()); pageComment.setCreateUserName(currentUser.getUsername());
wikiPageCommentService.save(pageComment); wikiPageCommentService.save(pageComment);
} }
// 给相关人发送消息
UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_COMMENT);
userMessage.setAffectUserId(wikiPageSel.getCreateUserId());
userMessage.setAffectUserName(wikiPageSel.getCreateUserName());
userMessageService.addWikiMessage(userMessage);
return DocResponseJson.ok(pageComment); return DocResponseJson.ok(pageComment);
} }
} }

View File

@@ -14,6 +14,8 @@ import com.zyplayer.doc.data.repository.manage.mapper.WikiPageContentMapper;
import com.zyplayer.doc.data.repository.manage.mapper.WikiPageMapper; import com.zyplayer.doc.data.repository.manage.mapper.WikiPageMapper;
import com.zyplayer.doc.data.repository.manage.param.SearchByEsParam; import com.zyplayer.doc.data.repository.manage.param.SearchByEsParam;
import com.zyplayer.doc.data.repository.manage.vo.SpaceNewsVo; import com.zyplayer.doc.data.repository.manage.vo.SpaceNewsVo;
import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType;
import com.zyplayer.doc.data.repository.support.consts.UserMsgType;
import com.zyplayer.doc.data.service.elasticsearch.entity.EsWikiPage; import com.zyplayer.doc.data.service.elasticsearch.entity.EsWikiPage;
import com.zyplayer.doc.data.service.elasticsearch.service.EsWikiPageService; import com.zyplayer.doc.data.service.elasticsearch.service.EsWikiPageService;
import com.zyplayer.doc.data.service.elasticsearch.support.EsPage; import com.zyplayer.doc.data.service.elasticsearch.support.EsPage;
@@ -69,6 +71,8 @@ public class WikiPageController {
@Resource @Resource
WikiPageAuthService wikiPageAuthService; WikiPageAuthService wikiPageAuthService;
@Resource @Resource
UserMessageService userMessageService;
@Resource
Mapper mapper; Mapper mapper;
@Autowired(required = false) @Autowired(required = false)
EsWikiPageService esWikiPageService; EsWikiPageService esWikiPageService;
@@ -231,6 +235,9 @@ public class WikiPageController {
UpdateWrapper<WikiPageContent> wrapper = new UpdateWrapper<>(); UpdateWrapper<WikiPageContent> wrapper = new UpdateWrapper<>();
wrapper.eq("page_id", pageId); wrapper.eq("page_id", pageId);
wikiPageContentService.update(pageContent, wrapper); wikiPageContentService.update(pageContent, wrapper);
// 给相关人发送消息
UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_UPDATE);
userMessageService.addWikiMessage(userMessage);
} else { } else {
WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPage.getSpaceId()); WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPage.getSpaceId());
if (wikiSpaceSel == null) { if (wikiSpaceSel == null) {
@@ -258,6 +265,9 @@ public class WikiPageController {
pageContent.setCreateUserId(currentUser.getUserId()); pageContent.setCreateUserId(currentUser.getUserId());
pageContent.setCreateUserName(currentUser.getUsername()); pageContent.setCreateUserName(currentUser.getUsername());
wikiPageContentService.save(pageContent); wikiPageContentService.save(pageContent);
// 给相关人发送消息
UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPage.getId(), wikiPage.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_CREATE);
userMessageService.addWikiMessage(userMessage);
} }
// 保存到es // 保存到es
if (esWikiPageService.isOpen()) { if (esWikiPageService.isOpen()) {

View File

@@ -1,25 +1,37 @@
package com.zyplayer.doc.wiki.controller; package com.zyplayer.doc.wiki.controller;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.RandomUtil;
import com.zyplayer.doc.core.annotation.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.UserMessage;
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.entity.WikiPageFile; import com.zyplayer.doc.data.repository.manage.entity.WikiPageFile;
import com.zyplayer.doc.data.repository.manage.entity.WikiSpace; import com.zyplayer.doc.data.repository.manage.entity.WikiSpace;
import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType;
import com.zyplayer.doc.data.repository.support.consts.UserMsgType;
import com.zyplayer.doc.data.service.manage.UserMessageService;
import com.zyplayer.doc.data.service.manage.WikiPageFileService; import com.zyplayer.doc.data.service.manage.WikiPageFileService;
import com.zyplayer.doc.data.service.manage.WikiPageService; import com.zyplayer.doc.data.service.manage.WikiPageService;
import com.zyplayer.doc.data.service.manage.WikiSpaceService; import com.zyplayer.doc.data.service.manage.WikiSpaceService;
import com.zyplayer.doc.wiki.service.WikiPageAuthService; import com.zyplayer.doc.wiki.service.WikiPageAuthService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/** /**
* 文档控制器 * 文档控制器
@@ -33,6 +45,9 @@ import java.util.Date;
public class WikiPageFileController { public class WikiPageFileController {
private static Logger logger = LoggerFactory.getLogger(WikiPageFileController.class); private static Logger logger = LoggerFactory.getLogger(WikiPageFileController.class);
@Value("${zyplayer.doc.wiki.upload-path:}")
private String uploadPath;
@Resource @Resource
WikiPageFileService wikiPageFileService; WikiPageFileService wikiPageFileService;
@Resource @Resource
@@ -41,6 +56,8 @@ public class WikiPageFileController {
WikiPageService wikiPageService; WikiPageService wikiPageService;
@Resource @Resource
WikiPageAuthService wikiPageAuthService; WikiPageAuthService wikiPageAuthService;
@Resource
UserMessageService userMessageService;
// @PostMapping("/list") // @PostMapping("/list")
// public ResponseJson<List<WikiPageFile>> list(WikiPageFile wikiPageFile) { // public ResponseJson<List<WikiPageFile>> list(WikiPageFile wikiPageFile) {
@@ -55,38 +72,91 @@ public class WikiPageFileController {
// return DocResponseJson.ok(fileList); // return DocResponseJson.ok(fileList);
// } // }
@PostMapping("/update") @PostMapping("/delete")
public ResponseJson<Object> update(WikiPageFile wikiPageFile) { public ResponseJson<Object> delete(WikiPageFile wikiPageFile) {
DocUserDetails currentUser = DocUserUtil.getCurrentUser(); DocUserDetails currentUser = DocUserUtil.getCurrentUser();
Long id = wikiPageFile.getId(); Long id = wikiPageFile.getId();
Long pageId; if (id == null || id <= 0) {
if (id != null && id > 0) { return DocResponseJson.warn("需指定删除的附件!");
WikiPageFile pageFileSel = wikiPageFileService.getById(wikiPageFile.getId());
pageId = pageFileSel.getPageId();
} else if (wikiPageFile.getPageId() != null) {
pageId = wikiPageFile.getPageId();
} else {
return DocResponseJson.warn("需指定修改文件的所属页面!");
} }
WikiPage wikiPageSel = wikiPageService.getById(pageId); WikiPageFile pageFileSel = wikiPageFileService.getById(wikiPageFile.getId());
WikiPage wikiPageSel = wikiPageService.getById(pageFileSel.getPageId());
WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPageSel.getSpaceId()); WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPageSel.getSpaceId());
// 权限判断 // 权限判断
String canUploadFile = wikiPageAuthService.canUploadFile(wikiSpaceSel, pageId, currentUser.getUserId()); String canUploadFile = wikiPageAuthService.canUploadFile(wikiSpaceSel, pageFileSel.getPageId(), currentUser.getUserId());
if (canUploadFile != null) { if (canUploadFile != null) {
return DocResponseJson.warn(canUploadFile); return DocResponseJson.warn(canUploadFile);
} }
if (id != null && id > 0) { wikiPageFile.setDelFlag(1);
wikiPageFile.setUpdateUserId(currentUser.getUserId()); wikiPageFile.setUpdateUserId(currentUser.getUserId());
wikiPageFile.setUpdateUserName(currentUser.getUsername()); wikiPageFile.setUpdateUserName(currentUser.getUsername());
wikiPageFile.setUpdateTime(new Date()); wikiPageFile.setUpdateTime(new Date());
wikiPageFileService.updateById(wikiPageFile); wikiPageFileService.updateById(wikiPageFile);
} else { // 给相关人发送消息
UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_FILE_DEL);
userMessage.setAffectUserId(wikiPageSel.getCreateUserId());
userMessage.setAffectUserName(wikiPageSel.getCreateUserName());
userMessageService.addWikiMessage(userMessage);
return DocResponseJson.ok();
}
@PostMapping("/wangEditor/upload")
public Map<String, Object> wangEditorUpload(WikiPageFile wikiPageFile, @RequestParam("files") MultipartFile file) {
this.upload(wikiPageFile, file);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("errno", "0");
resultMap.put("data", new String[]{wikiPageFile.getFileUrl()});
return resultMap;
}
@PostMapping("/upload")
public ResponseJson<Object> upload(WikiPageFile wikiPageFile, @RequestParam("files") MultipartFile file) {
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
Long pageId = wikiPageFile.getPageId();
if (pageId == null || pageId <= 0) {
return DocResponseJson.warn("未指定附件关联的文档");
}
WikiPage wikiPageSel = wikiPageService.getById(pageId);
WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPageSel.getSpaceId());
// 权限判断
String canUploadFile = wikiPageAuthService.canUploadFile(wikiSpaceSel, wikiPageSel.getId(), currentUser.getUserId());
if (canUploadFile != null) {
return DocResponseJson.warn(canUploadFile);
}
String fileName = file.getOriginalFilename();
String fileSuffix = "";
if (fileName != null && fileName.lastIndexOf(".") >= 0) {
fileSuffix = fileName.substring(fileName.lastIndexOf("."));
}
String path = uploadPath + "/" + DateTime.now().toString("yyyy/MM/dd") + "/";
File newFile = new File(path);
if (!newFile.exists() && !newFile.mkdirs()) {
return DocResponseJson.warn("创建文件夹失败");
}
String simpleUUID = RandomUtil.simpleUUID();
path += simpleUUID + fileSuffix;
newFile = new File(path);
try {
file.transferTo(newFile);
} catch (Exception e) {
e.printStackTrace();
return DocResponseJson.warn("保存文件失败");
}
wikiPageFile.setUuid(simpleUUID);
wikiPageFile.setFileUrl(path);
wikiPageFile.setFileName(fileName);
wikiPageFile.setCreateTime(new Date()); wikiPageFile.setCreateTime(new Date());
wikiPageFile.setCreateUserId(currentUser.getUserId()); wikiPageFile.setCreateUserId(currentUser.getUserId());
wikiPageFile.setCreateUserName(currentUser.getUsername()); wikiPageFile.setCreateUserName(currentUser.getUsername());
wikiPageFile.setDelFlag(0);
wikiPageFileService.save(wikiPageFile); wikiPageFileService.save(wikiPageFile);
} wikiPageFile.setFileUrl("zyplayer-doc-wiki/common/file?uuid=" + wikiPageFile.getUuid());
return DocResponseJson.ok(); // 给相关人发送消息
UserMessage userMessage = userMessageService.createUserMessage(currentUser, pageId, wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_UPLOAD);
userMessage.setAffectUserId(wikiPageSel.getCreateUserId());
userMessage.setAffectUserName(wikiPageSel.getCreateUserName());
userMessageService.addWikiMessage(userMessage);
return DocResponseJson.ok(wikiPageFile);
} }
} }

View File

@@ -1,14 +1,18 @@
package com.zyplayer.doc.wiki.controller; package com.zyplayer.doc.wiki.controller;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.UserMessage;
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.entity.WikiPageZan; import com.zyplayer.doc.data.repository.manage.entity.WikiPageZan;
import com.zyplayer.doc.data.repository.manage.entity.WikiSpace; import com.zyplayer.doc.data.repository.manage.entity.WikiSpace;
import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType;
import com.zyplayer.doc.data.repository.support.consts.UserMsgType;
import com.zyplayer.doc.data.service.manage.UserMessageService;
import com.zyplayer.doc.data.service.manage.WikiPageService; import com.zyplayer.doc.data.service.manage.WikiPageService;
import com.zyplayer.doc.data.service.manage.WikiPageZanService; import com.zyplayer.doc.data.service.manage.WikiPageZanService;
import com.zyplayer.doc.data.service.manage.WikiSpaceService; import com.zyplayer.doc.data.service.manage.WikiSpaceService;
@@ -40,6 +44,8 @@ public class WikiPageZanController {
WikiSpaceService wikiSpaceService; WikiSpaceService wikiSpaceService;
@Resource @Resource
WikiPageService wikiPageService; WikiPageService wikiPageService;
@Resource
UserMessageService userMessageService;
@PostMapping("/list") @PostMapping("/list")
public ResponseJson<List<WikiPageZan>> list(WikiPageZan wikiPageZan) { public ResponseJson<List<WikiPageZan>> list(WikiPageZan wikiPageZan) {
@@ -78,6 +84,11 @@ public class WikiPageZanController {
return DocResponseJson.warn("您没有该空间的点赞权限!"); return DocResponseJson.warn("您没有该空间的点赞权限!");
} }
wikiPageZanService.zanPage(wikiPageZan); wikiPageZanService.zanPage(wikiPageZan);
// 给相关人发送消息
UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_ZAN);
userMessage.setAffectUserId(wikiPageSel.getCreateUserId());
userMessage.setAffectUserName(wikiPageSel.getCreateUserName());
userMessageService.addWikiMessage(userMessage);
return DocResponseJson.ok(); return DocResponseJson.ok();
} }
} }