Mike 4 gadi atpakaļ
vecāks
revīzija
82596ada50

+ 13 - 13
app/Community/Controllers/ApiController.php

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -426,8 +426,8 @@ class ApiController extends Controller
         $start = time();
 
         //删除排班
-        $schedule_ids = Schedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId])->where('schedule_day','>',$today)->pluck('id')->toArray();
-        Schedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId])->where('schedule_day','>',$today)->delete();
+        $schedule_ids = Schedule::where(['docter_id'=>$docterId])->where('schedule_day','>',$today)->pluck('id')->toArray();
+        Schedule::where(['docter_id'=>$docterId])->where('schedule_day','>',$today)->delete();
         //删除具体排班
         SchedulePeriod::whereIn('schedule_id',$schedule_ids)->delete();
         $allScheduleData = [];
@@ -440,7 +440,7 @@ class ApiController extends Controller
             $scheduleData['docter_id'] = $docterId;
             $scheduleData['schedule_date'] = $date;
             $scheduleData['schedule_day'] = $numDate;
-            $scheduleData['organization_id'] = $orgId;
+//            $scheduleData['organization_id'] = $orgId;
 
             $scheduleIsHave = Schedule::where($scheduleData)->count();
             $scheduleData['per_time_num'] = $serviceNum;
@@ -450,7 +450,7 @@ class ApiController extends Controller
         if($allScheduleData) Schedule::insert($allScheduleData);
 
 //        echo '医生id '.$docterId.' 机构id '.$orgId . 'times ';
-        $schedule = Schedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId])->where('schedule_date','>=',date('Y-m-d',time()))
+        $schedule = Schedule::where(['docter_id'=>$docterId])->where('schedule_date','>=',date('Y-m-d',time()))
             ->distinct('schedule_date')->pluck('schedule_date','id')->toArray();
 
         $allData = [];
@@ -768,7 +768,7 @@ class ApiController extends Controller
                     $time_periods = TimePeriod::where(['org_id' => $org_id, 'docter_id' => $docter_id, 'type' => $sType])->whereBetween('end_time_period',$times[$tType])->pluck('id')->toArray();
                     $self_schedule = SelfSchedule::where(['docter_id' => $docter_id, 'schedule_type' => $sType, 'organization_id'=>$org_id,'type' =>$tType])->distinct('type')
                         ->orderBy('schedule_date')->get(['schedule_date', 'type', 'week'])->toArray();
-                    $schedule = Schedule::where(['docter_id' => $docter_id, 'organization_id'=>0])->pluck('schedule_date', 'id')->toArray();
+                    $schedule = Schedule::where(['docter_id' => $docter_id])->pluck('schedule_date', 'id')->toArray();
                     $week_schedule = WeekSchedule::where(['docter_id' => $docter_id, 'type' => $tType,'schedule_type'=>$sType])
                         ->distinct('type')
                         ->orderBy('week')
@@ -777,7 +777,7 @@ class ApiController extends Controller
                         ->toArray();
                 } else {
                     $time_periods = TimePeriod::where(['org_id' => $org_id, 'docter_id' => 0, 'type' =>$sType])->whereBetween('end_time_period',$times[$tType])->pluck('id')->toArray();
-                    $schedule = Schedule::where(['docter_id' => 0, 'organization_id'=>$org_id])->pluck('schedule_date', 'id')->toArray();
+                    $schedule = Schedule::where(['docter_id' => 0])->pluck('schedule_date', 'id')->toArray();
                     $self_schedule = SelfSchedule::where(['docter_id' => 0, 'schedule_type' => $sType,'organization_id'=>$org_id,'type' =>$tType])->distinct('type')
                         ->orderBy('schedule_date')->where('schedule_date','>',$Today)->get(['schedule_date', 'type', 'week'])->toArray();
                     $week_schedule = WeekSchedule::where(['organization_id' =>$org_id, 'type' => $tType,'schedule_type'=>$sType])
@@ -949,7 +949,7 @@ class ApiController extends Controller
                 $scheduleData['docter_id'] = $docterId;
                 $scheduleData['schedule_date'] = $date;
                 $scheduleData['schedule_day'] = $numDate;
-                $scheduleData['organization_id'] = $orgId;
+//                $scheduleData['organization_id'] = $orgId;
 
                 $scheduleIsHave = Schedule::where($scheduleData)->count();
                 $scheduleData['per_time_num'] = $serviceNum;
@@ -969,17 +969,17 @@ class ApiController extends Controller
                 $scheduleData['docter_id'] = $docterId;
                 $scheduleData['schedule_date'] = $date;
                 $scheduleData['schedule_day'] = $numDate;
-                $scheduleData['organization_id'] = $orgId;
+//                $scheduleData['organization_id'] = $orgId;
                 $scheduleIsHave = Schedule::where($scheduleData)->count();
                 $scheduleData['per_time_num'] = $serviceNum;
                 if (!$scheduleIsHave)  Schedule::insert($scheduleData);
             }
 
             //todo 插入第三个月后的当日号
-            $schedule = Schedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId])->where('schedule_date','>=',date('Y-m-d',time()))
+            $schedule = Schedule::where(['docter_id'=>$docterId])->where('schedule_date','>=',date('Y-m-d',time()))
                 ->distinct('schedule_date')->pluck('schedule_date','id')->toArray();
             if($docterId == 0){
-                $schedule = Schedule::where(['docter_id'=>0,'organization_id'=>$orgId])->where('schedule_date','>=',date('Y-m-d',time()))
+                $schedule = Schedule::where(['docter_id'=>0])->where('schedule_date','>=',date('Y-m-d',time()))
                     ->distinct('schedule_date')->pluck('schedule_date','id')->toArray();
             }
         }
@@ -1027,7 +1027,7 @@ class ApiController extends Controller
             $self_data['organization_id'] = $orgId;
             $self_data['docter_id'] = $docterId;
             $self_data['schedule_type'] = $sType;
-            $s_id = Schedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId,'schedule_date'=>$val['schedule_date']])->value('id');
+            $s_id = Schedule::where(['docter_id'=>$docterId,'schedule_date'=>$val['schedule_date']])->value('id');
             $numDay = intval(str_replace('-','',$val['schedule_date']));
 //            if(empty($s_id)) {
 //                Schedule::insert(['docter_id'=>$docterId,'organization_id'=>$orgId,'schedule_date'=>$val['schedule_date'],'schedule_day'=>$numDay]);
@@ -1102,7 +1102,7 @@ class ApiController extends Controller
 
                 if($v['status'] == true){
                     $num_date = intval(date('Ymd',strtotime($today)));
-                    $sche_data = ['docter_id'=>intval($docter_id),'organization_id'=>$org_id,'schedule_date'=>$today,'schedule_day'=>$num_date];
+                    $sche_data = ['docter_id'=>intval($docter_id),'schedule_date'=>$today,'schedule_day'=>$num_date];
                     //判断是否有排班信息
                     $s_id = Schedule::where($sche_data)->count();
                     if(!$s_id){
@@ -1166,7 +1166,7 @@ class ApiController extends Controller
 //                    if(!$week_schedule) continue;
 //
 //                    //删除排班日期
-                        $s_id = Schedule::where(['schedule_date'=>$today,'docter_id'=>$docter_id,'organization_id'=>$org_id])->value('id');
+                        $s_id = Schedule::where(['schedule_date'=>$today,'docter_id'=>$docter_id])->value('id');
                         unset($data['type']);
                         $scount = SelfSchedule::where($data)->count();
                         $pcount = SchedulePeriod::where($data)->count();

+ 61 - 61
app/Http/Controllers/Api/V1/DocterController.php

xqd xqd xqd
@@ -176,44 +176,6 @@ class DocterController extends AuthController
         return ($data);
     }
 
-//    public function schedulePeriodList()
-//    {
-//        $req = request()->post();
-//        $this->validate(request(), [
-//            'docter_id' => 'required|integer',
-//            'organization_id' => 'integer',
-//            'per_page' => 'integer',
-//            'latitude' => 'numeric',
-//            'longitude' => 'numeric',
-//        ]);
-//        $user = $this->user;
-//        //todo Schedule表 考虑是否有必要性,日期可以通过timePeriod取到。
-//        $builder = Schedule::with(['schedulePeriod.timePeriod', 'schedulePeriod.organization'])->where('docter_id', $req['docter_id'])->where('schedule_day', '>=', date('Ymd'));
-//        if (!empty($req['organization_id'])) {
-//            $builder->where('organization_id', $req['organization_id']);
-//        }
-//        $data = $builder->paginate($req['per_page']??15)->toArray();
-//        if (!empty($data)) {
-//            foreach ($data['data'] as $k => &$v) {
-//                foreach ($v['schedule_period'] as $k1 => &$v1) {
-//                    if (!empty($v1['organization'])) {
-//                        $v1['organization']['distance'] = get_user_distance($user, $v1['organization']['latitude'], $v1['organization']['longitude']);
-//                    }
-//                    $docterSettings = DocterSetting::select(['service_num'])->where('docter_id', $req['docter_id'])->where('type', 1)->where('org_id', $v1['organization_id'])->first();
-//                    if (empty($docterSettings)) {
-//                        $v1['can_appoint_num'] = 0;
-//                    }
-//                    else {
-//                        $can_appoint_num = $docterSettings['service_num'] - $v1['order_num'];
-//                        $v1['can_appoint_num'] = $can_appoint_num < 0 ? 0 : $can_appoint_num;
-//                    }
-//                }
-//            }
-//        }
-//
-//        return out($data);
-//    }
-
     public function schedulePeriodList()
     {
         $req = request()->post();
@@ -225,16 +187,15 @@ class DocterController extends AuthController
             'longitude' => 'numeric',
         ]);
         $user = $this->user;
-        $builder = schedulePeriod::with(['timePeriod', 'organization'])->where('docter_id', $req['docter_id'])->where('schedule_date', '>=', date('Y-m-d'));
+        //todo Schedule表 考虑是否有必要性,日期可以通过timePeriod取到。
+        $builder = Schedule::with(['schedulePeriod.timePeriod', 'schedulePeriod.organization'])->where('docter_id', $req['docter_id'])->where('schedule_day', '>=', date('Ymd'));
         if (!empty($req['organization_id'])) {
             $builder->where('organization_id', $req['organization_id']);
         }
         $data = $builder->paginate($req['per_page']??15)->toArray();
-        //日期有重复,不同机构排班
-        $newdata = array();
         if (!empty($data)) {
-//            foreach ($data['data'] as $k => &$v) {
-                foreach ($data as $k1 => $v1) {
+            foreach ($data['data'] as $k => &$v) {
+                foreach ($v['schedule_period'] as $k1 => &$v1) {
                     if (!empty($v1['organization'])) {
                         $v1['organization']['distance'] = get_user_distance($user, $v1['organization']['latitude'], $v1['organization']['longitude']);
                     }
@@ -246,29 +207,68 @@ class DocterController extends AuthController
                         $can_appoint_num = $docterSettings['service_num'] - $v1['order_num'];
                         $v1['can_appoint_num'] = $can_appoint_num < 0 ? 0 : $can_appoint_num;
                     }
-
-                    if(empty($newdata[$v1['time_period']])){
-                        $newdata[$v1['schedule_date']] = $v1;
-                    }else{
-                        $newd = $newdata[$v1['schedule_date']];
-                        foreach ($newd['time_period'] as $k2 => $v2) {
-                            array_push($v1['time_period'],$v2);
-                        }
-                        $newdata[$v['schedule_date']] = $v1;
-
-                    }
                 }
-
-//            }
-        }
-        $res = array();
-        foreach ($newdata as $v) {
-            if (!empty($v['time_period']))$res[] = $v;
+            }
         }
 
-        return out($res);
+        return out($data);
     }
 
+//    public function schedulePeriodList()
+//    {
+//        $req = request()->post();
+//        $this->validate(request(), [
+//            'docter_id' => 'required|integer',
+//            'organization_id' => 'integer',
+//            'per_page' => 'integer',
+//            'latitude' => 'numeric',
+//            'longitude' => 'numeric',
+//        ]);
+//        $user = $this->user;
+//        $builder = schedulePeriod::with(['timePeriod', 'organization'])->where('docter_id', $req['docter_id'])->where('schedule_date', '>=', date('Y-m-d'));
+//        if (!empty($req['organization_id'])) {
+//            $builder->where('organization_id', $req['organization_id']);
+//        }
+//        $data = $builder->paginate($req['per_page']??15)->toArray();
+//        //日期有重复,不同机构排班
+//        $newdata = array();
+//        if (!empty($data)) {
+////            foreach ($data['data'] as $k => &$v) {
+//                foreach ($data as $k1 => $v1) {
+//                    if (!empty($v1['organization'])) {
+//                        $v1['organization']['distance'] = get_user_distance($user, $v1['organization']['latitude'], $v1['organization']['longitude']);
+//                    }
+//                    $docterSettings = DocterSetting::select(['service_num'])->where('docter_id', $req['docter_id'])->where('type', 1)->where('org_id', $v1['organization_id'])->first();
+//                    if (empty($docterSettings)) {
+//                        $v1['can_appoint_num'] = 0;
+//                    }
+//                    else {
+//                        $can_appoint_num = $docterSettings['service_num'] - $v1['order_num'];
+//                        $v1['can_appoint_num'] = $can_appoint_num < 0 ? 0 : $can_appoint_num;
+//                    }
+//
+//                    if(empty($newdata[$v1['time_period']])){
+//                        $newdata[$v1['schedule_date']] = $v1;
+//                    }else{
+//                        $newd = $newdata[$v1['schedule_date']];
+//                        foreach ($newd['time_period'] as $k2 => $v2) {
+//                            array_push($v1['time_period'],$v2);
+//                        }
+//                        $newdata[$v['schedule_date']] = $v1;
+//
+//                    }
+//                }
+//
+////            }
+//        }
+//        $res = array();
+//        foreach ($newdata as $v) {
+//            if (!empty($v['time_period']))$res[] = $v;
+//        }
+//
+//        return out($res);
+//    }
+
     public function timePeriodList()
     {
         $req = request()->post();