| 1234567891011121314151617181920212223242526272829303132333435363738394041 | 
							- <?php
 
- namespace App\Http\Controllers\Staff;
 
- use App\Http\Requests\Admin\PlanSave;
 
- use App\Http\Requests\Admin\PlanSort;
 
- use App\Http\Requests\Admin\PlanUpdate;
 
- use Illuminate\Http\Request;
 
- use App\Http\Controllers\Controller;
 
- use App\Models\Plan;
 
- use App\Models\Order;
 
- use App\Models\User;
 
- use Illuminate\Support\Facades\DB;
 
- class PlanController extends Controller
 
- {
 
-     public function fetch(Request $request)
 
-     {
 
-         $counts = User::select(
 
-             DB::raw("plan_id"),
 
-             DB::raw("count(*) as count")
 
-         )
 
-             ->where('plan_id', '!=', NULL)
 
-             ->where(function ($query) {
 
-                 $query->where('expired_at', '>=', time())
 
-                     ->orWhere('expired_at', NULL);
 
-             })
 
-             ->groupBy("plan_id")
 
-             ->get();
 
-         $plans = Plan::orderBy('sort', 'ASC')->get();
 
-         foreach ($plans as $k => $v) {
 
-             $plans[$k]->count = 0;
 
-             foreach ($counts as $kk => $vv) {
 
-                 if ($plans[$k]->id === $counts[$kk]->plan_id) $plans[$k]->count = $counts[$kk]->count;
 
-             }
 
-         }
 
-         return response([
 
-             'data' => $plans
 
-         ]);
 
-     }
 
- }
 
 
  |