彭雪彬
2025-09-04 c402e614bacc5999e7df19ee56b233e7cfe92683
骑手上传送达图片
4 files modified
52 ■■■■ changed files
oying-system/src/main/java/com/oying/modules/rider/domain/vo/OrderDeliveryPhotosVo.java 12 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/rider/rest/WxRiderController.java 10 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/rider/service/RiderDeliveryPhotosService.java 2 ●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderDeliveryPhotosServiceImpl.java 28 ●●●● patch | view | raw | blame | history
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;
}
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));
    }
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);
}
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;
    }
}