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