fixed 竞赛增加3个提交作品属性

This commit is contained in:
xxq250 2024-07-01 16:12:20 +08:00
parent 201ff04e77
commit 19052f2a40
4 changed files with 40 additions and 19 deletions

View File

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

View File

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

View File

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

View File

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