From 63bab38f8b6d9656c03d8e813c05ced8094a836b Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Tue, 16 Sep 2025 10:47:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6=E8=AE=BF?= =?UTF-8?q?=E9=97=AE=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ProductScreenImpl.java | 46 ++++++++++++------- .../service/impl/ProductServiceImpl.java | 25 +++++----- .../java/com/bonus/file/minio/MinioUtil.java | 3 +- 3 files changed, 44 insertions(+), 30 deletions(-) diff --git a/bonus-business/src/main/java/com/bonus/business/service/impl/ProductScreenImpl.java b/bonus-business/src/main/java/com/bonus/business/service/impl/ProductScreenImpl.java index a75f3e5..1b48f87 100644 --- a/bonus-business/src/main/java/com/bonus/business/service/impl/ProductScreenImpl.java +++ b/bonus-business/src/main/java/com/bonus/business/service/impl/ProductScreenImpl.java @@ -10,6 +10,7 @@ import com.bonus.business.service.ProductScreenService; import com.bonus.common.config.MinioConfig; import com.bonus.common.core.domain.AjaxResult; import com.bonus.common.utils.StringUtils; +import com.bonus.file.minio.MinioUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -31,6 +32,9 @@ public class ProductScreenImpl implements ProductScreenService { @Resource private MinioConfig minioConfig; + @Autowired + public MinioUtil minioUtil; + @Override public AjaxResult getProductList(TbProduct product) { @@ -38,7 +42,8 @@ public class ProductScreenImpl implements ProductScreenService { List list=mapper.getProductList(product); if(StringUtils.isNotEmpty(list)){ list.forEach(vo->{ - vo.setLinkImage(minioConfig.getUrl()+"/"+minioConfig.getBucketName()+vo.getLinkImage()); + String url = minioUtil.getFileUrl(minioConfig.getBucketName(),vo.getLinkImage(),60*60*12); + vo.setLinkImage(url); }); } return AjaxResult.success(list); @@ -60,27 +65,20 @@ public class ProductScreenImpl implements ProductScreenService { TbProduct vo=mapper.getProductDetails(product); if(vo!=null){ //封面图 - vo.setLinkImage(minioConfig.getUrl()+"/"+minioConfig.getBucketName()+vo.getLinkImage()); - List productCases=productMapper.getProductCaseList(product.getId()); - for (TbProductCase productCase:productCases) { - //产品案例 - List caseImages=productMapper.getCaseImageByTable(productCase.getId(),"tb_product_case"); - if(StringUtils.isNotEmpty(caseImages)){ - caseImages.forEach(image->{ - image.setUrl(minioConfig.getUrl()+"/"+image.getBucketName()+image.getFilePath()); - }); - productCase.setImageList(caseImages); - } - } - vo.setList(productCases); + String url = minioUtil.getFileUrl(minioConfig.getBucketName(),vo.getLinkImage(),60*60*12); + vo.setLinkImage(url); + // vo.setLinkImage(minioConfig.getUrl()+"/"+minioConfig.getBucketName()+vo.getLinkImage()); + getProductDetails(product, vo, productMapper, minioUtil); //查询 宣传手册和宣传视频 List list=mapper.getMaterialList(vo); List videoList=new ArrayList<>(); List fileList=new ArrayList<>(); if(StringUtils.isNotEmpty(list)){ list.forEach(vo1->{ - vo1.setImage(minioConfig.getUrl()+"/"+minioConfig.getBucketName()+vo1.getImage()); - vo1.setUrl(minioConfig.getUrl()+"/"+minioConfig.getBucketName()+vo1.getFilePath()); + String imageUlr = minioUtil.getFileUrl(minioConfig.getBucketName(),vo1.getImage(),60*60*12); + String path = minioUtil.getFileUrl(minioConfig.getBucketName(),vo1.getFilePath(),60*60*12); + vo1.setImage(imageUlr); + vo1.setUrl(path); if("0".equals(vo1.getFileType())){ videoList.add(vo1); }else { @@ -97,4 +95,20 @@ public class ProductScreenImpl implements ProductScreenService { } return AjaxResult.success(product); } + + public static void getProductDetails(TbProduct product, TbProduct vo, ProductMapper productMapper, MinioUtil minioUtil) { + List productCases= productMapper.getProductCaseList(product.getId()); + for (TbProductCase productCase:productCases) { + //产品案例 + List caseImages= productMapper.getCaseImageByTable(productCase.getId(),"tb_product_case"); + if(StringUtils.isNotEmpty(caseImages)){ + caseImages.forEach(image->{ + String path = minioUtil.getFileUrl(image.getBucketName(),image.getFilePath(),60*60*12); + image.setUrl(path); + }); + productCase.setImageList(caseImages); + } + } + vo.setList(productCases); + } } diff --git a/bonus-business/src/main/java/com/bonus/business/service/impl/ProductServiceImpl.java b/bonus-business/src/main/java/com/bonus/business/service/impl/ProductServiceImpl.java index 2cc929e..9c4eb68 100644 --- a/bonus-business/src/main/java/com/bonus/business/service/impl/ProductServiceImpl.java +++ b/bonus-business/src/main/java/com/bonus/business/service/impl/ProductServiceImpl.java @@ -11,6 +11,7 @@ import com.bonus.common.core.domain.AjaxResult; import com.bonus.common.utils.DateUtils; import com.bonus.common.utils.SecurityUtils; import com.bonus.common.utils.StringUtils; +import com.bonus.file.minio.MinioUtil; import com.bonus.file.service.FileUploadService; import com.google.common.collect.Maps; import com.google.common.collect.Table; @@ -40,6 +41,10 @@ public class ProductServiceImpl implements ProductService { @Resource private MinioConfig minioConfig; + @Autowired + public MinioUtil minioUtil; + + public String day= DateUtils.getCurrentYear(); public String month=DateUtils.getCurrentMonth(); @@ -56,7 +61,9 @@ public class ProductServiceImpl implements ProductService { List list=mapper.selectProductList(product); if(StringUtils.isNotEmpty(list)){ list.forEach(vo->{ - vo.setLinkImage(minioConfig.getUrl()+"/"+minioConfig.getBucketName()+vo.getLinkImage()); + String url = minioUtil.getFileUrl(minioConfig.getBucketName(),vo.getLinkImage(),60*60*12); + vo.setLinkImage(url); + // vo.setLinkImage(minioConfig.getUrl()+"/"+minioConfig.getBucketName()+vo.getLinkImage()); }); } return list; @@ -235,20 +242,12 @@ public class ProductServiceImpl implements ProductService { List list=mapper.getCaseImageByTable(product.getId(),"tb_product"); if(StringUtils.isNotEmpty(list)){ ProductCaseImage vo1=list.get(0); - vo1.setUrl(minioConfig.getUrl()+"/"+vo1.getBucketName()+vo1.getFilePath()); + String url=minioUtil.getFileUrl(vo1.getBucketName(),vo1.getFilePath(),60*60*12); + vo1.setUrl(url); + // vo1.setUrl(minioConfig.getUrl()+"/"+vo1.getBucketName()+vo1.getFilePath()); vo.setImage(vo1); } - List productCases=mapper.getProductCaseList(product.getId()); - for (TbProductCase productCase:productCases) { - List caseImages=mapper.getCaseImageByTable(productCase.getId(),"tb_product_case"); - if(StringUtils.isNotEmpty(caseImages)){ - caseImages.forEach(image->{ - image.setUrl(minioConfig.getUrl()+"/"+image.getBucketName()+image.getFilePath()); - }); - productCase.setImageList(caseImages); - } - } - vo.setList(productCases); + ProductScreenImpl.getProductDetails(product, vo, mapper, minioUtil); } return AjaxResult.success(vo); diff --git a/bonus-file/src/main/java/com/bonus/file/minio/MinioUtil.java b/bonus-file/src/main/java/com/bonus/file/minio/MinioUtil.java index 3d8a0c8..5d85c2f 100644 --- a/bonus-file/src/main/java/com/bonus/file/minio/MinioUtil.java +++ b/bonus-file/src/main/java/com/bonus/file/minio/MinioUtil.java @@ -284,7 +284,7 @@ public class MinioUtil { * @throws Exception 若生成 URL 过程中发生异常 */ @SneakyThrows(Exception.class) - public String getFileUrl(String bucketName, String objectName, int expiryTimeInSeconds) throws Exception { + public String getFileUrl(String bucketName, String objectName, int expiryTimeInSeconds) { return minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder() .bucket(bucketName) .object(objectName) @@ -392,6 +392,7 @@ public class MinioUtil { return getFileUrl(bucketName, objectName, 604800); } + public String getFileUrl(String bucketName, String objectName,long time) throws Exception { // 604800 秒 = 7 天 return getFileUrl(bucketName, objectName, time);