记录每次评测结果
This commit is contained in:
parent
80ea495849
commit
50020ef080
|
|
@ -107,22 +107,25 @@ class MyshixunsController < ApplicationController
|
|||
status = jsonTestDetails['status']
|
||||
game_id = jsonTestDetails['buildID']
|
||||
resubmit = jsonTestDetails['resubmit']
|
||||
outPut = Base64.urlsafe_decode64(jsonTestDetails['outPut']).force_encoding("utf-8") unless jsonTestDetails['outPut'].blank?
|
||||
outPut = Base64.decode64(jsonTestDetails['outPut']).force_encoding("utf-8") unless jsonTestDetails['outPut'].blank?
|
||||
jenkins_testsets = jsonTestDetails['msg']
|
||||
# message = Base64.decode64(params[:msg]) unless params[:msg].blank?
|
||||
game = Game.find(game_id)
|
||||
challenge = game.challenge
|
||||
unless jenkins_testsets.blank?
|
||||
jenkins_testsets.each do |j_test_set|
|
||||
actual_output = Base64.urlsafe_decode64(j_test_set['output']).force_encoding("utf-8") unless j_test_set['output'].blank?
|
||||
output = Output.where(:game_id => game.id, :test_set_position => j_test_set['caseId'].to_i).first
|
||||
logger.info("#############{outPut}")
|
||||
if output.nil?
|
||||
game_outputs = Output.create(:code => status, :game_id => game_id, :out_put => outPut, :test_set_position => j_test_set['caseId'],
|
||||
:actual_output => actual_output, :result => j_test_set['passed'].to_i)
|
||||
else
|
||||
output.update_attributes(:code => status, :out_put => outPut, :actual_output => actual_output, :result => j_test_set['passed'].to_i)
|
||||
end
|
||||
actual_output = Base64.decode64(j_test_set['output']).force_encoding("utf-8") unless j_test_set['output'].blank?
|
||||
game_outputs = Output.create(:code => status, :game_id => game_id, :out_put => outPut, :test_set_position => j_test_set['caseId'],
|
||||
:actual_output => actual_output, :result => j_test_set['passed'].to_i, :query_index => game.query_index)
|
||||
|
||||
# output = Output.where(:game_id => game.id, :test_set_position => j_test_set['caseId'].to_i).first
|
||||
# logger.info("#############{outPut}")
|
||||
# if output.nil?
|
||||
# game_outputs = Output.create(:code => status, :game_id => game_id, :out_put => outPut, :test_set_position => j_test_set['caseId'],
|
||||
# :actual_output => actual_output, :result => j_test_set['passed'].to_i)
|
||||
# else
|
||||
# output.update_attributes(:code => status, :out_put => outPut, :actual_output => actual_output, :result => j_test_set['passed'].to_i)
|
||||
# end
|
||||
end
|
||||
end
|
||||
if status == "0"
|
||||
|
|
|
|||
|
|
@ -22,6 +22,14 @@ class Game < ActiveRecord::Base
|
|||
identifier
|
||||
end
|
||||
|
||||
def query_index
|
||||
if self.outputs.present?
|
||||
self.outputs.first.try(:query_index).to_i + 1
|
||||
else
|
||||
1
|
||||
end
|
||||
end
|
||||
|
||||
def last_game
|
||||
challenge = self.challenge
|
||||
last_challenge_id = challenge.last_challenge
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
class Output < ActiveRecord::Base
|
||||
# attr_accessible :title, :body
|
||||
# actual_output 编程题:实际输出, 选择题: 用户提交的答案(如: 014 对应用户选择为A B E)
|
||||
default_scope :order => 'test_set_position, query_index desc'
|
||||
default_scope :order => 'query_index desc'
|
||||
belongs_to :game
|
||||
|
||||
def query_index
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue