class Competitions::StudentsController < Competitions::BaseController
  def index
    keyword = params[:keyword].to_s.strip
    if keyword.blank?
      @students = []
      return
    end

    students = User.joins(:user_extension).where(status: 1, user_extensions: { identity: 1 })
    students = students.where(user_extensions: { school_id: current_competition.region_schools.pluck(:school_id) }) if current_competition.region_schools.size > 0
    students = students.where.not(id: params[:student_ids]) if params[:student_ids].present?
    students = students.where('LOWER(CONCAT(lastname, firstname, login, nickname)) LIKE ?', "%#{keyword}%")
    @students = students.includes(user_extension: :school).limit(20)

    # 队员多次报名限制
    if current_competition.member_multiple_limited?
      ids = @students.map(&:id)
      members = current_competition.team_members.where(user_id: ids)
      members = members.where.not(competition_team_id: params[:team_id]) if params[:team_id].present?
      @enrolled_map = members.group(:user_id).count
    end
  end
end