diff --git a/app/Model/OrderEvaluation.php b/app/Model/OrderEvaluation.php index 03f34b5..c11c285 100644 --- a/app/Model/OrderEvaluation.php +++ b/app/Model/OrderEvaluation.php @@ -88,4 +88,16 @@ class OrderEvaluation extends Model return $data; } + + /** + * 获取评分区间数量 + * @param array $params 条件 + * @param array $avg_score_params 评分区间 [0.100] + */ + public static function getScoreCount(array $params, array $avg_score_params): int + { + return self::where($params) + ->whereBetween('avg_score',$avg_score_params) + ->count(); + } } diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 45bd3f3..13eb737 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -628,9 +628,46 @@ class UserDoctorService extends BaseService if (!empty($order_evaluation['data'])){ foreach ($order_evaluation['data'] as &$item){ $item['avg_score'] = floor($item['avg_score'] * 0.05); + } } + // 获取其他类型评论总数 + if ($evaluation_type != 1){ + // 好评 + $avg_score_params = [80,100]; + $good_quantity = OrderEvaluation::getScoreCount($params,$avg_score_params); + + // 中/差评 + $avg_score_params = [0,80]; + $bad_quantity = OrderEvaluation::getScoreCount($params,$avg_score_params); + } + + if ($evaluation_type != 2){ + // 全部+ + $avg_score_params = [0,100]; + $total_quantity = OrderEvaluation::getScoreCount($params,$avg_score_params); + + // 中/差评 + $avg_score_params = [0,80]; + $bad_quantity = OrderEvaluation::getScoreCount($params,$avg_score_params); + + } + + if ($evaluation_type != 3){ + // 全部+ + $avg_score_params = [0,100]; + $total_quantity = OrderEvaluation::getScoreCount($params,$avg_score_params); + + // 好评 + $avg_score_params = [80,100]; + $good_quantity = OrderEvaluation::getScoreCount($params,$avg_score_params); + } + + $order_evaluation['total_quantity'] = $total_quantity ?? $order_evaluation['total']; + $order_evaluation['good_quantity'] = $good_quantity ?? $order_evaluation['total']; + $order_evaluation['bad_quantity'] = $bad_quantity ?? $order_evaluation['total']; + return success($order_evaluation); } @@ -679,7 +716,7 @@ class UserDoctorService extends BaseService $user_doctor['card_num_mask'] = ""; }else{ $user_doctor['card_name'] = $user_doctor_info['card_name']; - $user_doctor['card_num_mask'] = $user_doctor_info['card_name']; + $user_doctor['card_num_mask'] = $user_doctor_info['card_num_mask']; } $user_doctor['avatar'] = addAliyunOssWebsite($user_doctor['avatar']);