芝麻web文件管理V1.00
编辑当前文件:/home/sditechnicalteam/public_html/app/Console/Commands/SendProjectReminder.php
get(); foreach ($companies as $company) { $this->project_setting = ProjectSetting::where('company_id', $company->id)->first(); if ($this->project_setting->send_reminder == 'yes') { $projects = Project::whereNotNull('deadline') ->whereDate('deadline', Carbon::now($company->timezone)->addDays($this->project_setting->remind_time)) ->where('company_id', $company->id) ->get() ->makeHidden('isProjectAdmin'); $members = []; foreach ($projects as $project) { // Get project members foreach ($project->members as $member) { $members = Arr::add($members, $member->user->id, $member->user); } } $members = collect(array_values($members)); $users = []; if (in_array('admins', $this->project_setting->remind_to) && in_array('members', $this->project_setting->remind_to)) { $admins = User::allAdmins($company->id)->makeHidden('unreadNotifications'); $users = $admins->merge($members); } else { if (in_array('admins', $this->project_setting->remind_to)) { $users = User::allAdmins($company->id)->makeHidden('unreadNotifications'); } if (in_array('members', $this->project_setting->remind_to)) { $users = collect($users)->merge($members); } } foreach ($users as $user) { $projectsArr = []; foreach ($user->member as $projectMember) { $projectsArr = Arr::add($projectsArr, $projectMember->project->id, $projectMember->project->makeHidden('isProjectAdmin')); } $projectsArr = collect(array_values($projectsArr)); if (!$user->isAdmin($user->id)) { $projectsArr = $this->filterProjects($projectsArr, $company); } else { $projectsArr = !in_array('admins', $this->project_setting->remind_to) ? $this->filterProjects($projectsArr, $company) : $projects; } event(new ProjectReminderEvent($projectsArr, $user, ['company' => $company, 'project_setting' => $this->project_setting])); } } } } public function filterProjects($projectsArr, $company) { return $projectsArr->filter(function ($project) use ($company) { return Carbon::parse($project->deadline, $company->timezone) ->equalTo(Carbon::now($company->timezone)->addDays($this->project_setting->remind_time)->startOfDay()); }); } }