diff --git a/app/Model/UserDoctor.php b/app/Model/UserDoctor.php index 50f6993..0100635 100644 --- a/app/Model/UserDoctor.php +++ b/app/Model/UserDoctor.php @@ -282,7 +282,6 @@ class UserDoctor extends Model // $query->where($params); // }); - if ($is_first_online == 1){ $query->join('user as u', function ($query) { $query->on('user_doctor.user_id', '=', 'u.user_id'); @@ -291,49 +290,38 @@ class UserDoctor extends Model ->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]) -// ->whereIn('inquiry_mode', [1,2,6,7]) -// ->orderBy('inquiry_price', 'desc') -// ->take(1); -// }) -// ->select("user_doctor.*") -// ->groupBy("user_doctor.doctor_id"); -// } - - // select doctor_id, min(price) price_min from price group by doctor_id - if (in_array($sort_order,[1,3,4])){ - $raw = "inquiry_price as min_inquiry_price"; - if ($sort_order == 1){ - // 综合-价格从低到高 - $raw = "MIN(inquiry_price) as min_inquiry_price"; - } elseif ($sort_order == 3){ - // 价格从低到高 - $raw = "MIN(inquiry_price) as min_inquiry_price"; - } elseif ($sort_order == 4){ - // 价格从高到低 - $raw = "MAX(inquiry_price) as min_inquiry_price"; - } - - $latestPosts = Db::table('doctor_inquiry_config') - ->select('doctor_inquiry_config.doctor_id', Db::raw($raw)) - ->where('is_enable', 1); - if (!empty($inquiry_type)){ - $latestPosts = $latestPosts->whereIn('inquiry_type', $inquiry_type) - ->whereIn('inquiry_mode',$inquiry_mode); - } - - $latestPosts = $latestPosts->groupBy(["doctor_inquiry_config.doctor_id"]); - - $query = $query - ->joinSub($latestPosts, 'doctor_inquiry_config', function($join) { - $join->on('user_doctor.doctor_id', '=', 'doctor_inquiry_config.doctor_id'); - }); + // 问诊服务搜索 + // select doctor_id, min(price) price_min from price group by doctor_id + $raw = "inquiry_price as min_inquiry_price"; + if (!empty($sort_order) && in_array($sort_order,[1,3,4])){ + if ($sort_order == 1){ + // 综合-价格从低到高 + $raw = "MIN(inquiry_price) as min_inquiry_price"; + } elseif ($sort_order == 3){ + // 价格从低到高 + $raw = "MIN(inquiry_price) as min_inquiry_price"; + } elseif ($sort_order == 4){ + // 价格从高到低 + $raw = "MAX(inquiry_price) as min_inquiry_price"; } + $latestPosts = Db::table('doctor_inquiry_config') + ->select('doctor_inquiry_config.doctor_id', Db::raw($raw)) + ->where('is_enable', 1); + if (!empty($inquiry_type)){ + $latestPosts = $latestPosts->whereIn('inquiry_type', $inquiry_type) + ->whereIn('inquiry_mode',$inquiry_mode); + } + + $latestPosts = $latestPosts->groupBy(["doctor_inquiry_config.doctor_id"]); + + $query = $query + ->joinSub($latestPosts, 'doctor_inquiry_config', function($join) { + $join->on('user_doctor.doctor_id', '=', 'doctor_inquiry_config.doctor_id'); + }); + } + + if (!empty($sort_order)){ if ($sort_order == 1) { // 综合-价格从低到高 $query->orderBy('is_recommend', 'desc');// 是否首页推荐(0:否 1:是) @@ -403,7 +391,7 @@ class UserDoctor extends Model ->get(); dump($doctors->toArray()); - return $doctors; + return array(); // $query = self::orderBy('served_patients_num', 'desc'); // diff --git a/app/Services/DoctorInquiryService.php b/app/Services/DoctorInquiryService.php index 91dfc60..7e8e074 100644 --- a/app/Services/DoctorInquiryService.php +++ b/app/Services/DoctorInquiryService.php @@ -391,11 +391,14 @@ class DoctorInquiryService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "本服务需设置图文问诊的价格,才可开启"); } + // 价格计算(专家图文问诊价格*费率+30盒35元的干爽颗粒) + $service_price = $doctor_inquiry_config['inquiry_price'] * $config_health_package['service_rate'] / 100 * 6 + 35 * 30; + // 创建医生健康包 $data = array(); $data['doctor_id'] = $user_info['client_user_id']; $data['config_health_package_id'] = $config_health_package['config_health_package_id']; - $data['service_price'] = $doctor_inquiry_config['inquiry_price'] * $config_health_package['service_rate'] / 100 * 6; + $data['service_price'] = $service_price; $doctor_config_health_package = DoctorConfigHealthPackage::addDoctorConfigHealthPackage($data); if (empty($doctor_config_health_package)){ Db::rollBack();