diff --git a/app/controllers/competition_infos_controller.rb b/app/controllers/competition_infos_controller.rb index 7891a8ce..ece2ed83 100644 --- a/app/controllers/competition_infos_controller.rb +++ b/app/controllers/competition_infos_controller.rb @@ -8,7 +8,6 @@ class CompetitionInfosController < ApplicationController def index @competition_infos = CompetitionInfo.order(created_at: :desc) - @competition_infos = @competition_infos.where(status: true) if params[:status]=="true" @competition_infos = @competition_infos.where("title like ?", "%#{params[:name]}%") if params[:name].present? if params[:sort_by].to_s == "hot" @competition_infos = @competition_infos.select("competition_infos.*, (SELECT count(1) from competition_users where competition_users.competition_info_id = competition_infos.id ) as count").order("count desc") @@ -19,6 +18,16 @@ class CompetitionInfosController < ApplicationController end end + def recommend + @competition_infos = CompetitionInfo.where(status: false).order(created_at: :desc) + @competition_infos = @competition_infos.where("title like ?", "%#{params[:name]}%") if params[:name].present? + if params[:sort_by].to_s == "hot" + @competition_infos = @competition_infos.select("competition_infos.*, (SELECT count(1) from competition_users where competition_users.competition_info_id = competition_infos.id ) as count").order("count desc") + end + @competition_infos = paginate(@competition_infos) + render_ok(data: @competition_infos.as_json) + end + # GET /competition_infos/new def new @competition_info = CompetitionInfo.new diff --git a/config/routes.rb b/config/routes.rb index 2932a037..3d198025 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -401,6 +401,7 @@ Rails.application.routes.draw do resources :notices, only: [:create] resources :competition_infos do + get :recommend, on: :collection post :auto_score, on: :collection member do get :enroll_list