input('activity_id', 0); $games = ActivityGame::with(['logs'=> function($q){ $q->where('user_id', auth('api')->user()?->id ?? 0); }]) ->where('activity_id', $activityId)->show()->sort() ->simplePaginate(100); return $this->success(['games'=>ActivityGameResource::collection($games)->resolve()]); } public function latestGame(Request $request) { $game = ActivityGame::whereHas('activity', function($q){ return $q->where('state', '>' ,0); })->show() // ->whereDate('game_at', now()) ->where('game_at', '>', now()) ->where('state', 1) ->orderBy('game_at', 'asc')->first(); //若已经没有最新的活动了, 则拿取当天最后一个 if(!$game){ $game = ActivityGame::whereHas('activity', function($q){ return $q->where('state', '>' ,0); })->show() // ->whereDate('game_at', now()) ->orderBy('game_at', 'desc')->first(); } if($game){ $game->load(['logs'=> function($q){ $q->where('user_id', auth('api')->user()?->id ?? 0); }]); return ActivityGameResource::make($game); } return $this->success(); } public function joinGame(ActivityGame $game, JoinGameRequest $request) { $res = $this->service->join($game, $request->user(), $request->input('score')); if($res['status']){ return $this->success(null, '竞猜成功'); }else{ return $this->error($res['message']); } } public function latestUserGame(Request $request) { $list = UserGame::with('user', 'game', 'userActivity')->orderBy('created_at', 'desc')->limit(30)->get(); return $this->success(['list' => UserGameResource::collection($list)->resolve()]); } public function activityUserGame(Request $request) { $activityId = $request->input('activity_id', 0); $userId = $request->input('user_id', auth('api')->user()?->id ?? 0); $list = UserGame::with('user', 'game')->where([ 'activity_id' => $activityId, 'user_id' => $userId, ])->orderBy('created_at', 'desc') ->simplePaginate($request->query('per_page', 20)); return $this->success(['list'=>UserGameResource::collection($list)->resolve()]); } }