zilong 4 yıl önce
ebeveyn
işleme
bea90b56ef

+ 27 - 0
app/Http/Controllers/Api/V1/DocterController.php

xqd xqd xqd xqd
@@ -14,6 +14,8 @@ use App\Models\DocterServiceTime;
 use App\Models\Organization;
 use App\Models\Schedule;
 use App\Models\SchedulePeriod;
+use App\Models\ServicePack;
+use App\Models\Team;
 use App\Models\TimePeriod;
 use DB;
 
@@ -31,6 +33,7 @@ class DocterController extends AuthController
             'sort_type' => 'in:0,1,2,3',
             'schedule_date' => 'required_if:list_type,3|date',
             'time_period_id' => 'required_if:list_type,3|integer',
+            'is_pack_docter' => 'in:0,1',
         ]);
         $user = $this->user;
 
@@ -83,6 +86,27 @@ class DocterController extends AuthController
             $builder->whereNotIn('id', $docterIds3);
         }
 
+        if (!empty($req['is_pack_docter'])) {
+            $team_ids = ServicePack::pluck('team_id')->toArray();
+            $team_id_arr = [];
+            foreach ($team_ids as $k => $v) {
+                if (!empty($v) && is_array($v)) {
+                    $team_id_arr = array_merge($team_id_arr, $v);
+                }
+            }
+            $team_id_arr = array_values(array_unique($team_id_arr));
+            $teams = Team::with(['docter'])->whereIn('id', $team_id_arr)->get()->toArray();
+            $docterIds4 = [];
+            foreach ($teams as $k => $v) {
+                foreach ($v['docter'] as $k1 => $v1) {
+                    if (!in_array($v1['id'], $docterIds4)) {
+                        $docterIds4[] = $v1['id'];
+                    }
+                }
+            }
+            $builder->whereIn('id', $docterIds4);
+        }
+
         if (!empty($req['sort_type'])) {
             if ($req['sort_type'] == 1) {
                 $builder->orderBy('distance', 'asc');
@@ -108,6 +132,9 @@ class DocterController extends AuthController
             if (!empty($req['city_id'])) {
                 $builder2->whereIn('id', $cityDocterIds);
             }
+            if (!empty($req['is_pack_docter'])) {
+                $builder->whereIn('id', $docterIds4);
+            }
             if (!empty($req['sort_type'])) {
                 if ($req['sort_type'] == 1) {
                     $builder2->orderBy('distance', 'asc');

+ 5 - 4
app/Http/Controllers/Api/V1/OrderController.php

xqd xqd xqd xqd xqd
@@ -24,6 +24,7 @@ use App\Models\UserCoupon;
 use App\Models\Vaccine;
 use EasyWeChat\Factory;
 use DB;
+use Exception;
 
 class OrderController extends AuthController
 {
@@ -166,7 +167,7 @@ class OrderController extends AuthController
             }
 
             DB::commit();
-        } catch (\Exception $e) {
+        } catch (Exception $e) {
             DB::rollBack();
             return out(null, 500, '下单失败,请稍后重试', $e->getMessage());
         }
@@ -341,7 +342,7 @@ class OrderController extends AuthController
             }
 
             DB::commit();
-        } catch (\Exception $e) {
+        } catch (Exception $e) {
             DB::rollBack();
             return out(null, 500, '下单失败,请稍后重试', $e->getMessage());
         }
@@ -488,7 +489,7 @@ class OrderController extends AuthController
             }
 
             DB::commit();
-        } catch (\Exception $e) {
+        } catch (Exception $e) {
             DB::rollBack();
             return out(null, 500, '下单失败,请稍后重试', $e->getMessage());
         }
@@ -618,7 +619,7 @@ class OrderController extends AuthController
             $config = $payment->jssdk->bridgeConfig($result['prepay_id'], false);
 
             DB::commit();
-        } catch (\Exception $e) {
+        } catch (Exception $e) {
             DB::rollBack();
             return out(null, 500, '下单失败,请稍后重试', $e->getMessage());
         }