$user = auth('api')->user();
// if (!$user) {
// return $this->failed('获取不到用户信息!');
// }
$user_id = $user->id??1;
$company_id = $user->company_id??1;
$user_department_id = $user->department_id??26;
$now_time = date("Y-m-d H:i:s");
$meeting_reserve = FormMeetingRoomReserve::select('id','uid', 'meeting_room_id', 'leader_id', 'participant', 'participant_dep', 'subject', 'office', 'use_date_start', 'use_date_end')
->selectRaw('DATE_FORMAT(use_date_start,"%Y-%m-%d") as use_date')
->with(['meeting_room' => function ($query) {
$query->select('id', 'name');
}, 'staff' => function ($query) {
$query->select('id', 'name');
}])->where([['state', '=', FormState::FINISH], ['status', '!=', FormMeetingRoomReserve::STATUS_CANCEL]])
->where(function ($query) use ($now_time) {
$query->where('use_date_start', '>=', $now_time)
->orwhere([['use_date_start', '<=', $now_time], ['use_date_end', '>=', $now_time]]);
})->orderBy('use_date_start')
->get()
->toArray();
$personal_meeting_reserve_arr = self::getStaffMeetingReserve($meeting_reserve, $user_id, $company_id, $user_department_id);
$data=[];
$week_array=array("周日","周一","周二","周三","周四","周五","周六");
//当前页数 默认1
$page = $request->page ?: 1;
//每页的条数
$perPage = empty($request->page_size) ? 20 : $request->page_size;
//计算每页分页的初始位置
$offset = ($page * $perPage) - $perPage;
foreach ($personal_meeting_reserve_arr as $personal_meeting) {
$week =$week_array[date('w',strtotime($personal_meeting['use_date']))];
$data[$personal_meeting['use_date'].' '.$week][$personal_meeting['id']]['id'] = $personal_meeting['id'];
$data[$personal_meeting['use_date'].' '.$week][$personal_meeting['id']]['subject'] = $personal_meeting['subject'];
if ($personal_meeting['use_date_start'] > $now_time) {
$data[$personal_meeting['use_date'].' '.$week][$personal_meeting['id']]['is_start'] = '未开始';
} elseif ($now_time >= $personal_meeting['use_date_start'] && $now_time <= $personal_meeting['use_date_end']) {
$data[$personal_meeting['use_date'].' '.$week][$personal_meeting['id']]['is_start'] = '进行中';
}
$data[$personal_meeting['use_date'].' '.$week][$personal_meeting['id']]['room_name'] = $personal_meeting['meeting_room']['name'] ?? $personal_meeting['office'];
$data[$personal_meeting['use_date'].' '.$week][$personal_meeting['id']]['build_name'] = $personal_meeting['staff']['name'];
$data[$personal_meeting['use_date'].' '.$week][$personal_meeting['id']]['participant_name'] = $this->getStaff($personal_meeting['participant']);
$data[$personal_meeting['use_date'].' '.$week][$personal_meeting['id']]['participant_dep_name'] =$this->participantDep($personal_meeting['participant_dep']);
$data[$personal_meeting['use_date'].' '.$week][$personal_meeting['id']]['use_date_start'] = $personal_meeting['use_date_start'];
$data[$personal_meeting['use_date'].' '.$week][$personal_meeting['id']]['use_date_end'] = $personal_meeting['use_date_end'];
$data[$personal_meeting['use_date'].' '.$week ][$personal_meeting['id']]['use_week'] = $week_array[date('w',strtotime($personal_meeting['use_date_start']))];
}
$data = new LengthAwarePaginator(array_slice($data, $offset, $perPage, true), count($data), $perPage, $page,
['path' => $request->url(), 'query' => $request->query()]);
return $this->success($data);