示例#1
0
 /**
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  */
 public function stats()
 {
     $user = \Auth::id();
     $now = new Carbon();
     $currentFirstDay = clone $now;
     $currentFirstDay = $currentFirstDay->firstOfMonth();
     $currentLastDay = clone $now;
     $currentLastDay = $currentLastDay->lastOfMonth();
     $thisMonth = Checkin::where('user_id', $user)->whereBetween('checkin', [$currentFirstDay, $currentLastDay])->whereBetween('checkout', [$currentFirstDay, $currentLastDay])->orderBy('checkout')->get();
     $stats['current']['total'] = $thisMonth->sum('burned');
     $stats['current']['min'] = $thisMonth->min('burned');
     $stats['current']['max'] = $thisMonth->max('burned');
     $previousLastDay = clone $currentFirstDay;
     $previousLastDay = $previousLastDay->modify('-1 day');
     $previousFirstDay = clone $previousLastDay;
     $previousFirstDay = $previousFirstDay->firstOfMonth();
     $previousMonth = Checkin::where('user_id', $user)->whereBetween('checkin', [$previousFirstDay, $previousLastDay])->whereBetween('checkout', [$previousFirstDay, $previousLastDay])->orderBy('checkout')->get();
     $stats['previous']['total'] = $previousMonth->sum('burned');
     $stats['previous']['min'] = $previousMonth->min('burned');
     $stats['previous']['max'] = $previousMonth->max('burned');
     if ($stats['current']['total'] < $stats['previous']['total']) {
         $stats['difference'] = $stats['previous']['total'] - $stats['current']['total'];
         $stats['suggestion'] = Equipment::orderBy('calories_pm', 'desc')->first();
     }
     return view('equipment.progress', $stats);
 }