Merge branch 'develop' into dev_aliyun

dev_unstable^2
daiao 6 years ago
commit 625a420583

@ -765,7 +765,7 @@ class GamesController < ApplicationController
testset_detail max_query_index.to_i, game_challenge testset_detail max_query_index.to_i, game_challenge
# 处理生成图片类型文件 # 处理生成图片类型文件
picture = (@game.picture_path.nil? ? 0 : @game.id) picture = (game_challenge.show_type.to_i == -1 || @game.picture_path.nil?) ? 0 : @game.id
# 针对web类型的实训 # 针对web类型的实训
web_route = game_challenge.try(:web_route) web_route = game_challenge.try(:web_route)

@ -40,16 +40,18 @@ class Challenge < ApplicationRecord
## 选择题总分 ## 选择题总分
def choose_score def choose_score
self.challenge_chooses.pluck(:score).sum self.score
#self.challenge_chooses.pluck(:score).sum
end end
# 关卡总分 # 关卡总分
def all_score def all_score
if self.st == 1 self.score
self.choose_score # if self.st == 1
else # self.choose_score
self.score # else
end # self.score
# end
end end
# 开启挑战 # 开启挑战

@ -31,7 +31,7 @@ class Game < ApplicationRecord
# 根据得分比例来算实际得分(试卷、实训作业) # 根据得分比例来算实际得分(试卷、实训作业)
def real_score score def real_score score
((final_score < 0 ? 0 : final_score).to_f / challenge.all_score) * score ((final_score < 0 ? 0 : final_score).to_f / challenge.score) * score
end end
# 判断实训是否全部通关 # 判断实训是否全部通关

@ -192,11 +192,7 @@ class Shixun < ApplicationRecord
# 实训关卡的总分(由于大部分是实践题,因此没关联查choose表) # 实训关卡的总分(由于大部分是实践题,因此没关联查choose表)
# 提前加载问题由于选择题比较少所以几乎不会触发选择题的查询所以没必要提前载入choose_score # 提前加载问题由于选择题比较少所以几乎不会触发选择题的查询所以没必要提前载入choose_score
def all_score def all_score
sum = 0 self.challenges.pluck(:score).sum
challenges.each do |challenge|
sum += challenge.st == 0 ? challenge.score : challenge.choose_score
end
sum
end end
### fork 数量 ### fork 数量

@ -13,7 +13,7 @@ if @challenges.present?
json.position challenge.position json.position challenge.position
json.st challenge.st json.st challenge.st
json.name challenge.subject json.name challenge.subject
json.score challenge.all_score json.score challenge.score
json.passed_count challenge.user_passed_count json.passed_count challenge.user_passed_count
json.playing_count challenge.playing_count json.playing_count challenge.playing_count
json.name_url shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier) json.name_url shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier)

@ -0,0 +1,10 @@
class ModifyChallnegeScoreForChoose < ActiveRecord::Migration[5.2]
def change
challenges = Challenge.where(st: 1)
challenges.find_each do |c|
puts(c.id)
score = c.challenge_chooses.sum(:score)
c.update_column(:score, score)
end
end
end
Loading…
Cancel
Save