修改接诊后,添加自动结束延迟队列的结束时间为系统问诊配置表数据

This commit is contained in:
wucongxing8150 2024-02-28 17:34:18 +08:00
parent 9a1c52a368
commit 6cf434831e
2 changed files with 25 additions and 13 deletions

View File

@ -331,7 +331,8 @@ class UserDoctorController extends AbstractController
/** /**
* 新增医生接诊 * 新增医生接诊
* @return ResponseInterface * @return ResponseInterface
* @throws GuzzleException * @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/ */
public function addDoctorInquiry(): ResponseInterface public function addDoctorInquiry(): ResponseInterface
{ {

View File

@ -1834,6 +1834,10 @@ class UserDoctorService extends BaseService
$params = array(); $params = array();
$params['inquiry_type'] = $order_inquiry['inquiry_type']; $params['inquiry_type'] = $order_inquiry['inquiry_type'];
$params['inquiry_mode'] = $order_inquiry['inquiry_mode']; $params['inquiry_mode'] = $order_inquiry['inquiry_mode'];
$system_inquiry_config = SystemInquiryConfig::getOne($params);
if (empty($system_inquiry_config)){
return fail(HttpEnumCode::HTTP_ERROR, "接诊失败");
}
Db::beginTransaction(); Db::beginTransaction();
@ -1846,25 +1850,32 @@ class UserDoctorService extends BaseService
$params['order_inquiry_id'] = $order_inquiry_id; $params['order_inquiry_id'] = $order_inquiry_id;
OrderInquiry::edit($params,$data); OrderInquiry::edit($params,$data);
// 获取订单结束周期 /**
* 获取订单结束周期
// 添加自动结束队列 * 疑难问诊为自己配置周期。
if ($order_inquiry['inquiry_type'] == 1 || $order_inquiry['inquiry_type'] == 3){ */
// 专家问诊-公益问诊 // 疑难问诊
$time = 1000 * 60 * 60 * 24; if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 6){
}elseif($order_inquiry['inquiry_type'] == 2){ $params = array();
// 快速问诊 $params['doctor_id'] = $order_inquiry['doctor_id'];
$time = 1000 * 60 * 60; $params['inquiry_type'] = $order_inquiry['inquiry_type'];
}else{ $params['inquiry_mode'] = $order_inquiry['inquiry_mode'];
// 购药 $doctor_inquiry_config_service = DoctorInquiryConfigService::getOne($params);
$time = 1000 * 60 * 30; if(empty($doctor_inquiry_config_service)){
Db::rollBack();
return fail(HttpEnumCode::HTTP_ERROR, "接诊失败");
} }
$time = $doctor_inquiry_config_service['service_period'] * 24 * 60 * 60;
}else{
$time = $system_inquiry_config['duration'] * 60;
}
// 添加自动结束队列
$data = array(); $data = array();
$data['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; $data['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$message = new AutoCompleteInquiryDelayDirectProducer($data); $message = new AutoCompleteInquiryDelayDirectProducer($data);
$message->setDelayMs($time); $message->setDelayMs(1000 * $time);
$producer = $this->container->get(Producer::class); $producer = $this->container->get(Producer::class);
$res = $producer->produce($message); $res = $producer->produce($message);
if (!$res) { if (!$res) {