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