处理医生服务患者数量,处理医生好评率

This commit is contained in:
wucongxing 2023-04-23 11:04:04 +08:00
parent c4a89ea83e
commit b22415d2e5
3 changed files with 79 additions and 0 deletions

View File

@ -118,6 +118,12 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
// 处理回写患者病例-回写失败不做处理
$this->handleOrderInquiryCase($order_inquiry);
// 处理医生服务患者数量
$this->handleDoctorServedPatientsNum($order_inquiry['doctor_id']);
// 处理医生好评率
$this->handleDoctorPraiseRate($order_inquiry['doctor_id']);
Db::commit();
Log::getInstance()->info("自动结束问诊订单队列执行成功");
return Result::ACK;
@ -383,5 +389,44 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
}
}
/**
* 处理医生服务患者数量
* @param string $doctor_id
* @return void
*/
protected function handleDoctorServedPatientsNum(string $doctor_id): void
{
$params = array();
$params['doctor_id'] = $doctor_id;
UserDoctor::inc($params,'served_patients_num');
}
/**
* 处理医生好评率
* @param string $doctor_id
* @return float|int
*/
protected function handleDoctorPraiseRate(string $doctor_id): float|int
{
// 获取该医生全部问诊评价总数
$params = array();
$params['doctor_id'] = $doctor_id;
$order_evaluation_count = OrderEvaluation::getCount($params);
if ($order_evaluation_count == 0){
return 0;
}
// 获取该医生好评的评价总数
$avg_score_params = [80, 100];
$good_quantity = OrderEvaluation::getScoreCount($params, $avg_score_params);
$praise_rate = floor(($good_quantity / $order_evaluation_count) * 100) / 100;
$params = array();
$params['doctor_id'] = $doctor_id;
$data = array();
$data['praise_rate'] = $praise_rate;
UserDoctor::editUserDoctor($params,$data);
}
}

View File

@ -99,6 +99,16 @@ class OrderEvaluation extends Model
->count();
}
/**
* 获取评分数量
* @param array $params 条件
* @return int
*/
public static function getCount(array $params): int
{
return self::where($params)->count();
}
/**
* 获取信息-单条
* @param array $params

View File

@ -321,4 +321,28 @@ class UserDoctor extends Model
{
return self::where($params)->whereNotIn('doctor_id',$not_in_params)->get($fields);
}
/**
* 自增
* @param array $params
* @param string $field
* @param float $numeral
* @return int
*/
public static function inc(array $params,string $field,float $numeral = 1): int
{
return self::where($params)->increment($field,$numeral);
}
/**
* 自减
* @param array $params
* @param string $field
* @param float $numeral
* @return int
*/
public static function dec(array $params,string $field,float $numeral = 1): int
{
return self::where($params)->decrement($field,$numeral);
}
}