From aa7f4ac0a0c66317ec07fc15735fa4c53e936b09 Mon Sep 17 00:00:00 2001 From: tangwei Date: Mon, 11 May 2026 13:09:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96json=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=94=B9=E6=88=90=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E8=A1=A8=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FishDraftDataController.java | 10 ++-- .../platform/data/domain/FishDraftData.java | 8 +++ .../data/domain/FishImportResult.java | 2 - .../yfd/platform/data/domain/ImportTask.java | 18 +++---- .../data/service/IFishImportService.java | 7 +-- .../service/impl/FishImportServiceImpl.java | 29 +++++++++- .../service/impl/ImportTaskServiceImpl.java | 53 ++++++++----------- 7 files changed, 74 insertions(+), 53 deletions(-) diff --git a/backend/src/main/java/com/yfd/platform/data/controller/FishDraftDataController.java b/backend/src/main/java/com/yfd/platform/data/controller/FishDraftDataController.java index 7bc2ff6..3133027 100644 --- a/backend/src/main/java/com/yfd/platform/data/controller/FishDraftDataController.java +++ b/backend/src/main/java/com/yfd/platform/data/controller/FishDraftDataController.java @@ -146,12 +146,6 @@ public class FishDraftDataController { String taskId = request.getTaskId(); ImportTask importTask = importTaskService.getById(taskId); FishImportResult importResult = importTaskService.buildImportResult(taskId); - Map imageFiles = null; - Map videoFiles = null; - if (importResult != null) { - imageFiles = importResult.getImageFiles(); - videoFiles = importResult.getVideoFiles(); - } if (importResult == null || importResult.getRows() == null) { return ResponseResult.error("导入数据不存在"); @@ -166,10 +160,12 @@ public class FishDraftDataController { data.setDeletedFlag(0); data.setLockFlag(0); data.setTm(date); + data.setVdpthList(row.getVdpthList()); + data.setPicpthList(row.getPicpthList()); fishDraftDataList.add(data); } boolean result = fishDraftDataService.saveBatch(fishDraftDataList); - fishImportService.processAttachmentsAsync(fishDraftDataList, imageFiles, videoFiles,importTask.getTempDir()); + fishImportService.processAttachmentsAsync(fishDraftDataList,importTask.getTempDir()); importTaskService.markSuccess(taskId); return result ? ResponseResult.success("保存成功") : ResponseResult.error("保存失败"); } diff --git a/backend/src/main/java/com/yfd/platform/data/domain/FishDraftData.java b/backend/src/main/java/com/yfd/platform/data/domain/FishDraftData.java index d452318..da33082 100644 --- a/backend/src/main/java/com/yfd/platform/data/domain/FishDraftData.java +++ b/backend/src/main/java/com/yfd/platform/data/domain/FishDraftData.java @@ -8,6 +8,8 @@ import lombok.EqualsAndHashCode; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; +import java.util.List; +import java.util.Map; /** *

@@ -266,4 +268,10 @@ public class FishDraftData implements Serializable { @TableField(exist = false) private String ftpName; + @TableField(exist = false) + private List> vdpthList; + + @TableField(exist = false) + private List> picpthList; + } \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/domain/FishImportResult.java b/backend/src/main/java/com/yfd/platform/data/domain/FishImportResult.java index 99eed19..64641db 100644 --- a/backend/src/main/java/com/yfd/platform/data/domain/FishImportResult.java +++ b/backend/src/main/java/com/yfd/platform/data/domain/FishImportResult.java @@ -21,8 +21,6 @@ public class FishImportResult { private List unrecognizedFields; private Map imageFiles; private Map videoFiles; -// public Map images; -// public Map videos; private String tempDir; private String excelFileName; private String excelFilePath; diff --git a/backend/src/main/java/com/yfd/platform/data/domain/ImportTask.java b/backend/src/main/java/com/yfd/platform/data/domain/ImportTask.java index 2893160..a132556 100644 --- a/backend/src/main/java/com/yfd/platform/data/domain/ImportTask.java +++ b/backend/src/main/java/com/yfd/platform/data/domain/ImportTask.java @@ -115,15 +115,15 @@ public class ImportTask implements Serializable { */ private String unrecognizedFields; - /** - * 图片文件映射JSON - */ - private String imageFilesJson; - - /** - * 视频文件映射JSON - */ - private String videoFilesJson; +// /** +// * 图片文件映射JSON +// */ +// private String imageFilesJson; +// +// /** +// * 视频文件映射JSON +// */ +// private String videoFilesJson; /** * 创建时间 diff --git a/backend/src/main/java/com/yfd/platform/data/service/IFishImportService.java b/backend/src/main/java/com/yfd/platform/data/service/IFishImportService.java index c78bdc5..4862f01 100644 --- a/backend/src/main/java/com/yfd/platform/data/service/IFishImportService.java +++ b/backend/src/main/java/com/yfd/platform/data/service/IFishImportService.java @@ -1,5 +1,6 @@ package com.yfd.platform.data.service; +import com.yfd.platform.data.domain.FishDraftData; import com.yfd.platform.data.domain.FishImportRequest; import com.yfd.platform.data.domain.FishImportResult; import com.yfd.platform.data.utils.ZipFileUtil; @@ -7,6 +8,8 @@ import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.InputStream; +import java.util.List; +import java.util.Map; /** *

@@ -52,8 +55,6 @@ public interface IFishImportService { void processAttachments(FishImportResult result, ZipFileUtil.ZipContent zipContent); - void processAttachmentsAsync(java.util.List dataList, - java.util.Map imageFiles, - java.util.Map videoFiles, + void processAttachmentsAsync(List dataList, String tempDir); } \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/service/impl/FishImportServiceImpl.java b/backend/src/main/java/com/yfd/platform/data/service/impl/FishImportServiceImpl.java index a7e79b2..4dbb068 100644 --- a/backend/src/main/java/com/yfd/platform/data/service/impl/FishImportServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/data/service/impl/FishImportServiceImpl.java @@ -1494,8 +1494,6 @@ public class FishImportServiceImpl implements IFishImportService { @Override public void processAttachmentsAsync(List dataList, - Map imageFiles, - Map videoFiles, String tempDir) { if (dataList == null || dataList.isEmpty()) { return; @@ -1513,6 +1511,12 @@ public class FishImportServiceImpl implements IFishImportService { log.error("数据不完整, 忽略处理"); return; } + List> vdpthList = data.getVdpthList(); + List> picpthList = data.getPicpthList(); + + Map videoFiles = buildFileMap(vdpthList, tempDir, "videos"); + Map imageFiles = buildFileMap(picpthList, tempDir, "images"); + if (StringUtils.hasText(vdpth) && videoFiles != null && !videoFiles.isEmpty()) { String uploadedVdpth = uploadVideoFilesAsync(vdpth, videoFiles); if (uploadedVdpth != null) { @@ -1554,6 +1558,27 @@ public class FishImportServiceImpl implements IFishImportService { }); } + + private Map buildFileMap(List> fileList, String tempDir, String subDir) { + if (fileList == null || fileList.isEmpty()) { + return null; + } + + Map fileMap = new HashMap<>(); + String baseDir = tempDir + File.separator + subDir + File.separator; + + for (Map item : fileList) { + String name = item.get("name"); + String value = item.get("value"); + if (name != null && value != null) { + fileMap.put(name, baseDir + value); + } + } + + return fileMap.isEmpty() ? null : fileMap; + } + + private String uploadVideoFilesAsync(String videoNames, Map videoMap) { String[] fileNames = videoNames.split(";"); List attachmentIds = new ArrayList<>(); diff --git a/backend/src/main/java/com/yfd/platform/data/service/impl/ImportTaskServiceImpl.java b/backend/src/main/java/com/yfd/platform/data/service/impl/ImportTaskServiceImpl.java index e03544f..2fdfadb 100644 --- a/backend/src/main/java/com/yfd/platform/data/service/impl/ImportTaskServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/data/service/impl/ImportTaskServiceImpl.java @@ -186,19 +186,25 @@ public class ImportTaskServiceImpl extends ServiceImpl { + try { + FileUtil.del(temp); + log.info("异步删除临时目录成功: {}", temp); + } catch (Exception e) { + log.error("异步删除临时目录失败: {}", temp, e); + } + }); + } + + return result; } @Override @@ -230,12 +236,12 @@ public class ImportTaskServiceImpl extends ServiceImpl imageFiles = objectMapper.readValue( - importTask.getImageFilesJson(), new TypeReference>() {}); - result.setImageFiles(imageFiles); - } - if (importTask.getVideoFilesJson() != null && !importTask.getVideoFilesJson().isEmpty()) { - Map videoFiles = objectMapper.readValue( - importTask.getVideoFilesJson(), new TypeReference>() {}); - result.setVideoFiles(videoFiles); - } - } catch (Exception e) { - log.error("解析文件映射JSON失败, taskId: {}", taskId, e); - } List rows = importTaskRowMapper.selectByTaskId(taskId); if (rows != null && !rows.isEmpty()) { @@ -409,7 +401,8 @@ public class ImportTaskServiceImpl extends ServiceImpl> vdpthList = objectMapper.readValue( - row.getVdpthListJson(), new TypeReference>>() {}); + row.getVdpthListJson(), new TypeReference<>() { + }); importRow.setVdpthList(vdpthList); } catch (Exception e) { log.error("解析视频列表JSON失败, rowId: {}", row.getId(), e);