dev_trainings
jingquan huang 6 years ago
parent 5f59d710d1
commit b1551c9940

@ -115,7 +115,7 @@ class GamesService
# 区分评测过未评测过,未评测过按需求取数据 # 区分评测过未评测过,未评测过按需求取数据
sql = sql =
if max_query_index > 0 if max_query_index > 0
"SELECT "SELECT
b.code, b.actual_output, b.out_put, b.result, b.compile_success, a.is_public, a.input, a.output b.code, b.actual_output, b.out_put, b.result, b.compile_success, a.is_public, a.input, a.output
FROM FROM
(SELECT position, input, output, challenge_id, is_public FROM test_sets where challenge_id=#{game_challenge.id}) a (SELECT position, input, output, challenge_id, is_public FROM test_sets where challenge_id=#{game_challenge.id}) a
@ -154,7 +154,7 @@ class GamesService
Rails.logger.warn(latest_output) Rails.logger.warn(latest_output)
output_hash = {:test_sets => test_sets}.merge(:had_test_count => had_test_count, :test_sets_count => test_sets_count, output_hash = {:test_sets => test_sets}.merge(:had_test_count => had_test_count, :test_sets_count => test_sets_count,
:had_passed_testsests_error_count => had_passed_testsests_error_count) :had_passed_testsests_error_count => had_passed_testsests_error_count)
multi_webssh = shixun.webssh == 2 && shixun.multi_webssh multi_webssh = shixun.webssh == 2 && shixun.multi_webssh
result = {:tpm_modified => tpm_modified, :tpm_cases_modified => tpm_cases_modified, :hide_code => shixun.hide_code, :forbid_copy => shixun.forbid_copy, result = {:tpm_modified => tpm_modified, :tpm_cases_modified => tpm_cases_modified, :hide_code => shixun.hide_code, :forbid_copy => shixun.forbid_copy,
:output_sets => output_hash, :latest_output => latest_output, :mirror_name => mirror_name, :multi_webssh => multi_webssh, :output_sets => output_hash, :latest_output => latest_output, :mirror_name => mirror_name, :multi_webssh => multi_webssh,
@ -533,6 +533,7 @@ class GamesService
# 更新评测次数 # 更新评测次数
game.update_column(:evaluate_count, (game.evaluate_count.to_i + 1)) game.update_column(:evaluate_count, (game.evaluate_count.to_i + 1))
shixun.increment!(:evaluate_count)
# 清空代码评测信息 # 清空代码评测信息
msg = game.run_code_message msg = game.run_code_message
msg.update_attributes(:status => 0, :message => nil) if msg.present? msg.update_attributes(:status => 0, :message => nil) if msg.present?
@ -599,9 +600,9 @@ class GamesService
return {:result => "success", :resubmit => resubmit, :ableToCreate => res['ableToCreate'], :waitNum => res['waitNum'], return {:result => "success", :resubmit => resubmit, :ableToCreate => res['ableToCreate'], :waitNum => res['waitNum'],
:waitingTime => res['waitingTime'], :position => game_challenge.position, :port => res['port'], :waitingTime => res['waitingTime'], :position => game_challenge.position, :port => res['port'],
:had_done => game.had_done} :had_done => game.had_done}
# rescue Exception => e rescue Exception => e
# Rails.logger.error("评测出错,详情:" + e.message) Rails.logger.error("评测出错,详情:" + e.message)
# return {:result => 'fail', :contents =>"实训云平台繁忙繁忙等级502请稍后刷新并重试", :position => game_challenge.position, :had_done => game.had_done} return {:result => 'fail', :contents =>"实训云平台繁忙繁忙等级502请稍后刷新并重试", :position => game_challenge.position, :had_done => game.had_done}
end end
# 单评测类型(比较快的类型实时返回结果即不用中间层再回调trainint_task_status) # 单评测类型(比较快的类型实时返回结果即不用中间层再回调trainint_task_status)
@ -693,6 +694,7 @@ class GamesService
:evaluate_count]).find_by_identifier(params[:identifier]) :evaluate_count]).find_by_identifier(params[:identifier])
# 更新评测次数 # 更新评测次数
game.update_column(:evaluate_count, (game.evaluate_count.to_i + 1)) game.update_column(:evaluate_count, (game.evaluate_count.to_i + 1))
game.challenge.shixun.increment!(:evaluate_count)
# 选择题如果通关了,则不让再评测 # 选择题如果通关了,则不让再评测
if game.status == 2 if game.status == 2

Loading…
Cancel
Save