分配医生增加检测 获取患者家庭成员是否存在未支付的服务包订单

This commit is contained in:
wucongxing8150 2024-04-29 14:28:37 +08:00
parent 79a8c6d4a7
commit 3adc8ec38b

View File

@ -17,6 +17,7 @@ use App\Services\ImService;
use App\Services\InquiryService;
use App\Services\MessagePush;
use App\Services\OrderService;
use App\Services\OrderServicePackageService;
use App\Services\UserDoctorService;
use App\Utils\Log;
use App\Utils\Utils;
@ -116,8 +117,7 @@ class AssignDoctorDelayDirectConsumer extends ConsumerMessage
}
// 检测分配时间
$pay_time = strtotime($order_inquiry['pay_time']);
$diff_time = time() - $pay_time;
$diff_time = time() - strtotime($order_inquiry['pay_time']);
if ($diff_time < 0) {
Log::getInstance('queue-AssignDoctor')->error("支付时间错误");
@ -174,7 +174,7 @@ class AssignDoctorDelayDirectConsumer extends ConsumerMessage
$queue_data['order_inquiry_id'] = $data['order_inquiry_id'];
// 5分钟-支付时间-1s1000支付 此时1004 5-1004-1000
$time = 300- (time() - $pay_time) - 1;
$time = 300- (time() - strtotime($order_inquiry['pay_time'])) - 1;
$message = new AssignDoctorDelayDirectProducer($queue_data);
$message->setDelayMs(1000 * $time);
@ -190,6 +190,31 @@ class AssignDoctorDelayDirectConsumer extends ConsumerMessage
return Result::ACK;
}
// 获取患者家庭成员是否存在未支付的服务包订单
$OrderServicePackageService = new OrderServicePackageService();
$order_service_package = $OrderServicePackageService->getPatientFamilyNoPayServicePackage($order_inquiry['user_id'], $order_inquiry['family_id'], $doctor_id);
if (!empty($order_service_package)){
$queue_data = array();
$queue_data['order_inquiry_id'] = $data['order_inquiry_id'];
// 5分钟-支付时间-1s1000支付 此时1004 5-1004-1000
$time = 300- (time() - strtotime($order_inquiry['pay_time'])) - 1;
$message = new AssignDoctorDelayDirectProducer($queue_data);
$message->setDelayMs(1000 * $time);
$producer = $this->container->get(Producer::class);
$res = $producer->produce($message);
if (!$res) {
Db::rollBack();
Log::getInstance("queue-AssignDoctor")->error("患者和医生存在未支付的服务包订单,无法分配给该医生,重回队列");
return Result::REQUEUE;
}
Log::getInstance("queue-AssignDoctor")->info("重回队列");
return Result::ACK;
}
// 更改数据库
$save_data = array();
$save_data['doctor_id'] = $doctor_id;