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 03ff9bb..910affd 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 @@ -424,15 +424,11 @@ public class FishDraftDataController { @PostMapping("/deleteAttachment") @Operation(summary = "删除附件") - public ResponseResult deleteAttachment(@RequestParam String id, - @RequestHeader("token") String token) { + public ResponseResult deleteAttachment(@RequestParam String id) { if (id == null || id.isEmpty()) { return ResponseResult.error("附件ID不能为空"); } - if (token == null || token.isEmpty()) { - return ResponseResult.error("token不能为空"); - } - boolean result = attachmentUploadService.deleteFile(id, token); + boolean result = attachmentUploadService.deleteFile(id); if (result) { return ResponseResult.success("删除成功"); } else { diff --git a/backend/src/main/java/com/yfd/platform/data/service/AttachmentUploadService.java b/backend/src/main/java/com/yfd/platform/data/service/AttachmentUploadService.java index 5b50d41..1cd11a4 100644 --- a/backend/src/main/java/com/yfd/platform/data/service/AttachmentUploadService.java +++ b/backend/src/main/java/com/yfd/platform/data/service/AttachmentUploadService.java @@ -2,6 +2,7 @@ package com.yfd.platform.data.service; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -27,6 +28,10 @@ import java.util.stream.Collectors; @Slf4j @Service public class AttachmentUploadService { + + @Value("${attachment.token}") + private String token; + // 定义一个固定的线程池用于文件上传(建议根据服务器性能调整核心线程数) private static final ExecutorService UPLOAD_EXECUTOR = new ThreadPoolExecutor( 5, 10, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(100), @@ -261,9 +266,9 @@ public class AttachmentUploadService { } } - private static final String DELETE_URL = "https://211.99.26.225:12125/delete"; + private static final String DELETE_URL = "https://211.99.26.225:12125/FileDelete"; - public boolean deleteFile(String attachmentId, String token) { + public boolean deleteFile(String attachmentId) { if (attachmentId == null || attachmentId.isEmpty()) { log.warn("附件ID为空"); return false; @@ -285,7 +290,7 @@ public class AttachmentUploadService { .sslContext(sc) .build(); - String formData = "id=" + attachmentId; + String formData = "fileId=" + attachmentId; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(DELETE_URL)) 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 4dfbb00..792e877 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 @@ -1,10 +1,15 @@ package com.yfd.platform.data.service.impl; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.yfd.platform.data.domain.FishImportResult; import com.yfd.platform.data.domain.ImportTask; import com.yfd.platform.data.mapper.ImportTaskMapper; +import com.yfd.platform.data.service.AttachmentUploadService; import com.yfd.platform.data.service.IImportTaskService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -25,6 +30,12 @@ public class ImportTaskServiceImpl extends ServiceImpl queryPageList(Page page, String bizType, String status, String uploadUserId) { return this.page(page, this.lambdaQuery() @@ -125,7 +136,21 @@ public class ImportTaskServiceImpl extends ServiceImpl fileIds = StrUtil.split(vdpth, ","); + fileIds.forEach(fileId -> attachmentUploadService.deleteFile(fileId)); + } + String picpth = successRow.getData().getPicpth(); + if (StringUtils.hasText(picpth)) { + List fileIds = StrUtil.split(vdpth, ","); + fileIds.forEach(fileId -> attachmentUploadService.deleteFile(fileId)); + } + } + for (FishImportResult.FishImportRow failedRow : importResult.getFailedRows()) { + if (failedRow.getData()==null) { + continue; + } + String vdpth = failedRow.getData().getVdpth(); + if (StringUtils.hasText(vdpth)) { + List fileIds = StrUtil.split(vdpth, ","); + fileIds.forEach(fileId -> attachmentUploadService.deleteFile(fileId)); + } + String picpth = failedRow.getData().getPicpth(); + if (StringUtils.hasText(picpth)) { + List fileIds = StrUtil.split(vdpth, ","); + fileIds.forEach(fileId -> attachmentUploadService.deleteFile(fileId)); + } + } + + } catch (Exception e) { + e.printStackTrace(); + // ignore parse error + } + } importTask.setStatus("CANCELLED"); importTask.setErrorMsg("用户取消: " + operatorId); importTask.setUpdatedAt(new Date()); diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml index f3b5aa4..488b6fb 100644 --- a/backend/src/main/resources/application.yml +++ b/backend/src/main/resources/application.yml @@ -39,3 +39,6 @@ springdoc: enabled: true path: /swagger-ui.html packages-to-scan: com.yfd.platform + +attachment: + token: ${ATTACHMENT_TOKEN:qgcBkod25ngBa4wu8BtfCPYsJ7lQGVDoexH} \ No newline at end of file