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

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
* @throws GuzzleException
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
public function addDoctorInquiry(): ResponseInterface
{

View File

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