记录每次评测结果

This commit is contained in:
huang 2017-08-08 16:41:14 +08:00
parent 80ea495849
commit 50020ef080
3 changed files with 22 additions and 14 deletions

View File

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

View File

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

View File

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