修改 获取医生评价 接口

This commit is contained in:
wucongxing 2024-01-04 14:07:03 +08:00
parent ce28994b6f
commit 4d369bdb66
6 changed files with 27 additions and 148 deletions

View File

@ -7,6 +7,7 @@ namespace App\Model;
use Hyperf\Database\Model\Collection;
use Hyperf\Database\Model\Relations\HasMany;
use Hyperf\Snowflake\Concern\Snowflake;
/**
@ -40,6 +41,14 @@ class OrderEvaluation extends Model
protected string $primaryKey = "evaluation_id";
/**
* 关联问诊订单表
*/
public function OrderInquiry(): \Hyperf\Database\Model\Relations\BelongsTo
{
return $this->belongsTo(OrderInquiry::class, 'order_inquiry_id','order_inquiry_id');
}
/**
* 获取评价列表-分页
* @param array $params 条件
@ -50,7 +59,10 @@ class OrderEvaluation extends Model
*/
public static function getPage(array $params, array $fields = ["*"], int $page = null, ?int $per_page = 10): array
{
$raw = self::where($params)->orderBy('created_at','desc')->paginate($per_page, $fields, "page", $page);
$raw = self::with(['OrderInquiry'])
->where($params)
->orderBy('created_at','desc')
->paginate($per_page, $fields, "page", $page);
$data = array();
$data['current_page'] = $raw->currentPage();// 当前页码
$data['total'] = $raw->total();//数据总数
@ -72,7 +84,8 @@ class OrderEvaluation extends Model
*/
public static function getScorePage(array $params, array $avg_score_params,array $fields = ["*"], int $page = null, ?int $per_page = 10): array
{
$raw = self::where($params)
$raw = self::with(['OrderInquiry'])
->where($params)
->whereBetween('avg_score',$avg_score_params)
->orderBy('created_at','desc')
->paginate($per_page, $fields, "page", $page);

View File

@ -325,131 +325,6 @@ class UserDoctor extends Model
return $data;
}
// /**
// * 获取问诊医生列表
// * 专家问诊-公益问诊共用
// * @param string $keyword
// * @param array $hospital_params 医院搜索条件
// * @param array $doctor_params 医生搜索条件
// * @param array $doctor_expertise_params
// * @param int $is_search_welfare_reception 是否搜索公益问诊
// * @param string|int $is_first_online 是否优先在线1:是)
// * @param string|int $sort_order
// * @param array $fields
// * @param int|null $page
// * @param int|null $per_page
// * @return array
// */
// public static function getInquiryDoctorPage(string $keyword = "", array $hospital_params = [], array $doctor_params = [], array $doctor_expertise_params = [],array $doctor_inquiry_config_params = [],string|int $is_first_online = 0, string|int $sort_order = 1, array $fields = ["*"], int $page = null, ?int $per_page = 10): array
// {
// $query = self::with([
// "Hospital:hospital_id,hospital_name,hospital_status,hospital_level_name,province_id,city_id",
// "DoctorExpertise",
// "DoctorInquiryConfig" => function ($query) use ($is_search_welfare_reception) {
// $query->where('inquiry_mode', 1);
// if (!empty($is_search_welfare_reception)){
// $query->where('inquiry_type', 3);
// $query->where('is_enable', 1);
// }
// },
// "User:user_id,is_online"
// ])
// ->where($doctor_params)
// ->when($keyword, function ($query, $keyword) {
// $query->where(function ($query) use ($keyword) {
// $query->orwhere("user_name", 'like', '%' . $keyword . '%');
// $query->orwhere("department_custom_name", 'like', '%' . $keyword . '%');
// $query->orWhereHas('Hospital', function ($query) use ($keyword) {
// $query->where('hospital_name', 'like', '%' . $keyword . '%');
// });
// });
// })
// ->whereHas('Hospital', function ($query) use ($hospital_params) {
// $query->where($hospital_params);
// })
// ->whereHas('DoctorExpertise', function ($query) use ($doctor_expertise_params) {
// $query->where($doctor_expertise_params);
// })
// ->whereHas('DoctorInquiryConfig', function ($query) use ($is_search_welfare_reception) {
// $params = array();
// $params['inquiry_mode'] = 1;// 接诊方式:图文
// if (!empty($is_search_welfare_reception)){
// $params['is_enable'] = 1;
// }
//
// $query->where($params);
//
// if (!empty($is_search_welfare_reception)){
// $query->where('inquiry_type', 3);
// }
// });
//
// if ($is_first_online == 1){
// $query->join('user as u', function ($query) {
// $query->on('user_doctor.user_id', '=', 'u.user_id');
// })
// ->select("user_doctor.*")
// ->orderBy('u.is_online', 'desc');
// }
//
// if (!empty($sort_order)){
// if (in_array($sort_order,[1,3,4])){
// $query = $query->join('doctor_inquiry_config', function ($query) {
// $query->on('user_doctor.doctor_id', '=', 'doctor_inquiry_config.doctor_id')
// ->whereIn('inquiry_type', [1, 3])
// ->where('inquiry_mode', 1)
// ->orderBy('inquiry_price', 'desc')
// ->take(1);
// })
// ->select("user_doctor.*")
// ->groupBy("user_doctor.doctor_id");
// }
//
// if ($sort_order == 1) {
// // 综合-价格从低到高
// $query->orderBy('is_recommend', 'desc');// 是否首页推荐0:否 1:是)
// $query->orderByRaw('avg_response_time = 0 ASC');
// $query->orderBy('avg_response_time');
// $query->orderBy('served_patients_num', 'desc');// 服务数从多到少
// $query->orderBy(Db::raw("convert(substr(gdxz_user_doctor.user_name,1,1) using `GBK`)"), 'asc');// 名称排名
// $query->orderBy('doctor_inquiry_config.inquiry_price', 'asc');
// } elseif ($sort_order == 2) {
// // 响应时间快
// $query->orderByRaw('avg_response_time = 0 ASC');
// $query->orderBy('avg_response_time');
// $query->orderBy(Db::raw("convert(substr(gdxz_user_doctor.user_name,1,1) using `GBK`)"), 'asc');// 名称排名
// } elseif ($sort_order == 3) {
// // 价格从低到高
// $query->orderBy('doctor_inquiry_config.inquiry_price', 'asc');
// $query->orderByRaw('avg_response_time = 0 ASC');
// $query->orderBy('avg_response_time');
// $query->orderBy(Db::raw("convert(substr(gdxz_user_doctor.user_name,1,1) using `GBK`)"), 'asc');// 名称排名
// } elseif ($sort_order == 4) {
// // 价格从高到低
// $query->orderBy('doctor_inquiry_config.inquiry_price', 'desc');
// $query->orderByRaw('avg_response_time = 0 ASC');
// $query->orderBy('avg_response_time');
// $query->orderBy(Db::raw("convert(substr(gdxz_user_doctor.user_name,1,1) using `GBK`)"), 'asc');// 名称排名
// } elseif ($sort_order == 5) {
// // 服务数从多到少
// $query->orderBy('served_patients_num', 'desc');
// $query->orderBy(Db::raw("convert(substr(gdxz_user_doctor.user_name,1,1) using `GBK`)"), 'asc');// 名称排名
// }
// }
//
// $result = $query->paginate($per_page, $fields, "page", $page);
//
// $data = array();
// $data['current_page'] = $result->currentPage();// 当前页码
// $data['total'] = $result->total();//数据总数
// $data['data'] = $result->items();//数据
// $data['per_page'] = $result->perPage();//每页个数
// $data['last_page'] = $result->lastPage();//最后一页
//
// return $data;
// }
/**
* 获取问诊医生列表
* 专家问诊-公益问诊共用

View File

@ -61,7 +61,7 @@ class InquiryRequest extends FormRequest
{
return [
'inquiry_type' => 'required|integer|min:1|max:4',
'inquiry_mode' => 'required|integer|min:1|max:5',
'inquiry_mode' => 'required|integer|min:1|max:6',
'patient_id' => 'required',
'family_id' => 'required',
'disease_class_id' => 'required',

View File

@ -34,7 +34,6 @@ class PatientDoctorService extends BaseService
$city_id = $this->request->input('city_id');
$sort_order = $this->request->input('sort_order',1);
$keyword = $this->request->input('keyword',"");
// $is_search_welfare_reception = $this->request->input('is_search_welfare_reception',0); // 是否参加公益图文问诊0:否 1:是)
$inquiry_type = $this->request->input('inquiry_type',0); // 接诊类型1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
$inquiry_mode = $this->request->input('inquiry_mode',0); // 接诊方式1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊)
$is_first_online = $this->request->input('is_first_online',0); // 是否优先在线1:是)
@ -109,25 +108,6 @@ class PatientDoctorService extends BaseService
}
}
// // 处理问诊价格
// $user_doctor['price'] = 0;
// $user_doctor['free_clinic_price'] = 0;
// $user_doctor['multi_point_enable'] = 0;
// if (!empty($user_doctor['DoctorInquiryConfig'])) {
// foreach ($user_doctor['DoctorInquiryConfig'] as $doctor_inquiry_config) {
// if ($doctor_inquiry_config['inquiry_mode'] == 1) {
// if ($doctor_inquiry_config['inquiry_type'] == 1 && $doctor_inquiry_config['is_enable'] == 1) {
// // 专家
// $user_doctor['price'] = $doctor_inquiry_config['inquiry_price'] ?? 0;
// }
// if ($doctor_inquiry_config['inquiry_type'] == 3 && $doctor_inquiry_config['is_enable'] == 1) {
// // 公益
// $user_doctor['free_clinic_price'] = $doctor_inquiry_config['inquiry_price'];
// }
// }
// }
// }
// 处理可处方字段
$user_doctor['multi_point_enable'] = 0;
@ -543,6 +523,11 @@ class PatientDoctorService extends BaseService
$item['service_attitude'] = floor($item['service_attitude'] * 0.05);
$item['reply_progress'] = floor($item['reply_progress'] * 0.05);
$item['avg_score'] = floor($item['avg_score'] * 0.05);
$item['inquiry_type'] = $item['OrderInquiry']['inquiry_type'];
$item['inquiry_mode'] = $item['OrderInquiry']['inquiry_mode'];
unset($item['OrderInquiry']);
}
}
return success($order_evaluation);

View File

@ -706,6 +706,7 @@ class PatientOrderService extends BaseService
$result['order_id'] = ""; // 订单主键id问诊订单order_inquiry_id 药品订单order_product_id
$result['created_at'] = ""; // 创建时间
$result['inquiry_type'] = 0; // 订单类型1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测)
$result['inquiry_mode'] = 0; // 接诊方式1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊)
$result['pay_config'] = []; // 小程序支付配置
$result['cannot_use_coupon_reason'] = ""; // 不可使用优惠卷原因
@ -753,6 +754,7 @@ class PatientOrderService extends BaseService
$result['order_id'] = $order_inquiry['order_inquiry_id'];
$result['created_at'] = $order_inquiry['created_at'];
$result['inquiry_type'] = $order_inquiry['inquiry_type'];
$result['inquiry_mode'] = $order_inquiry['inquiry_mode'];
// 获取订单金额
$result['amount_total'] = $order_inquiry['amount_total']; // 订单金额

View File

@ -766,6 +766,10 @@ class UserDoctorService extends BaseService
if (!empty($order_evaluation['data'])) {
foreach ($order_evaluation['data'] as &$item) {
$item['avg_score'] = floor($item['avg_score'] * 0.05);
$item['inquiry_type'] = $item['OrderInquiry']['inquiry_type'];
$item['inquiry_mode'] = $item['OrderInquiry']['inquiry_mode'];
unset($item['OrderInquiry']);
}
}