diff --git a/app/Amqp/Consumer/CancelUnInquiryOrdersDelayDirectConsumer.php b/app/Amqp/Consumer/CancelUnInquiryOrdersDelayDirectConsumer.php index 9480f76..dff5531 100644 --- a/app/Amqp/Consumer/CancelUnInquiryOrdersDelayDirectConsumer.php +++ b/app/Amqp/Consumer/CancelUnInquiryOrdersDelayDirectConsumer.php @@ -66,19 +66,6 @@ class CancelUnInquiryOrdersDelayDirectConsumer extends ConsumerMessage return Result::ACK; } - // 检测锁定 - $redis = $this->container->get(Redis::class); - $redis_key = "order_inquiry_lock_" . $data['order_inquiry_id']; - $redis_lock = $redis->setnx($redis_key,1); - // 设置过期时间 - $redis->expire($redis_key,3); - if (!$redis_lock){ - // 设置失败,表示已经设置该值 - Db::rollBack(); - Log::getInstance()->error("取消未接诊问诊订单失败:正在锁定中" ); - return Result::REQUEUE; - } - // 检测订单状态 if ($order_inquiry['inquiry_status'] == 7) { // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 11a55c8..4b8760e 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -304,13 +304,14 @@ class PatientOrderService extends BaseService $redis = $this->container->get(Redis::class); $redis_key = "order_inquiry_lock_" . $order_inquiry_id; $redis_lock = $redis->setnx($redis_key, 1); - // 设置过期时间 - $redis->expire($redis_key, 3); if (!$redis_lock) { // 设置失败,表示已经设置该值 return fail(HttpEnumCode::HTTP_SUCCESS, "请您稍后重试"); } + // 设置过期时间 + $redis->expire($redis_key, 3); + // 检测订单状态 if (!in_array($order_inquiry['inquiry_status'], [1, 2, 3])) { // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 081d761..62d6069 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1801,13 +1801,14 @@ class UserDoctorService extends BaseService $redis = $this->container->get(Redis::class); $redis_key = "order_inquiry_lock_" . $order_inquiry_id; $redis_lock = $redis->setnx($redis_key,1); - // 设置过期时间 - $redis->expire($redis_key,3); if (!$redis_lock){ // 设置失败,表示已经设置该值 return fail(HttpEnumCode::HTTP_SUCCESS,"请您稍后重试"); } + // 设置过期时间 + $redis->expire($redis_key,3); + if ($order_inquiry['inquiry_status'] != 3) { // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) return fail(HttpEnumCode::HTTP_ERROR, "接诊失败");