From 50020ef080f1e80ee64b9fbd86fe74afab3c5165 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 8 Aug 2017 16:41:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=AF=8F=E6=AC=A1=E8=AF=84?= =?UTF-8?q?=E6=B5=8B=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/myshixuns_controller.rb | 23 +++++++++++++---------- app/models/game.rb | 8 ++++++++ app/models/output.rb | 5 +---- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/app/controllers/myshixuns_controller.rb b/app/controllers/myshixuns_controller.rb index eb0d78cdf..5728bfafe 100644 --- a/app/controllers/myshixuns_controller.rb +++ b/app/controllers/myshixuns_controller.rb @@ -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" diff --git a/app/models/game.rb b/app/models/game.rb index 44129ac33..4b97fbbde 100644 --- a/app/models/game.rb +++ b/app/models/game.rb @@ -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 diff --git a/app/models/output.rb b/app/models/output.rb index e05126d49..6c833b091 100644 --- a/app/models/output.rb +++ b/app/models/output.rb @@ -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