feat: (REQ-3540) wps编辑-oss的appcode/权限配置nacos

This commit is contained in:
xudawei 2025-03-18 16:42:17 +08:00
parent b160b76c22
commit 849d11e9e8
3 changed files with 102 additions and 15 deletions

View File

@ -0,0 +1,75 @@
package cn.axzo.nanopart.doc.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
/**
* doc配置权限
* @author xudawei@axzo.cn
* @date 2025/03/18
*/
@Data
@RefreshScope
@Configuration
@ConfigurationProperties(prefix = "docpermission")
public class DocPermissionProps {
/**
* 是否具有预览权限0- 1-
*/
@Value("${read:1}")
private Integer read;
/**
* 是否具有编辑权限0- 1-
*/
@Value("${update:1}")
private Integer update;
/**
* 是否具有下载文档权限0- 1-
*/
@Value("${download:1}")
private Integer download;
/**
* 是否具有重命名文档权限0- 1-
*/
@Value("${rename:1}")
private Integer rename;
/**
* 是否具有查看文档历史记录权限0- 1-
*/
@Value("${history:0}")
private Integer history;
/**
* 是否具有拷贝文档内容权限0- 1-
*/
@Value("${copy:0}")
private Integer copy;
/**
* 是否具有打印文档权限0- 1-
*/
@Value("${print:0}")
private Integer print;
/**
* 是否具有另存当前文档权限0- 1-该属性现阶段暂无相关入口开发者可不用关注
*/
@Value("${saveas:0}")
private Integer saveas;
/**
* 是否具有评论文档权限0- 1-
*/
@Value("${comment:0}")
private Integer comment;
}

View File

@ -10,9 +10,9 @@ import cn.axzo.nanopart.doc.api.wps.response.WpsFetchFileResponse;
import cn.axzo.nanopart.doc.api.wps.response.WpsPermissionResponse;
import cn.axzo.nanopart.doc.api.wps.response.WpsRenameResponse;
import cn.axzo.nanopart.doc.api.wps.response.WpsUsersResponse;
import cn.axzo.nanopart.doc.config.DocPermissionProps;
import cn.axzo.nanopart.doc.dao.IndexNodeDao;
import cn.axzo.nanopart.doc.entity.IndexNode;
import cn.axzo.nanopart.doc.file.index.domain.NameUsedException;
import cn.axzo.nanopart.doc.rpc.DocOssGateway;
import cn.axzo.nanopart.doc.rpc.DocUserProfileGateway;
import cn.axzo.oss.http.model.ApiSignUrlDownloadRequest;
@ -42,6 +42,7 @@ public class WpsBaseManager {
private final DocOssGateway docOssGateway;
private final DocUserProfileGateway docUserProfileGateway;
private final DocPermissionProps docPermissionProps;
/**
* 获取文件基础信息
* @param docCode 文件编码
@ -96,15 +97,15 @@ public class WpsBaseManager {
return WpsPermissionResponse.builder()
.personId(request.getPersonId())
.read(1)
.update(1)
.download(1)
.rename(1)
.history(0)
.copy(0)
.print(0)
.saveas(0)
.comment(0)
.read(docPermissionProps.getRead())
.update(docPermissionProps.getUpdate())
.download(docPermissionProps.getDownload())
.rename(docPermissionProps.getRename())
.history(docPermissionProps.getHistory())
.copy(docPermissionProps.getCopy())
.print(docPermissionProps.getPrint())
.saveas(docPermissionProps.getSaveas())
.comment(docPermissionProps.getComment())
.build();
}

View File

@ -10,11 +10,14 @@ import cn.axzo.nanopart.doc.dao.IndexNodeDao;
import cn.axzo.nanopart.doc.dao.TemplateDatabaseDao;
import cn.axzo.nanopart.doc.entity.IndexNode;
import cn.axzo.nanopart.doc.file.index.IndexManager;
import cn.axzo.nanopart.doc.file.mq.FileBroadcaster;
import cn.axzo.nanopart.doc.rpc.DocOssGateway;
import cn.axzo.oss.http.model.ApiSignUrlUploadRequest;
import cn.axzo.oss.http.model.ApiSignUrlUploadResponse;
import com.alibaba.excel.util.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
import java.util.HashMap;
@ -30,12 +33,20 @@ import java.util.Objects;
*/
@Component
@RequiredArgsConstructor
@RefreshScope
public class WpsEditManager {
private final IndexManager indexManager;
private final TemplateDatabaseDao templateDatabaseDao;
private final IndexNodeDao indexNodeDao;
private final DocOssGateway docOssGateway;
private final FileBroadcaster fileBroadcaster;
@Value("${doc.entWorkspaceDocOss.appCode:ent-workspace-doc}")
private String entWorkspaceDocOssAppCode;
@Value("${doc.entWorkspaceDocOss.bizScene:ent-workspace-doc}")
private String entWorkspaceDocOssBizScene;
/**
* 文档编辑
@ -65,8 +76,8 @@ public class WpsEditManager {
}
ApiSignUrlUploadResponse response = docOssGateway.signUrlFetchUpload(ApiSignUrlUploadRequest.builder()
.appCode("ent-workspace-doc")
.bizScene("ent-workspace-doc")
.appCode(entWorkspaceDocOssAppCode)
.bizScene(entWorkspaceDocOssBizScene)
.fileName(node.getName())
.fileKey(fileKey)
.build());
@ -99,13 +110,13 @@ public class WpsEditManager {
*/
public WpsEditUploadCompleteResponse uploadComplete(WpsEditUploadCompleteRequest request) {
IndexNode node = indexNodeDao.findOrNull(request.getDocCode());
//TODO: 调用FileBroadcaster#fireFileSizeChanged 通知文件大小变更
indexNodeDao.updateFileSize(request.getDocCode(), request.getSize());
fileBroadcaster.fireFileSizeChanged(request.getDocCode());
return WpsEditUploadCompleteResponse.builder()
.docCode(request.getDocCode())
.name(node.getName())
.version(node.getFileAttributes().getVersion())
.size(node.getSize())
.size(request.getSize())
.createTime(node.getCreateAt().getTime())
.modifyTime(node.getUpdateAt().getTime())
.modifierId(node.getFileAttributes().getModifierId())