新增取消未接诊订单锁定,修改锁定时间未3秒
This commit is contained in:
parent
dcb7f49c72
commit
28eb4b7344
@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Amqp\Consumer;
|
||||
|
||||
use App\Constants\HttpEnumCode;
|
||||
use App\Model\OrderInquiry;
|
||||
use App\Model\OrderInquiryCoupon;
|
||||
use App\Model\UserCoupon;
|
||||
@ -19,6 +20,7 @@ use Hyperf\Amqp\Result;
|
||||
use Hyperf\Amqp\Annotation\Consumer;
|
||||
use Hyperf\Amqp\Message\ConsumerMessage;
|
||||
use Hyperf\DbConnection\Db;
|
||||
use Hyperf\Redis\Redis;
|
||||
use PhpAmqpLib\Message\AMQPMessage;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
@ -64,6 +66,19 @@ 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:已取消)
|
||||
|
||||
@ -287,7 +287,7 @@ class PatientOrderService extends BaseService
|
||||
$redis_key = "order_inquiry_lock_" . $order_inquiry_id;
|
||||
$redis_lock = $redis->setnx($redis_key,1);
|
||||
// 设置过期时间
|
||||
$redis->expire($redis_key,2);
|
||||
$redis->expire($redis_key,3);
|
||||
if (!$redis_lock){
|
||||
// 设置失败,表示已经设置该值
|
||||
return fail(HttpEnumCode::HTTP_SUCCESS,"请您稍后重试");
|
||||
|
||||
@ -1697,7 +1697,7 @@ class UserDoctorService extends BaseService
|
||||
$redis_key = "order_inquiry_lock_" . $order_inquiry_id;
|
||||
$redis_lock = $redis->setnx($redis_key,1);
|
||||
// 设置过期时间
|
||||
$redis->expire($redis_key,2);
|
||||
$redis->expire($redis_key,3);
|
||||
if (!$redis_lock){
|
||||
// 设置失败,表示已经设置该值
|
||||
return fail(HttpEnumCode::HTTP_SUCCESS,"请您稍后重试");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user