竞赛上架下架开关

This commit is contained in:
“xxq250” 2022-09-06 13:51:50 +08:00
parent 783474cbd9
commit c42fa03b8b
3 changed files with 26 additions and 5 deletions

View File

@ -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?

View File

@ -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

View File

@ -0,0 +1,5 @@
class AddCompetitionInfoStatus < ActiveRecord::Migration[5.2]
def change
add_column :competition_infos, :status, :boolean, default: false
end
end