コード例 #1
0
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     $campaign = Campaign::first();
     $actions = Action::forCampaign($campaign)->get();
     $opened = $actions->filter(function ($action) {
         return $action->action === 'opened';
     })->groupBy('contact_id');
     $website = $actions->filter(function ($action) {
         return $action->action === 'website';
     })->groupBy('contact_id');
     $skipped = $actions->filter(function ($action) {
         return $action->action === 'skipped';
     })->groupBy('contact_id');
     $emailed = $actions->filter(function ($action) {
         return $action->action === 'email';
     })->groupBy('contact_id');
     $youtube = $actions->filter(function ($action) {
         return $action->action === 'youtube';
     })->groupBy('contact_id');
     $moreinfo = $actions->filter(function ($action) {
         return $action->action === 'moreinfo';
     })->groupBy('contact_id');
     $unsubscribed = Contact::where('unsubscribe', '=', 1);
     $openedPercentage = $campaign->emails->count() ? round($opened->count() / $campaign->emails->count() * 100, 2) : 0;
     $moreinfoPercentage = $campaign->emails->count() ? round($moreinfo->count() / $campaign->emails->count() * 100, 2) : 0;
     $websitePercentage = $campaign->emails->count() ? round($website->count() / $campaign->emails->count() * 100, 2) : 0;
     $skippedPercentage = $campaign->emails->count() ? round($skipped->count() / $campaign->emails->count() * 100, 2) : 0;
     $emailedPercentage = $campaign->emails->count() ? round($emailed->count() / $campaign->emails->count() * 100, 2) : 0;
     $youtubePercentage = $campaign->emails->count() ? round($youtube->count() / $campaign->emails->count() * 100, 2) : 0;
     $unsubscribedPercentage = $campaign->emails->count() ? round($unsubscribed->count() / $campaign->emails->count() * 100, 2) : 0;
     $sentPercentage = $campaign->emails->count() ? round($campaign->sentEmails->count() / $campaign->emails->count() * 100, 2) : 0;
     return view()->make('admin.index')->with(['campaign' => $campaign, 'actions' => $actions, 'openedPercentage' => $openedPercentage, 'websitePercentage' => $websitePercentage, 'skippedPercentage' => $skippedPercentage, 'emailedPercentage' => $emailedPercentage, 'youtubePercentage' => $youtubePercentage, 'moreinfoPercentage' => $moreinfoPercentage, 'unsubscribedPercentage' => $unsubscribedPercentage, 'sentPercentage' => $sentPercentage]);
 }