zhangnaisong
2023-07-20 ec56230a2904cab5660200ce1cdd956f660f7c45
上传车辆图片提交
已修改3个文件
86 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java
@@ -7,6 +7,7 @@
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.utils.httpclient.SYCarClient;
@@ -26,6 +27,7 @@
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
/**
 * 三一车辆Controller
@@ -85,8 +87,11 @@
    @PreAuthorize("@ss.hasPermi('sy:syCar:add')")
    @Log(title = "三一车辆", businessType = BusinessType.INSERT)
    @PostMapping
    @ApiOperation("新增三一车辆")
    public AjaxResult add(@RequestBody ArdSyCar ardSyCar)
    {
        String id = IdUtils.simpleUUID();
        ardSyCar.setId(id);
        return toAjax(ardSyCarService.insertArdSyCar(ardSyCar));
    }
@@ -96,6 +101,7 @@
    @PreAuthorize("@ss.hasPermi('sy:syCar:edit')")
    @Log(title = "三一车辆", businessType = BusinessType.UPDATE)
    @PutMapping
    @ApiOperation("修改三一车辆")
    public AjaxResult edit(@RequestBody ArdSyCar ardSyCar)
    {
        return toAjax(ardSyCarService.updateArdSyCar(ardSyCar));
@@ -168,4 +174,19 @@
        }
    }
    /**
     * 上传车辆图片
     */
    @PreAuthorize("@ss.hasPermi('sy:syCar:uploadCarPicture')")
    @PostMapping("/uploadCarPicture")
    @ApiOperation("上传车辆图片")
    public Map<String,Object> uploadCarPicture(@RequestParam("id") String id,@RequestParam("carPicture") MultipartFile carPicture){
        try{
            String result = ardSyCarService.uploadCarPicture(id,carPicture);
            return success(result);
        } catch(Exception e){
            return error("");
        }
    }
}
ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarService.java
@@ -4,6 +4,7 @@
import java.util.Map;
import com.ruoyi.sy.domain.ArdSyCar;
import org.springframework.web.multipart.MultipartFile;
/**
 * 三一车辆Service接口
@@ -70,4 +71,9 @@
     * 获取全部车辆模型
     */
    public List<Map<String,String>> getAllCarModel();
    /**
     * 上传车辆图片
     */
    public String uploadCarPicture(String id, MultipartFile carPicture);
}
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 "";
        }
    }
}