From dff994a28ff9be38450bc4e7ba540c2831d1206f Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期五, 21 七月 2023 09:53:55 +0800 Subject: [PATCH] 上传车辆图片id设为非必要提交 --- ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java | 77 +++++++++++++++++++++++++++++++++++--- 1 files changed, 70 insertions(+), 7 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java index 0ba25e0..5e4a70f 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.sy.service.impl; +import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -7,6 +8,7 @@ import java.util.function.Predicate; import java.util.stream.Collectors; +import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.device.hiksdk.config.MinioClientSingleton; import com.ruoyi.device.hiksdk.util.minio.MinioUtils; import com.ruoyi.sy.domain.ArdSyUser; @@ -16,14 +18,18 @@ import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.utils.httpclient.SYCarClient; +import io.minio.GetPresignedObjectUrlArgs; import io.minio.ListObjectsArgs; +import io.minio.PutObjectArgs; import io.minio.Result; +import io.minio.http.Method; import io.minio.messages.Item; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.sy.mapper.ArdSyCarMapper; import com.ruoyi.sy.domain.ArdSyCar; import com.ruoyi.sy.service.IArdSyCarService; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -96,6 +102,14 @@ */ @Override public int deleteArdSyCarByIds(String[] ids) { + List<ArdSyCar> result = ardSyCarMapper.selectArdSyCarByIds(ids); + List<String> objectNames = new ArrayList(); + for(ArdSyCar ardSyCar : result){ + if(ardSyCar.getCarPicture() != null && !ardSyCar.getCarPicture().equals("")){ + objectNames.add(ardSyCar.getCarPicture().split("/sycar/")[1]); + } + } + MinioUtils.removeObjects("sycar", objectNames); return ardSyCarMapper.deleteArdSyCarByIds(ids); } @@ -167,7 +181,6 @@ @Override public List<Map<String,String>> getAllCarModel() { - //List<String> result = MinioUtils.getBucketObjectName("sycar"); boolean exsit = MinioUtils.exitsBucket("sycar"); if (exsit) { List<Map<String,String>> listObjetcName = new ArrayList<>(); @@ -197,16 +210,66 @@ listObjetcName.add(map); } return listObjetcName; - /*List<String> result = new ArrayList(); - for(String file : listObjetcName){ - String path = MinioUtils.getBucketObjectUrl("sycar", "carpicture/" + file); - result.add(path); - } - return result;*/ } catch (Exception ex) { //log.error("minio鑾峰彇妗朵笅瀵硅薄寮傚父锛�" + ex.getMessage()); } } return null; } + + @Override + public String uploadCarPicture(String id, MultipartFile carPicture) { + if(id != null && !id.equals("")){//id涓洪潪蹇呰 + ArdSyCar ardSyCarr = ardSyCarMapper.selectArdSyCarById(id); + List<String> objectNames = new ArrayList(); + if(ardSyCarr.getCarPicture() != null || !ardSyCarr.getCarPicture().equals("")){ + String objectName = ardSyCarr.getCarPicture().split("/sycar/")[1]; + objectNames.add(objectName); + MinioUtils.removeObjects("sycar", objectNames); + } + } + //鍒ゆ柇鏂囦欢鏄惁涓虹┖ + if (null == carPicture || 0 == carPicture.getSize()) { + return ""; + } + boolean exsit = MinioUtils.exitsBucket("sycar"); + if (!exsit) { + boolean bucket = MinioUtils.createBucket("sycar"); + } + //鏂囦欢鍚� + String originalFilename = carPicture.getOriginalFilename(); + //鏂扮殑鏂囦欢鍚� + String fileName = "carpicture/" + IdUtils.fastSimpleUUID()+"_"+ originalFilename; + try { + InputStream inputStream = carPicture.getInputStream(); + /*涓婁紶瀵硅薄*/ + PutObjectArgs putObjectArgs = PutObjectArgs + .builder() + .bucket("sycar") + .object(fileName) + .stream(inputStream, carPicture.getSize(), -1) + .contentType(carPicture.getContentType()) + .build(); + MinioClientSingleton.getMinioClient().putObject(putObjectArgs); + inputStream.close(); + /*鑾峰彇url*/ + GetPresignedObjectUrlArgs getPresignedObjectUrlArgs = GetPresignedObjectUrlArgs + .builder() + .bucket("sycar") + .object(fileName) + .method(Method.GET) + .build(); + String presignedObjectUrl = MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs); + String ObjectUrl = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?")); + if(id != null && !id.equals("")){//id涓洪潪蹇呰 + ArdSyCar ardSyCar = new ArdSyCar(); + ardSyCar.setId(id); + ardSyCar.setCarPicture(ObjectUrl); + ardSyCarMapper.updateArdSyCar(ardSyCar); + } + return ObjectUrl; + } catch (Exception ex) { + return ""; + } + } } -- Gitblit v1.9.3