forked from Trustie/forgeplus
fixed 竞赛增加3个提交作品属性
This commit is contained in:
parent
201ff04e77
commit
19052f2a40
|
|
@ -127,6 +127,9 @@ class CompetitionInfosController < ApplicationController
|
|||
if params[:upload].to_s == "true"
|
||||
competition_users = competition_users.joins("join attachments on attachments.container_type='CompetitionUser' and attachments.container_id = competition_users.id")
|
||||
end
|
||||
if params[:sub_item].present?
|
||||
competition_users = competition_users.where(sub_item: params[:sub_item])
|
||||
end
|
||||
@competition_users_count = competition_users.count
|
||||
competition_users = competition_users.select("DISTINCT competition_users.*")
|
||||
@competition_users = paginate(competition_users)
|
||||
|
|
@ -262,7 +265,7 @@ class CompetitionInfosController < ApplicationController
|
|||
def upload
|
||||
competition_user = CompetitionUser.find_by(competition_info: @competition_info.id, user_id: current_user.id)
|
||||
tip_exception "未报名,请先报名" if competition_user.blank?
|
||||
tip_exception "附件参数attachment_ids不能为空" if params[:attachment_ids].blank?
|
||||
# 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]
|
||||
|
|
@ -271,25 +274,30 @@ class CompetitionInfosController < ApplicationController
|
|||
return normal_status(-1, "今日打分已达上限,请明日再试") if api_score_control.forbid?
|
||||
api_score_control.increment!
|
||||
# tip_exception "您已经提交作品!" if competition_user.present? && competition_user.attachments.present?
|
||||
competition_user.attachments.update_all(container_id: nil, container_type: nil)
|
||||
params[:attachment_ids].each do |id|
|
||||
attachment = Attachment.where_id_or_uuid(id).first
|
||||
unless attachment.blank?
|
||||
attachment.container = competition_user
|
||||
attachment.author_id = current_user.id
|
||||
attachment.description = ""
|
||||
attachment.save
|
||||
end
|
||||
forge_url = Rails.application.config_for(:configuration)['platform_url'] || EduSetting.get("main_site")
|
||||
filePath = "#{forge_url}/api/attachments/#{attachment.id}"
|
||||
if EduSetting.get("competition_ccks_ids").to_s.split(",").include?(@competition_info.identifier.to_s)
|
||||
api_url = "/script/ccks"
|
||||
CompetitionAutoScoreNewJob.perform_later(competition_user.id, api_url, filePath)
|
||||
elsif EduSetting.get("competition_zstp2023_ids").to_s.split(",").include?(@competition_info.identifier.to_s)
|
||||
api_url = "/script/ccks2023"
|
||||
CompetitionAutoScoreNewJob.perform_later(competition_user.id, api_url, filePath)
|
||||
if params[:attachment_ids].present?
|
||||
competition_user.attachments.update_all(container_id: nil, container_type: nil)
|
||||
params[:attachment_ids].each do |id|
|
||||
attachment = Attachment.where_id_or_uuid(id).first
|
||||
unless attachment.blank?
|
||||
attachment.container = competition_user
|
||||
attachment.author_id = current_user.id
|
||||
attachment.description = ""
|
||||
attachment.save
|
||||
end
|
||||
forge_url = Rails.application.config_for(:configuration)['platform_url'] || EduSetting.get("main_site")
|
||||
filePath = "#{forge_url}/api/attachments/#{attachment.id}"
|
||||
if EduSetting.get("competition_ccks_ids").to_s.split(",").include?(@competition_info.identifier.to_s)
|
||||
api_url = "/script/ccks"
|
||||
CompetitionAutoScoreNewJob.perform_later(competition_user.id, api_url, filePath)
|
||||
elsif EduSetting.get("competition_zstp2023_ids").to_s.split(",").include?(@competition_info.identifier.to_s)
|
||||
api_url = "/script/ccks2023"
|
||||
CompetitionAutoScoreNewJob.perform_later(competition_user.id, api_url, filePath)
|
||||
end
|
||||
end
|
||||
end
|
||||
competition_user.sub_item = params[:sub_item] if params[:sub_item].present?
|
||||
competition_user.works_name = params[:works_name] if params[:works_name].present?
|
||||
competition_user.works_url = params[:works_url] if params[:works_url].present?
|
||||
competition_user.update_attributes!(status: 3)
|
||||
render_ok
|
||||
end
|
||||
|
|
|
|||
|
|
@ -101,6 +101,9 @@ class CompetitionInfo < ApplicationRecord
|
|||
hash.merge!({ "赛项" => "sub_competition" })
|
||||
hash.merge!({ "课题来源" => "subject_source_from" }) if self.is_local?
|
||||
hash.merge!({ "成员" => "members_to_string" })
|
||||
hash.merge!({ "子赛道" => "sub_item" })
|
||||
hash.merge!({ "参赛作品名称" => "works_name" })
|
||||
hash.merge!({ "参赛作品名称" => "works_url" })
|
||||
|
||||
self.enroll_columns.present? && self.enroll_columns.is_a?(String) ? JSON.parse(self.enroll_columns) : hash
|
||||
rescue => err
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@ json.message "success"
|
|||
json.count @competition_users_count
|
||||
json.data do
|
||||
json.array! @competition_users.to_a do |c_user|
|
||||
json.extract! c_user, :id, :org_name, :org_job, :org_rank, :leader, :zone, :sub_competition, :subject_source_type, :subject_source_name, :phone, :status, :mail, :ext1, :ext2, :ext3
|
||||
json.extract! c_user, :id, :org_name, :org_job, :org_rank, :leader, :zone, :sub_competition, :subject_source_type,
|
||||
:subject_source_name, :phone, :status, :mail, :ext1, :ext2, :ext3, :ext4, :ext5, :sub_item, :works_name, :works_url
|
||||
json.user_id c_user.user_id
|
||||
json.user_real_name c_user.user&.real_name
|
||||
json.members c_user.members
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
class AddCompetitionUserCol < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
add_column :competition_users, :sub_item, :string
|
||||
add_column :competition_users, :works_name, :string
|
||||
add_column :competition_users, :works_url, :string
|
||||
add_column :competition_users, :ext4, :string
|
||||
add_column :competition_users, :ext5, :string
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue