From 6b73b574359b664a656811557afaff48ff79a5c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=98=E5=BA=86=E5=90=89?= <51312040@qq.com> Date: Mon, 12 Jul 2021 15:12:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=8A=E4=BC=A0=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E6=A0=B9=E6=8D=AE=E4=BC=A0=E5=8F=82=E6=B8=85?= =?UTF-8?q?=E7=A9=BAbid=E4=B8=8B=E6=89=80=E6=9C=89=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../attachment/sdk/api/AttachmentClient.java | 16 ++++++++++++-- .../sdk/api/DefaultAttachmentClient.java | 22 +++++++++++++++---- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/AttachmentClient.java b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/AttachmentClient.java index 141e5be..7f48c9a 100644 --- a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/AttachmentClient.java +++ b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/AttachmentClient.java @@ -83,12 +83,24 @@ public interface AttachmentClient { /** * 上传资源文件 * - * @param bid - * @param file + * @param businessId + * @param filename + * @param array * @return */ Optional upload(String businessId, String filename, byte[] array); + /** + * 上传资源文件 + * + * @param businessId + * @param filename + * @param array + * @param only true:清空bid下所有文件,否则根据附件名称删除 + * @return + */ + Optional upload(String businessId, String filename, byte[] array, boolean only); + /** * 根据业务id删除附件 * diff --git a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java index 33855be..571cb6e 100644 --- a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java +++ b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java @@ -197,7 +197,7 @@ public class DefaultAttachmentClient implements AttachmentClient { */ @Override public Optional upload(@NotNull String businessId, @NotNull File file) { - removeDuplicateObject(businessId, file.getName()); + removeDuplicateObject(businessId, file.getName(), false); String res = documentCenterService.upload("ebtp-mall-cloud", businessId, fileConvertor.toMultipartFile(file)); @@ -214,7 +214,21 @@ public class DefaultAttachmentClient implements AttachmentClient { */ @Override public Optional upload(@NotNull String businessId, @NotNull String filename, @NotNull byte[] array) { - removeDuplicateObject(businessId, filename); + return this.upload(businessId, filename, array, false); + } + + /** + * 上传资源文件 + * + * @param businessId + * @param filename + * @param array + * @param only true:清空bid下所有文件,否则根据附件名称删除 + * @return + */ + @Override + public Optional upload(String businessId, String filename, byte[] array, boolean only) { + removeDuplicateObject(businessId, filename, only); String res = documentCenterService.upload("ebtp-mall-cloud", businessId, fileConvertor.toMultipartFile(filename, array)); @@ -300,12 +314,12 @@ public class DefaultAttachmentClient implements AttachmentClient { * @param businessId * @param filename */ - private void removeDuplicateObject(String businessId, String filename) { + private void removeDuplicateObject(String businessId, String filename, boolean only) { log.info("remove files {} in business: {} if exists", filename, businessId); Optional op = findByBusinessId(Arrays.asList(businessId)); op.ifPresent(detail -> { - detail.get(businessId).stream().filter(obj -> obj.getFilename().equals(filename)).forEach(obj -> { + detail.get(businessId).stream().filter(obj -> only || obj.getFilename().equals(filename)).forEach(obj -> { deleteByOid(obj.getId()); }); });