forked from Trustie/forgeplus
竞赛上架下架开关
This commit is contained in:
parent
783474cbd9
commit
c42fa03b8b
|
|
@ -1,12 +1,18 @@
|
|||
class CompetitionInfosController < ApplicationController
|
||||
include ApplicationHelper
|
||||
before_action :find_competition, only: [:show, :edit, :update, :update_zone_or_sub, :enroll, :upload, :enroll_status,
|
||||
:statistics, :enroll_list, :ranking_list, :enroll_update, :enroll_status_update, :upload_enroll_template, :enroll_template]
|
||||
:statistics, :enroll_list, :ranking_list, :enroll_update, :enroll_status_update,
|
||||
:upload_enroll_template, :enroll_template, :online_switch]
|
||||
before_action :require_admin, only: [:index, :new, :edit, :create]
|
||||
before_action :check_competition_manager, only: [:update, :enroll_status_update]
|
||||
|
||||
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")
|
||||
end
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.json { render_ok(data: @competition_infos.as_json) }
|
||||
|
|
@ -57,6 +63,15 @@ class CompetitionInfosController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
def online_switch
|
||||
if @competition_info.status
|
||||
@competition_info.update_attributes!(status: false)
|
||||
else
|
||||
@competition_info.update_attributes!(status: true)
|
||||
end
|
||||
render_ok
|
||||
end
|
||||
|
||||
def update_zone_or_sub
|
||||
tip_exception "参数错误" if params[:new].blank? || params[:old].blank? || params[:type].blank?
|
||||
if params[:type].to_s == "zone"
|
||||
|
|
@ -128,7 +143,7 @@ class CompetitionInfosController < ApplicationController
|
|||
end
|
||||
total_col = @competition_info.enroll_fields.values.size + max_members.max.to_i
|
||||
@export_infos.each do |info|
|
||||
blank_str=[]
|
||||
blank_str = []
|
||||
(total_col - 1 - info.size).times do
|
||||
blank_str.push("")
|
||||
end
|
||||
|
|
@ -140,7 +155,7 @@ class CompetitionInfosController < ApplicationController
|
|||
render xlsx: "#{export_name.strip}", template: "competition_infos/enroll_list.xlsx.axlsx", locals: { table_columns: @table_columns, export_infos: @export_infos_new }
|
||||
}
|
||||
format.zip {
|
||||
competition_users = params[:upload].to_s == "true" ? competition_users.where(status: [2,3]) : competition_users.where(status: [1, 2, 3])
|
||||
competition_users = params[:upload].to_s == "true" ? competition_users.where(status: [2, 3]) : competition_users.where(status: [1, 2, 3])
|
||||
Rails.logger.info("######_______________########competition_users.size: #{competition_users.size}")
|
||||
service = Competition::ZipWorkFileService.new(competition_users, "files")
|
||||
send_file service.zip, filename: service.filename, type: 'application/zip'
|
||||
|
|
@ -218,7 +233,7 @@ class CompetitionInfosController < ApplicationController
|
|||
@competition_user = CompetitionUser.find_by(competition_info: @competition_info.id, user_id: current_user.id)
|
||||
# first_round_ids = CompetitionUser.where(competition_info_id: @competition_info.id).where("score > 26").pluck(:id)
|
||||
# 第一轮赛合格人员
|
||||
first_round_ids = [541,543,544,545,546,548,550,551,552,554,555,556,558,560,563,565,567,576,579,581]
|
||||
first_round_ids = [541, 543, 544, 545, 546, 548, 550, 551, 552, 554, 555, 556, 558, 560, 563, 565, 567, 576, 579, 581]
|
||||
@second_round = first_round_ids.include?(@competition_user&.id)
|
||||
end
|
||||
|
||||
|
|
@ -228,7 +243,7 @@ class CompetitionInfosController < ApplicationController
|
|||
tip_exception "附件参数attachment_ids不能为空" if params[:attachment_ids].blank?
|
||||
# 第一轮赛合格人员
|
||||
# first_round_ids = CompetitionUser.where(competition_info_id: @competition_info.id).where("score > 26").pluck(:id)
|
||||
first_round_ids = [541,543,544,545,546,548,550,551,552,554,555,556,558,560,563,565,567,576,579,581]
|
||||
first_round_ids = [541, 543, 544, 545, 546, 548, 550, 551, 552, 554, 555, 556, 558, 560, 563, 565, 567, 576, 579, 581]
|
||||
tip_exception "您不在复赛名单中,不能参加复赛!" if @competition_info.identifier == "zstp2022" && !first_round_ids.include?(competition_user&.id)
|
||||
api_score_control = LimitForbidControl::CompetitionApiScore.new(competition_user.id)
|
||||
return normal_status(-1, "今日打分已达上限,请明日再试") if api_score_control.forbid?
|
||||
|
|
|
|||
|
|
@ -414,6 +414,7 @@ Rails.application.routes.draw do
|
|||
post :upload_enroll_template
|
||||
get :enroll_template
|
||||
get :update_zone_or_sub
|
||||
post :online_switch
|
||||
end
|
||||
resources :competition_notices, only: [:show, :index, :update, :destroy, :create]
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
class AddCompetitionInfoStatus < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
add_column :competition_infos, :status, :boolean, default: false
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue