From ec56230a2904cab5660200ce1cdd956f660f7c45 Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期四, 20 七月 2023 17:15:12 +0800 Subject: [PATCH] 上传车辆图片提交 --- ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java | 21 ++++++++++ ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarService.java | 6 +++ ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java | 59 ++++++++++++++++++++++++++--- 3 files changed, 79 insertions(+), 7 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java index d114218..6677a8f 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java +++ b/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(""); + } + } + } diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarService.java b/ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarService.java index 92c857b..195443f 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarService.java +++ b/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); } 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..67951c7 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; @@ -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 ""; + } + } } -- Gitblit v1.9.3