彭雪彬
2025-09-04 af1ce225c1a2db52fef741f2fee797d21cc35acb
返回抛出异常
1 files modified
13 ■■■■ changed files
oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java 13 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java
@@ -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);