!142 代码合并

Merge pull request !142 from MAC/develop
This commit is contained in:
MAC 2023-04-25 09:43:40 +00:00 committed by Gitee
commit 98c10c2c27
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
4 changed files with 73 additions and 44 deletions

View File

@ -214,18 +214,18 @@ public class FileDealComp {
* @param nodeNameQueue * @param nodeNameQueue
* @return * @return
*/ */
public TreeNode insertTreeNode(TreeNode treeNode, long id, String filePath, Queue<String> nodeNameQueue){ public TreeNode insertTreeNode(TreeNode treeNode, long id, String filePath, Queue<String> nodeNameQueue) {
List<TreeNode> childrenTreeNodes = treeNode.getChildren(); List<TreeNode> childrenTreeNodes = treeNode.getChildren();
String currentNodeName = nodeNameQueue.peek(); String currentNodeName = nodeNameQueue.peek();
if (currentNodeName == null){ if (currentNodeName == null) {
return treeNode; return treeNode;
} }
QiwenFile qiwenFile = new QiwenFile(filePath, currentNodeName, true); QiwenFile qiwenFile = new QiwenFile(filePath, currentNodeName, true);
filePath = qiwenFile.getPath(); filePath = qiwenFile.getPath();
if (!isExistPath(childrenTreeNodes, currentNodeName)){ //1判断有没有该子节点如果没有则插入 if (!isExistPath(childrenTreeNodes, currentNodeName)) { //1判断有没有该子节点如果没有则插入
//插入 //插入
TreeNode resultTreeNode = new TreeNode(); TreeNode resultTreeNode = new TreeNode();
@ -235,7 +235,7 @@ public class FileDealComp {
childrenTreeNodes.add(resultTreeNode); childrenTreeNodes.add(resultTreeNode);
}else{ //2如果有则跳过 } else { //2如果有则跳过
nodeNameQueue.poll(); nodeNameQueue.poll();
} }
@ -243,7 +243,7 @@ public class FileDealComp {
for (int i = 0; i < childrenTreeNodes.size(); i++) { for (int i = 0; i < childrenTreeNodes.size(); i++) {
TreeNode childrenTreeNode = childrenTreeNodes.get(i); TreeNode childrenTreeNode = childrenTreeNodes.get(i);
if (currentNodeName.equals(childrenTreeNode.getLabel())){ if (currentNodeName.equals(childrenTreeNode.getLabel())) {
childrenTreeNode = insertTreeNode(childrenTreeNode, id * 10, filePath, nodeNameQueue); childrenTreeNode = insertTreeNode(childrenTreeNode, id * 10, filePath, nodeNameQueue);
childrenTreeNodes.remove(i); childrenTreeNodes.remove(i);
childrenTreeNodes.add(childrenTreeNode); childrenTreeNodes.add(childrenTreeNode);
@ -251,7 +251,7 @@ public class FileDealComp {
} }
} }
}else{ } else {
treeNode.setChildren(childrenTreeNodes); treeNode.setChildren(childrenTreeNodes);
} }
@ -313,7 +313,7 @@ public class FileDealComp {
} }
public void deleteESByUserFileId(String userFileId) { public void deleteESByUserFileId(String userFileId) {
exec.execute(()->{ exec.execute(() -> {
try { try {
elasticsearchClient.delete(d -> d elasticsearchClient.delete(d -> d
.index("filesearch") .index("filesearch")
@ -328,17 +328,21 @@ public class FileDealComp {
/** /**
* 根据用户传入的参数判断是否有下载或者预览权限 * 根据用户传入的参数判断是否有下载或者预览权限
*
* @return * @return
*/ */
public boolean checkAuthDownloadAndPreview(String shareBatchNum, public boolean checkAuthDownloadAndPreview(String shareBatchNum,
String extractionCode, String extractionCode,
String token, String token,
String userFileId, String userFileIds,
Integer platform) { Integer platform) {
log.debug("权限检查开始shareBatchNum:{}, extractionCode:{}, token:{}, userFileId{}" , shareBatchNum, extractionCode, token, userFileId); log.debug("权限检查开始shareBatchNum:{}, extractionCode:{}, token:{}, userFileIds{}", shareBatchNum, extractionCode, token, userFileIds);
if (platform != null && platform == 2) { if (platform != null && platform == 2) {
return true; return true;
} }
String[] userFileIdArr = userFileIds.split(",");
for (String userFileId : userFileIdArr) {
UserFile userFile = userFileMapper.selectById(userFileId); UserFile userFile = userFileMapper.selectById(userFileId);
log.debug(JSON.toJSONString(userFile)); log.debug(JSON.toJSONString(userFile));
if ("undefined".equals(shareBatchNum) || StringUtils.isEmpty(shareBatchNum)) { if ("undefined".equals(shareBatchNum) || StringUtils.isEmpty(shareBatchNum)) {
@ -379,12 +383,15 @@ public class FileDealComp {
} }
} }
}
return true; return true;
} }
/** /**
* 拷贝文件 * 拷贝文件
* 场景修改的文件被多处引用时需要重新拷贝一份然后在新的基础上修改 * 场景修改的文件被多处引用时需要重新拷贝一份然后在新的基础上修改
*
* @param fileBean * @param fileBean
* @param userFile * @param userFile
* @return * @return

View File

@ -32,6 +32,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
"/user/login", "/user/login",
"/user/checkuserlogininfo", "/user/checkuserlogininfo",
"/filetransfer/downloadfile", "/filetransfer/downloadfile",
"/filetransfer/batchDownloadFile",
"/filetransfer/preview", "/filetransfer/preview",
"/share/sharefileList", "/share/sharefileList",
"/share/sharetype", "/share/sharetype",

View File

@ -146,7 +146,24 @@ public class FiletransferController {
@RequestMapping(value = "/batchDownloadFile", method = RequestMethod.GET) @RequestMapping(value = "/batchDownloadFile", method = RequestMethod.GET)
@MyLog(operation = "批量下载文件", module = CURRENT_MODULE) @MyLog(operation = "批量下载文件", module = CURRENT_MODULE)
@ResponseBody @ResponseBody
public void batchDownloadFile(HttpServletResponse httpServletResponse, BatchDownloadFileDTO batchDownloadFileDTO) { public void batchDownloadFile(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, BatchDownloadFileDTO batchDownloadFileDTO) {
Cookie[] cookieArr = httpServletRequest.getCookies();
String token = "";
if (cookieArr != null) {
for (Cookie cookie : cookieArr) {
if ("token".equals(cookie.getName())) {
token = cookie.getValue();
}
}
}
boolean authResult = fileDealComp.checkAuthDownloadAndPreview(batchDownloadFileDTO.getShareBatchNum(),
batchDownloadFileDTO.getExtractionCode(),
token,
batchDownloadFileDTO.getUserFileIds(), null);
if (!authResult) {
log.error("没有权限下载!!!");
return;
}
String files = batchDownloadFileDTO.getUserFileIds(); String files = batchDownloadFileDTO.getUserFileIds();
String[] userFileIdStrs = files.split(","); String[] userFileIdStrs = files.split(",");

View File

@ -8,5 +8,9 @@ import lombok.Data;
public class BatchDownloadFileDTO { public class BatchDownloadFileDTO {
@Schema(description="文件集合", required = true) @Schema(description="文件集合", required = true)
private String userFileIds; private String userFileIds;
@Schema(description="批次号")
private String shareBatchNum;
@Schema(description="提取码")
private String extractionCode;
} }