diff --git a/app/services/games_service.rb b/app/services/games_service.rb index 039d90c8..c87c0e0e 100644 --- a/app/services/games_service.rb +++ b/app/services/games_service.rb @@ -88,15 +88,20 @@ class GamesService # tpm_script_modified = (shixun.reset_time > myshixun.reset_time ? true : false) # 新结构脚本是实时传送的,所以不会影响 # 区分评测过未评测过,未评测过按需求取数据 - if max_query_index > 0 - qurey_test_sets = TestSet.find_by_sql("SELECT o.actual_output, o.out_put, o.result, o.test_set_position, o.query_index,t.is_public,t.input, t.output, g.id as game_id, c.id as challenge_id FROM outputs o,games g ,challenges c,test_sets t where - g.id=#{game.id} and o.query_index=#{max_query_index} and g.id = o.game_id and c.id= g.challenge_id and t.challenge_id = c.id and t.position =o.test_set_position order by o.query_index - ") - else - qurey_test_sets = TestSet.find_by_sql("SELECT t.is_public,t.input, t.output,t.position FROM games g ,challenges c,test_sets t where - g.id=#{game.id} and c.id= g.challenge_id and t.challenge_id = c.id - ") - end + sql = + if max_query_index > 0 + "SELECT o.actual_output, o.out_put, o.result, o.test_set_position, o.query_index,t.is_public,t.input, + t.output, g.id as game_id, c.id as challenge_id + FROM test_sets t, outputs o,games g ,challenges c + WHERE g.id=#{game.id} and o.query_index=#{max_query_index} and g.id = o.game_id and c.id= g.challenge_id + and t.challenge_id = c.id and t.position =o.test_set_position + ORDER BY o.query_index" + else + "SELECT t.is_public,t.input, t.output, t.position + FROM games g ,challenges c,test_sets t + WHERE g.id=#{game.id} and c.id= g.challenge_id and t.challenge_id = c.id" + end + qurey_test_sets = TestSet.find_by_sql(sql) # 测试集统计及处理 unless qurey_test_sets.blank?