优化wiki文档上传,增加消息提醒功能
This commit is contained in:
@@ -52,5 +52,10 @@
|
|||||||
<artifactId>pagehelper</artifactId>
|
<artifactId>pagehelper</artifactId>
|
||||||
<version>${pagehelper.version}</version>
|
<version>${pagehelper.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-core</artifactId>
|
||||||
|
<version>3.3.0</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -1,214 +1,222 @@
|
|||||||
package com.zyplayer.doc.core.json;
|
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.github.pagehelper.PageInfo;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.Date;
|
import java.io.IOException;
|
||||||
|
import java.util.Date;
|
||||||
/**
|
|
||||||
* 文档返回数据格式
|
/**
|
||||||
*
|
* 文档返回数据格式
|
||||||
* @author 暮光:城中城
|
*
|
||||||
* @since 2018年8月21日
|
* @author 暮光:城中城
|
||||||
*/
|
* @since 2018年8月21日
|
||||||
public class DocResponseJson<T> implements ResponseJson<T> {
|
*/
|
||||||
private static SerializeConfig mapping = new SerializeConfig();
|
public class DocResponseJson<T> implements ResponseJson<T> {
|
||||||
static {
|
private static SerializeConfig mapping = new SerializeConfig();
|
||||||
mapping.put(Date.class, new SimpleDateFormatSerializer("yyyy-MM-dd HH:mm:ss"));
|
static {
|
||||||
}
|
mapping.put(Date.class, new SimpleDateFormatSerializer("yyyy-MM-dd HH:mm:ss"));
|
||||||
@ApiModelProperty(value = "状态码")
|
}
|
||||||
private Integer errCode;
|
@ApiModelProperty(value = "状态码")
|
||||||
@ApiModelProperty(value = "返回值说明")
|
private Integer errCode;
|
||||||
private String errMsg;
|
@ApiModelProperty(value = "返回值说明")
|
||||||
@ApiModelProperty(value = "返回数据")
|
private String errMsg;
|
||||||
private Object data;
|
@ApiModelProperty(value = "返回数据")
|
||||||
@ApiModelProperty(value = "总数")
|
private Object data;
|
||||||
private Long total;
|
@ApiModelProperty(value = "总数")
|
||||||
@ApiModelProperty(value = "当前页数")
|
private Long total;
|
||||||
private Integer pageNum;
|
@ApiModelProperty(value = "当前页数")
|
||||||
@ApiModelProperty(value = "每页条数")
|
private Integer pageNum;
|
||||||
private Integer pageSize;
|
@ApiModelProperty(value = "每页条数")
|
||||||
@ApiModelProperty(value = "总页数")
|
private Integer pageSize;
|
||||||
private Integer totalPage;
|
@ApiModelProperty(value = "总页数")
|
||||||
|
private Integer totalPage;
|
||||||
public DocResponseJson() {
|
|
||||||
this.errCode = 200;
|
public DocResponseJson() {
|
||||||
}
|
this.errCode = 200;
|
||||||
|
}
|
||||||
public DocResponseJson(Object data) {
|
|
||||||
this.setData(data);
|
public DocResponseJson(Object data) {
|
||||||
this.errCode = 200;
|
this.setData(data);
|
||||||
}
|
this.errCode = 200;
|
||||||
|
}
|
||||||
public DocResponseJson(int errCode, String errMsg) {
|
|
||||||
super();
|
public DocResponseJson(int errCode, String errMsg) {
|
||||||
this.errCode = errCode;
|
super();
|
||||||
this.errMsg = errMsg;
|
this.errCode = errCode;
|
||||||
}
|
this.errMsg = errMsg;
|
||||||
|
}
|
||||||
public DocResponseJson(int errCode, String errMsg, Object data) {
|
|
||||||
super();
|
public DocResponseJson(int errCode, String errMsg, Object data) {
|
||||||
this.setData(data);
|
super();
|
||||||
this.errCode = errCode;
|
this.setData(data);
|
||||||
this.errMsg = errMsg;
|
this.errCode = errCode;
|
||||||
}
|
this.errMsg = errMsg;
|
||||||
|
}
|
||||||
public DocResponseJson(Integer errCode) {
|
|
||||||
super();
|
public DocResponseJson(Integer errCode) {
|
||||||
this.errCode = errCode;
|
super();
|
||||||
}
|
this.errCode = errCode;
|
||||||
|
}
|
||||||
public Integer getErrCode() {
|
|
||||||
return errCode;
|
public Integer getErrCode() {
|
||||||
}
|
return errCode;
|
||||||
|
}
|
||||||
public void setErrCode(Integer errCode) {
|
|
||||||
this.errCode = errCode;
|
public void setErrCode(Integer errCode) {
|
||||||
}
|
this.errCode = errCode;
|
||||||
|
}
|
||||||
public String getErrMsg() {
|
|
||||||
return errMsg;
|
public String getErrMsg() {
|
||||||
}
|
return errMsg;
|
||||||
|
}
|
||||||
public void setErrMsg(String errMsg) {
|
|
||||||
this.errMsg = errMsg;
|
public void setErrMsg(String errMsg) {
|
||||||
}
|
this.errMsg = errMsg;
|
||||||
|
}
|
||||||
public Long getTotal() {
|
|
||||||
return total;
|
public Long getTotal() {
|
||||||
}
|
return total;
|
||||||
|
}
|
||||||
public void setTotal(Long total) {
|
|
||||||
this.total = total;
|
public void setTotal(Long total) {
|
||||||
}
|
this.total = total;
|
||||||
|
}
|
||||||
public Integer getPageNum() {
|
|
||||||
return pageNum;
|
public Integer getPageNum() {
|
||||||
}
|
return pageNum;
|
||||||
|
}
|
||||||
public void setPageNum(Integer pageNum) {
|
|
||||||
this.pageNum = pageNum;
|
public void setPageNum(Integer pageNum) {
|
||||||
}
|
this.pageNum = pageNum;
|
||||||
|
}
|
||||||
public Integer getPageSize() {
|
|
||||||
return pageSize;
|
public Integer getPageSize() {
|
||||||
}
|
return pageSize;
|
||||||
|
}
|
||||||
public void setPageSize(Integer pageSize) {
|
|
||||||
this.pageSize = pageSize;
|
public void setPageSize(Integer pageSize) {
|
||||||
}
|
this.pageSize = pageSize;
|
||||||
|
}
|
||||||
public Integer getTotalPage() {
|
|
||||||
return totalPage;
|
public Integer getTotalPage() {
|
||||||
}
|
return totalPage;
|
||||||
|
}
|
||||||
public void setTotalPage(Integer totalPage) {
|
|
||||||
this.totalPage = totalPage;
|
public void setTotalPage(Integer totalPage) {
|
||||||
}
|
this.totalPage = totalPage;
|
||||||
|
}
|
||||||
public Object getData() {
|
|
||||||
return data;
|
public Object getData() {
|
||||||
}
|
return data;
|
||||||
|
}
|
||||||
public void setData(Object data) {
|
|
||||||
if (null != data) {
|
public void setData(Object data) {
|
||||||
if (data instanceof PageInfo) {
|
if (null != data) {
|
||||||
PageInfo<?> pageInfo = (PageInfo<?>) data;
|
if (data instanceof PageInfo) {
|
||||||
this.data = pageInfo.getList();
|
PageInfo<?> pageInfo = (PageInfo<?>) data;
|
||||||
this.total = pageInfo.getTotal();
|
this.data = pageInfo.getList();
|
||||||
this.pageNum = pageInfo.getPageNum();
|
this.total = pageInfo.getTotal();
|
||||||
this.pageSize = pageInfo.getPageSize();
|
this.pageNum = pageInfo.getPageNum();
|
||||||
this.totalPage = pageInfo.getPages();
|
this.pageSize = pageInfo.getPageSize();
|
||||||
} else {
|
this.totalPage = pageInfo.getPages();
|
||||||
this.data = data;
|
} 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 {
|
||||||
* @author 暮光:城中城
|
this.data = data;
|
||||||
* @since 2018年8月7日
|
}
|
||||||
* @return
|
}
|
||||||
*/
|
}
|
||||||
public static <T> DocResponseJson<T> warn(String errMsg) {
|
|
||||||
return new DocResponseJson<T>(300, errMsg);
|
/**
|
||||||
}
|
* 提示语
|
||||||
|
*
|
||||||
/**
|
* @author 暮光:城中城
|
||||||
* 错误
|
* @since 2018年8月7日
|
||||||
*
|
* @return
|
||||||
* @author 暮光:城中城
|
*/
|
||||||
* @since 2018年8月7日
|
public static <T> DocResponseJson<T> warn(String errMsg) {
|
||||||
* @return
|
return new DocResponseJson<T>(300, errMsg);
|
||||||
*/
|
}
|
||||||
public static <T> DocResponseJson<T> error(String errMsg) {
|
|
||||||
return new DocResponseJson<T>(500, errMsg);
|
/**
|
||||||
}
|
* 错误
|
||||||
|
*
|
||||||
/**
|
* @author 暮光:城中城
|
||||||
* 失败
|
* @since 2018年8月7日
|
||||||
*
|
* @return
|
||||||
* @author 暮光:城中城
|
*/
|
||||||
* @since 2018年8月7日
|
public static <T> DocResponseJson<T> error(String errMsg) {
|
||||||
* @return
|
return new DocResponseJson<T>(500, errMsg);
|
||||||
*/
|
}
|
||||||
public static <T> DocResponseJson<T> failure(int errCode, String errMsg) {
|
|
||||||
return new DocResponseJson<T>(errCode, errMsg);
|
/**
|
||||||
}
|
* 失败
|
||||||
|
*
|
||||||
/**
|
* @author 暮光:城中城
|
||||||
* 成功的返回方法
|
* @since 2018年8月7日
|
||||||
*
|
* @return
|
||||||
* @author 暮光:城中城
|
*/
|
||||||
* @since 2018年8月7日
|
public static <T> DocResponseJson<T> failure(int errCode, String errMsg) {
|
||||||
* @return
|
return new DocResponseJson<T>(errCode, errMsg);
|
||||||
*/
|
}
|
||||||
public static <T> DocResponseJson<T> ok() {
|
|
||||||
return new DocResponseJson<>();
|
/**
|
||||||
}
|
* 成功的返回方法
|
||||||
|
*
|
||||||
/**
|
* @author 暮光:城中城
|
||||||
* 成功的返回方法
|
* @since 2018年8月7日
|
||||||
*
|
* @return
|
||||||
* @author 暮光:城中城
|
*/
|
||||||
* @since 2018年8月7日
|
public static <T> DocResponseJson<T> ok() {
|
||||||
* @return
|
return new DocResponseJson<>();
|
||||||
*/
|
}
|
||||||
public static <T> DocResponseJson<T> ok(Object data) {
|
|
||||||
if (data == null) {
|
/**
|
||||||
return DocResponseJson.ok();
|
* 成功的返回方法
|
||||||
}
|
*
|
||||||
DocResponseJson<T> responseJson = new DocResponseJson<>();
|
* @author 暮光:城中城
|
||||||
responseJson.setData(data);
|
* @since 2018年8月7日
|
||||||
return responseJson;
|
* @return
|
||||||
}
|
*/
|
||||||
|
public static <T> DocResponseJson<T> ok(Object data) {
|
||||||
public String toJson() {
|
if (data == null) {
|
||||||
return JSON.toJSONString(this, mapping);
|
return DocResponseJson.ok();
|
||||||
}
|
}
|
||||||
|
DocResponseJson<T> responseJson = new DocResponseJson<>();
|
||||||
public void send(HttpServletResponse response) {
|
responseJson.setData(data);
|
||||||
try {
|
return responseJson;
|
||||||
response.setStatus(200);
|
}
|
||||||
response.setContentType("application/json");
|
|
||||||
response.setCharacterEncoding("UTF-8");
|
public String toJson() {
|
||||||
response.setHeader("Cache-Control", "no-cache, must-revalidate");
|
return JSON.toJSONString(this, mapping);
|
||||||
response.getWriter().write(toJson());
|
}
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
public void send(HttpServletResponse response) {
|
||||||
}
|
try {
|
||||||
}
|
response.setStatus(200);
|
||||||
|
response.setContentType("application/json");
|
||||||
@Override
|
response.setCharacterEncoding("UTF-8");
|
||||||
public String toString() {
|
response.setHeader("Cache-Control", "no-cache, must-revalidate");
|
||||||
return "DefaultResponseJson [errCode=" + errCode + ", errMsg=" + errMsg + ", data=" + data + "]";
|
response.getWriter().write(toJson());
|
||||||
}
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "DefaultResponseJson [errCode=" + errCode + ", errMsg=" + errMsg + ", data=" + data + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -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"));
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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();
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
@@ -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()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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>
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
145
zyplayer-doc-ui/wiki-ui/package-lock.json
generated
145
zyplayer-doc-ui/wiki-ui/package-lock.json
generated
@@ -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": {
|
||||||
|
|||||||
@@ -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)});
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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)});
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;}
|
||||||
|
|||||||
@@ -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)) {
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()) {
|
||||||
|
|||||||
@@ -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();
|
WikiPageFile pageFileSel = wikiPageFileService.getById(wikiPageFile.getId());
|
||||||
} else if (wikiPageFile.getPageId() != null) {
|
WikiPage wikiPageSel = wikiPageService.getById(pageFileSel.getPageId());
|
||||||
pageId = wikiPageFile.getPageId();
|
WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPageSel.getSpaceId());
|
||||||
} else {
|
// 权限判断
|
||||||
return DocResponseJson.warn("需指定修改文件的所属页面!");
|
String canUploadFile = wikiPageAuthService.canUploadFile(wikiSpaceSel, pageFileSel.getPageId(), currentUser.getUserId());
|
||||||
|
if (canUploadFile != null) {
|
||||||
|
return DocResponseJson.warn(canUploadFile);
|
||||||
|
}
|
||||||
|
wikiPageFile.setDelFlag(1);
|
||||||
|
wikiPageFile.setUpdateUserId(currentUser.getUserId());
|
||||||
|
wikiPageFile.setUpdateUserName(currentUser.getUsername());
|
||||||
|
wikiPageFile.setUpdateTime(new Date());
|
||||||
|
wikiPageFileService.updateById(wikiPageFile);
|
||||||
|
// 给相关人发送消息
|
||||||
|
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);
|
WikiPage wikiPageSel = wikiPageService.getById(pageId);
|
||||||
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, wikiPageSel.getId(), currentUser.getUserId());
|
||||||
if (canUploadFile != null) {
|
if (canUploadFile != null) {
|
||||||
return DocResponseJson.warn(canUploadFile);
|
return DocResponseJson.warn(canUploadFile);
|
||||||
}
|
}
|
||||||
if (id != null && id > 0) {
|
String fileName = file.getOriginalFilename();
|
||||||
wikiPageFile.setUpdateUserId(currentUser.getUserId());
|
String fileSuffix = "";
|
||||||
wikiPageFile.setUpdateUserName(currentUser.getUsername());
|
if (fileName != null && fileName.lastIndexOf(".") >= 0) {
|
||||||
wikiPageFile.setUpdateTime(new Date());
|
fileSuffix = fileName.substring(fileName.lastIndexOf("."));
|
||||||
wikiPageFileService.updateById(wikiPageFile);
|
|
||||||
} else {
|
|
||||||
wikiPageFile.setCreateTime(new Date());
|
|
||||||
wikiPageFile.setCreateUserId(currentUser.getUserId());
|
|
||||||
wikiPageFile.setCreateUserName(currentUser.getUsername());
|
|
||||||
wikiPageFileService.save(wikiPageFile);
|
|
||||||
}
|
}
|
||||||
return DocResponseJson.ok();
|
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());
|
||||||
|
// 给相关人发送消息
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user