竞赛调整

dev_sync_trustie
cxt 5 years ago
parent 286184bed4
commit 94e5f5be4a

@ -14,6 +14,59 @@ class Admins::CompetitionStagesController < Admins::BaseController
render_ok
end
def destroy
current_stage.destroy!
render_ok
end
def create_stage_section
ActiveRecord::Base.transaction do
new_section = CompetitionStageSection.create!(competition_id: current_stage.competition_id, competition_stage_id: current_stage.id,
start_time: params[:new_start_time], end_time: params[:new_end_time],
entry: params[:entry], mission_count: params[:mission_count], score_source: params[:score_source])
unless params[:shixun_identifiers].blank?
params[:shixun_identifiers].each do |identifier|
new_section.competition_entries << CompetitionEntry.new(competition_stage_id: current_stage.id, shixun_identifier: identifier)
end
end
render_ok
end
end
def update_stage_section
ActiveRecord::Base.transaction do
section = current_stage.competition_stage_sections.find_by!(id: params[:section_id])
if section.present?
section_entries = section.competition_entries
if !params[:shixun_identifiers]
section_entries.destroy_all
else
if params[:shixun_identifiers].length < section_entries.size
section_entries[params[:shixun_identifiers].length, section_entries.size - 1].each(&:destroy)
end
params[:shixun_identifiers].each_with_index do |identifier, index|
entry = section_entries[index]
if entry.present?
entry.update_attributes!(shixun_identifier: identifier)
else
section.competition_entries << CompetitionEntry.new(competition_stage_id: current_stage.id, shixun_identifier: identifier)
end
end
end
section.update_attributes!(start_time: params[:new_start_time], end_time: params[:new_end_time],
entry: params[:entry], mission_count: params[:mission_count], score_source: params[:score_source])
render_ok
end
end
end
def destroy_stage_section
section = current_stage.competition_stage_sections.find_by!(id: params[:section_id])
section.destroy!
render_ok
end
private
def current_competition

@ -1031,7 +1031,13 @@ Rails.application.routes.draw do
get :export, on: :collection
end
resources :competition_stages, only: [:create, :update]
resources :competition_stages, only: [:create, :update, :destroy] do
collection do
post :create_stage_section
post :update_stage_section
delete :destroy_stage_section
end
end
end
resources :weapp_carousels, only: [:index, :create, :update, :destroy] do

@ -0,0 +1,10 @@
class AddColumnToStageSections < ActiveRecord::Migration[5.2]
def change
def change
add_column :competition_stage_sections, :mission_count, :integer, default: 0
add_column :competition_stage_sections, :score_source, :integer, default: 0
add_column :competition_entries, :shixun_identifier, :string
end
end
end
Loading…
Cancel
Save