cqpCow hace 1 año
padre
commit
93271aadab
Se han modificado 1 ficheros con 25 adiciones y 5 borrados
  1. 25 5
      app/Service/ScheduleService.php

+ 25 - 5
app/Service/ScheduleService.php

@@ -169,14 +169,12 @@ class ScheduleService extends Service
             ->first();
         if(empty($schedule)) return [false,'排班设置不存在或已被删除'];
         $schedule = $schedule->toArray();
+        $schedule['choose'] = 1;
 
         $info = ScheduleDetail::where('del_time',0)
             ->where('schedule_id',$data['id'])
             ->select('start_time','end_time','num')
             ->get()->toArray();
-        foreach ($info as $key => $value){
-            $info[$key]['choose'] = 1;
-        }
 
         $schedule['detail'] = array_values($info);
 
@@ -391,8 +389,16 @@ class ScheduleService extends Service
         $schedule = $model->where('del_time',0)
             ->where('start_time', '>=', $startTimestamp)
             ->where('end_time', '<=', $endTimestamp)
+            ->select('id','mark','start_time','end_time')
             ->get()->toArray();
         if(empty($schedule)) return [true,''];
+        $schedule_array = $schedule_map = [];
+        foreach ($schedule as $value){
+            for ($i = $value['start_time']; $i <= $value['end_time']; $i += 86400) { // 每天86400秒
+                $schedule_array[] = date("Y-m-d", $i);
+                $schedule_map[$value['id']][] = date("Y-m-d", $i);
+            }
+        }
 
         $schedule_detail_list = ScheduleDetail::where('del_time',0)
             ->whereIn('schedule_id',array_column($schedule,'id'))
@@ -400,14 +406,28 @@ class ScheduleService extends Service
             ->get()->toArray();
         if(empty($schedule_detail_list)) return [true,''];
         $schedule_detail_list_map = [];
-        foreach ($schedule_detail_list as $key => $value){
+        foreach ($schedule_detail_list as $value){
             $schedule_detail_list_map[$value['schedule_id']][] = $value;
         }
+        $return = [];
+        foreach ($schedule_map as $key => $value){
+            if(isset($schedule_detail_list_map[$key])){
+                foreach ($value as $v){
+                    $return[] = [
+                        'time' => $v,
+                        'detail' => $schedule_detail_list_map[$key]
+                    ];
+                }
+            }
+        }
 
         foreach ($schedule as $key => $value){
             $schedule[$key]['detail'] = $schedule_detail_list_map[$value['id']] ?? [];
         }
 
-        return [true, $schedule];
+        $result['time'] = $schedule_array;
+        $result['detail'] = $return;
+
+        return [true, $result];
     }
 }