From c402e614bacc5999e7df19ee56b233e7cfe92683 Mon Sep 17 00:00:00 2001
From: 彭雪彬 <1724387007@qq.com>
Date: Thu, 04 Sep 2025 12:30:46 +0800
Subject: [PATCH] 骑手上传送达图片

---
 oying-system/src/main/java/com/oying/modules/rider/domain/vo/OrderDeliveryPhotosVo.java             |   12 ++++++++----
 oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderDeliveryPhotosServiceImpl.java |   28 +++++++++++++++++++++++-----
 oying-system/src/main/java/com/oying/modules/rider/service/RiderDeliveryPhotosService.java          |    2 +-
 oying-system/src/main/java/com/oying/modules/rider/rest/WxRiderController.java                      |   10 +++++++---
 4 files changed, 39 insertions(+), 13 deletions(-)

diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/vo/OrderDeliveryPhotosVo.java b/oying-system/src/main/java/com/oying/modules/rider/domain/vo/OrderDeliveryPhotosVo.java
index 845a296..71425f5 100644
--- a/oying-system/src/main/java/com/oying/modules/rider/domain/vo/OrderDeliveryPhotosVo.java
+++ b/oying-system/src/main/java/com/oying/modules/rider/domain/vo/OrderDeliveryPhotosVo.java
@@ -3,6 +3,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.Serializable;
 
@@ -25,13 +26,16 @@
     @ApiModelProperty(value = "拍照纬度")
     private String userLatitude;
 
-    @ApiModelProperty(value = "图片地址")
-    private String photoUrl;
-
     @ApiModelProperty(value = "描述")
     private String description;
 
-    @ApiModelProperty(value = "照片存储ID")
+    @ApiModelProperty(value = "图片地址(前端不用传值)")
+    private String photoUrl;
+
+    @ApiModelProperty(value = "桶文件ID(前端不用传值)")
     private Long uploadId;
 
+    @ApiModelProperty(value = "图片文件")
+    private transient MultipartFile photoFile;
+
 }
diff --git a/oying-system/src/main/java/com/oying/modules/rider/rest/WxRiderController.java b/oying-system/src/main/java/com/oying/modules/rider/rest/WxRiderController.java
index a67cab8..9fe5d74 100644
--- a/oying-system/src/main/java/com/oying/modules/rider/rest/WxRiderController.java
+++ b/oying-system/src/main/java/com/oying/modules/rider/rest/WxRiderController.java
@@ -1,6 +1,7 @@
 package com.oying.modules.rider.rest;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.domain.BucketStorage;
 import com.oying.exception.BadRequestException;
 import com.oying.modules.rider.domain.*;
 import com.oying.modules.rider.domain.dto.RiderIncomeDetailQueryCriteria;
@@ -10,6 +11,8 @@
 import com.oying.modules.rider.domain.vo.OrderRiderOperationVo;
 import com.oying.modules.rider.service.*;
 import com.oying.modules.rider.utils.Constants;
+import com.oying.service.BucketStorageService;
+import com.oying.utils.FileUtil;
 import com.oying.utils.PageResult;
 import com.oying.utils.R;
 import com.oying.utils.StringUtils;
@@ -19,6 +22,7 @@
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
 /**
@@ -145,14 +149,14 @@
     }
 
     @PostMapping("riderDeliveryPhotos")
-    @ApiOperation("骑手上传图片记录")
+    @ApiOperation("骑手上传图片")
     // @PreAuthorize("@el.check('riderOrderRecord:list')")
-    public ResponseEntity<?> riderDeliveryPhotos(@RequestBody OrderDeliveryPhotosVo orderDeliveryPhotosVo) {
+    public ResponseEntity<?> riderDeliveryPhotos(OrderDeliveryPhotosVo orderDeliveryPhotosVo) {
         // 订单号不能为空
         if (StringUtils.isBlank(orderDeliveryPhotosVo.getOrderNum())) {
             throw new BadRequestException("订单号不能为空");
         }
-        Boolean result = riderDeliveryPhotosService.riderDeliveryPhotos(orderDeliveryPhotosVo);
+        RiderDeliveryPhotos result = riderDeliveryPhotosService.riderDeliveryPhotos(orderDeliveryPhotosVo);
         return ResponseEntity.ok(R.success(result));
     }
 
diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/RiderDeliveryPhotosService.java b/oying-system/src/main/java/com/oying/modules/rider/service/RiderDeliveryPhotosService.java
index 3db8594..72850e4 100644
--- a/oying-system/src/main/java/com/oying/modules/rider/service/RiderDeliveryPhotosService.java
+++ b/oying-system/src/main/java/com/oying/modules/rider/service/RiderDeliveryPhotosService.java
@@ -64,5 +64,5 @@
      * @param orderDeliveryPhotosVo
      * @throws IOException /
      */
-    Boolean riderDeliveryPhotos(OrderDeliveryPhotosVo orderDeliveryPhotosVo);
+    RiderDeliveryPhotos riderDeliveryPhotos(OrderDeliveryPhotosVo orderDeliveryPhotosVo);
 }
diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderDeliveryPhotosServiceImpl.java b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderDeliveryPhotosServiceImpl.java
index 2c0d9be..d09bc2b 100644
--- a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderDeliveryPhotosServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderDeliveryPhotosServiceImpl.java
@@ -1,10 +1,13 @@
 package com.oying.modules.rider.service.impl;
 
+import com.oying.domain.BucketStorage;
+import com.oying.exception.BadRequestException;
 import com.oying.modules.rider.domain.RiderDeliveryPhotos;
 import com.oying.modules.rider.domain.vo.OrderDeliveryPhotosVo;
 import com.oying.modules.rider.utils.Constants;
 import com.oying.modules.sh.domain.vo.OrderResponse;
 import com.oying.modules.sh.service.OrderService;
+import com.oying.service.BucketStorageService;
 import com.oying.utils.FileUtil;
 import lombok.RequiredArgsConstructor;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,6 +27,7 @@
 import java.util.LinkedHashMap;
 
 import com.oying.utils.PageResult;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * @author pxb
@@ -36,6 +40,8 @@
 
     private final RiderDeliveryPhotosMapper riderDeliveryPhotosMapper;
     private final OrderService orderService;
+    private final BucketStorageService bucketStorageService;
+
 
     @Override
     public PageResult<RiderDeliveryPhotos> queryAll(RiderDeliveryPhotosQueryCriteria criteria, Page<Object> page) {
@@ -96,9 +102,19 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean riderDeliveryPhotos(OrderDeliveryPhotosVo orderDeliveryPhotosVo) {
+    public RiderDeliveryPhotos riderDeliveryPhotos(OrderDeliveryPhotosVo orderDeliveryPhotosVo) {
         OrderResponse orderResponse = orderService.getByOrderNum(orderDeliveryPhotosVo.getOrderNum());
         if (orderResponse != null) {
+            // 图片信息不能为空
+            MultipartFile file = orderDeliveryPhotosVo.getPhotoFile();
+            // 判断文件是否为图片
+            String suffix = FileUtil.getExtensionName(file.getOriginalFilename());
+            FileUtil.checkSize(5, file.getSize());
+            if (!FileUtil.IMAGE.equals(FileUtil.getFileType(suffix))) {
+                throw new BadRequestException("只能上传图片");
+            }
+            // 上传照片
+            BucketStorage bucketStorage = bucketStorageService.create(null, file);
             // 封装数据
             RiderDeliveryPhotos riderDeliveryPhotos = new RiderDeliveryPhotos();
             riderDeliveryPhotos.setOrderId(orderResponse.getOrder().getOrderId());
@@ -106,16 +122,18 @@
             riderDeliveryPhotos.setRiderId(orderResponse.getOrder().getRiderId());
             riderDeliveryPhotos.setRiderName(orderResponse.getOrder().getRiderName());
             riderDeliveryPhotos.setRiderPhone(orderResponse.getOrder().getRiderPhone());
-            riderDeliveryPhotos.setPhotoUrl(orderDeliveryPhotosVo.getPhotoUrl());
-            riderDeliveryPhotos.setUploadId(orderDeliveryPhotosVo.getUploadId());
+            riderDeliveryPhotos.setPhotoUrl(bucketStorage.getPath());
+            riderDeliveryPhotos.setUploadId(bucketStorage.getBucketId());
             riderDeliveryPhotos.setLatitude(orderDeliveryPhotosVo.getUserLatitude());
             riderDeliveryPhotos.setLongitude(orderDeliveryPhotosVo.getUserLongitude());
             riderDeliveryPhotos.setDescription(orderDeliveryPhotosVo.getDescription());
             riderDeliveryPhotos.setIsValid(Constants.IS_VALID_YES);
             riderDeliveryPhotos.setUserPhone(orderResponse.getOrder().getUsername());
             riderDeliveryPhotos.setUserId(orderResponse.getOrder().getUserId());
-            return this.save(riderDeliveryPhotos);
+            riderDeliveryPhotosMapper.insert(riderDeliveryPhotos);
+            return riderDeliveryPhotos;
+        } else {
+            throw new BadRequestException("订单不存在!");
         }
-        return false;
     }
 }

--
Gitblit v1.9.3