处理医生服务患者数量,处理医生好评率
This commit is contained in:
parent
c4a89ea83e
commit
b22415d2e5
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user