彭雪彬
2025-09-15 af127949c7a1f24f409eea5eb8d14554564749c4
oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java
@@ -136,7 +136,7 @@
        LocalDateTime orderLocalTime = LocalDateTime.parse(riderOrderRecord.getOrderTime(), formatter);
        Timestamp orderTime = Timestamp.valueOf(orderLocalTime);
        // 判断是否超时
        String isOvertime = Constants.IS_OVERTIME_YES;
        String isOvertime = Constants.IS_OVERTIME_NO;
        if (now.after(orderTime)) {
            isOvertime = Constants.IS_OVERTIME_YES;
        }
@@ -161,7 +161,7 @@
        // 查询骑手信息
        RiderInfo riderInfo = riderInfoService.getRiderSourceInfo(riderId);
        if (riderInfo == null || riderInfo.getEnabled().equals(Constants.SOURCE_ENABLED_DFF)) {
            return R.fail(400, "骑手信息不存在或已过期");
            throw new BadRequestException("骑手信息不存在或已过期");
        }
        // 唯一标识当前线程/客户端
        String clientId = UUID.randomUUID().toString();
@@ -171,21 +171,21 @@
            // 获取分布式锁,设置超时时间10秒
            boolean isLocked = redisUtils.setIfAbsent(lockKey, clientId, 10);
            if (!isLocked) {
                return R.fail(400, "订单已经被其他骑手接单,请稍后重试");
                throw new BadRequestException("订单已经被其他骑手接单,请稍后重试");
            }
            // 查询当前订单 检查订单是否已经被其他骑手抢到或取消 直接返回
            OrderResponse orderResponse = orderService.getByOrderNum(orderNum);
            if (orderResponse == null || orderResponse.getOrder() == null) {
                return R.fail(400, "订单信息不存在,请稍后重试");
                throw new BadRequestException("订单信息不存在,请稍后重试");
            }
            int orderStatus = orderResponse.getOrder().getOrderStatus();
            // 2商家已接单 3商家已备货 这两个状态可以接单
            if (orderStatus != 2 && orderStatus != 3) {
                return R.fail(400, "订单已经被其他骑手接单或取消,请稍后重试");
                throw new BadRequestException("订单已经被其他骑手接单或取消,请稍后重试");
            }
            // 商家备货状态 查看是否存在骑手信息
            if (orderStatus == 4 && orderResponse.getOrder().getRiderId() != null) {
                return R.fail(400, "订单已经被其他骑手接单,请稍后重试");
                throw new BadRequestException("订单已经被其他骑手接单,请稍后重试");
            }
            // 订单没有被接单或取消的情况下,进行接单操作
            // 1.新增骑手接单记录
@@ -289,7 +289,8 @@
        RiderDeliveryPhotos riderDeliveryPhotos = riderDeliveryPhotosService.getOne(
                new QueryWrapper<RiderDeliveryPhotos>().eq(RiderDeliveryPhotos.COL_ORDER_NUM, orderNum));
        if (riderDeliveryPhotos == null) {
            return R.fail(400, "请上传送达照片");
            // 送达照片数据为空,抛出异常
            throw new BadRequestException("请上传送达照片");
        }
        // 当前订单信息
        OrderResponse orderResponse = orderService.getByOrderNum(orderNum);
@@ -301,7 +302,7 @@
        // 返回参数
        orderResponse.getOrder().setOrderStatus(OrderStatusEnum.SEVEN.getKey());
        // 查询骑手钱包信息
        RiderWalletInfo riderWalletInfo = riderWalletInfoService.getRiderWalletInfo(String.valueOf(order.getRiderId()));
        RiderWalletInfo riderWalletInfo = riderWalletInfoService.getRiderWalletInfo(order.getRiderId());
        // 修改骑手钱包信息  // 骑手总金额添加配送费
        riderWalletInfo.setAmount(riderWalletInfo.getAmount().add(order.getSendPrice()));
        // 骑手可用余额添加配送费