新增计算医生平均响应时间
This commit is contained in:
parent
65bdc30ca9
commit
9be6e54dc5
@ -124,8 +124,11 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
|||||||
// 处理医生服务患者数量
|
// 处理医生服务患者数量
|
||||||
$this->handleDoctorServedPatientsNum($order_inquiry['doctor_id']);
|
$this->handleDoctorServedPatientsNum($order_inquiry['doctor_id']);
|
||||||
|
|
||||||
// 处理医生好评率
|
// 计算医生好评率
|
||||||
$this->handleDoctorPraiseRate($order_inquiry['doctor_id']);
|
$this->computeDoctorPraiseRate($order_inquiry['doctor_id']);
|
||||||
|
|
||||||
|
// 计算医生平均响应时间
|
||||||
|
$this->computeDoctorAvgPesponseTime($order_inquiry['doctor_id']);
|
||||||
|
|
||||||
Db::commit();
|
Db::commit();
|
||||||
Log::getInstance("queue-AutoFinishInquiry")->info("成功");
|
Log::getInstance("queue-AutoFinishInquiry")->info("成功");
|
||||||
@ -423,7 +426,7 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
|||||||
* @param string $doctor_id
|
* @param string $doctor_id
|
||||||
* @return int|void
|
* @return int|void
|
||||||
*/
|
*/
|
||||||
protected function handleDoctorPraiseRate(string $doctor_id)
|
protected function computeDoctorPraiseRate(string $doctor_id)
|
||||||
{
|
{
|
||||||
// 获取该医生全部问诊评价总数
|
// 获取该医生全部问诊评价总数
|
||||||
$params = array();
|
$params = array();
|
||||||
@ -447,6 +450,45 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
|||||||
UserDoctor::editUserDoctor($params,$data);
|
UserDoctor::editUserDoctor($params,$data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理医生平均响应时间
|
||||||
|
* @param string $doctor_id
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function computeDoctorAvgPesponseTime(string $doctor_id)
|
||||||
|
{
|
||||||
|
// 统计数组
|
||||||
|
$avg_pesponse_time = [];
|
||||||
|
|
||||||
|
// 获取该医生全部已结束问诊订单
|
||||||
|
$params = array();
|
||||||
|
$params['doctor_id'] = $doctor_id;
|
||||||
|
$params['inquiry_status'] = 6;
|
||||||
|
$order_inquiry = OrderInquiry::getList($params);
|
||||||
|
if (!empty($order_inquiry)){
|
||||||
|
foreach ($order_inquiry as $item){
|
||||||
|
$pesponse_time = strtotime($item['reception_time']) - strtotime($item['created_at']);
|
||||||
|
if ($pesponse_time < 0){
|
||||||
|
// 小于0的数据不统计
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$avg_pesponse_time[] = $pesponse_time;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($avg_pesponse_time)){
|
||||||
|
$result = floor((array_sum($avg_pesponse_time) / count($avg_pesponse_time)) / 60 * 100) / 100;
|
||||||
|
|
||||||
|
$params = array();
|
||||||
|
$params['doctor_id'] = $doctor_id;
|
||||||
|
|
||||||
|
$data = array();
|
||||||
|
$data['avg_pesponse_time'] = $result;
|
||||||
|
UserDoctor::editUserDoctor($params,$data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 推送问诊结束im消息
|
* 推送问诊结束im消息
|
||||||
* @param array|object $order_inquiry
|
* @param array|object $order_inquiry
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user