zhangnaisong
2023-07-20 ec56230a2904cab5660200ce1cdd956f660f7c45
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;
@@ -167,7 +173,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 +202,56 @@
                    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) {
        //String url = MinioUtils.putObjectAndGetUrl("sycar",carPicture);
        //判断文件是否为空
        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("?"));
            ArdSyCar ardSyCar = new ArdSyCar();
            ardSyCar.setId(id);
            ardSyCar.setCarPicture(ObjectUrl);
            ardSyCarMapper.updateArdSyCar(ardSyCar);
            return ObjectUrl;
        } catch (Exception ex) {
            return "";
        }
    }
}