取消问诊订单队列,去除锁定状态

This commit is contained in:
wucongxing 2024-01-08 09:04:04 +08:00
parent 778bc7adac
commit 3edcc2a1f8
3 changed files with 6 additions and 17 deletions

View File

@ -66,19 +66,6 @@ class CancelUnInquiryOrdersDelayDirectConsumer extends ConsumerMessage
return Result::ACK; 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) { if ($order_inquiry['inquiry_status'] == 7) {
// 问诊订单状态1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) // 问诊订单状态1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)

View File

@ -304,13 +304,14 @@ class PatientOrderService extends BaseService
$redis = $this->container->get(Redis::class); $redis = $this->container->get(Redis::class);
$redis_key = "order_inquiry_lock_" . $order_inquiry_id; $redis_key = "order_inquiry_lock_" . $order_inquiry_id;
$redis_lock = $redis->setnx($redis_key, 1); $redis_lock = $redis->setnx($redis_key, 1);
// 设置过期时间
$redis->expire($redis_key, 3);
if (!$redis_lock) { if (!$redis_lock) {
// 设置失败,表示已经设置该值 // 设置失败,表示已经设置该值
return fail(HttpEnumCode::HTTP_SUCCESS, "请您稍后重试"); return fail(HttpEnumCode::HTTP_SUCCESS, "请您稍后重试");
} }
// 设置过期时间
$redis->expire($redis_key, 3);
// 检测订单状态 // 检测订单状态
if (!in_array($order_inquiry['inquiry_status'], [1, 2, 3])) { if (!in_array($order_inquiry['inquiry_status'], [1, 2, 3])) {
// 问诊订单状态1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) // 问诊订单状态1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)

View File

@ -1801,13 +1801,14 @@ class UserDoctorService extends BaseService
$redis = $this->container->get(Redis::class); $redis = $this->container->get(Redis::class);
$redis_key = "order_inquiry_lock_" . $order_inquiry_id; $redis_key = "order_inquiry_lock_" . $order_inquiry_id;
$redis_lock = $redis->setnx($redis_key,1); $redis_lock = $redis->setnx($redis_key,1);
// 设置过期时间
$redis->expire($redis_key,3);
if (!$redis_lock){ if (!$redis_lock){
// 设置失败,表示已经设置该值 // 设置失败,表示已经设置该值
return fail(HttpEnumCode::HTTP_SUCCESS,"请您稍后重试"); return fail(HttpEnumCode::HTTP_SUCCESS,"请您稍后重试");
} }
// 设置过期时间
$redis->expire($redis_key,3);
if ($order_inquiry['inquiry_status'] != 3) { if ($order_inquiry['inquiry_status'] != 3) {
// 问诊订单状态1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) // 问诊订单状态1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
return fail(HttpEnumCode::HTTP_ERROR, "接诊失败"); return fail(HttpEnumCode::HTTP_ERROR, "接诊失败");