|
|
|
@ -413,43 +413,41 @@ module ExercisesHelper
|
|
|
|
|
score2 += 0.0
|
|
|
|
|
end
|
|
|
|
|
elsif q.question_type == 5 #实训题时,主观题这里不评分
|
|
|
|
|
if answers_content.present?
|
|
|
|
|
q.exercise_shixun_challenges.each do |exercise_cha|
|
|
|
|
|
game = Game.user_games(user.id,exercise_cha.challenge_id).first #当前用户的关卡
|
|
|
|
|
if game.present?
|
|
|
|
|
exercise_cha_score = 0.0
|
|
|
|
|
answer_status = 0
|
|
|
|
|
if game.status == 2 && game.final_score >= 0
|
|
|
|
|
exercise_cha_score = exercise_cha.question_score #每一关卡的得分
|
|
|
|
|
answer_status = 1
|
|
|
|
|
end
|
|
|
|
|
ex_shixun_answer_content = answers_content.where(exercise_shixun_challenge_id: exercise_cha.id)
|
|
|
|
|
if ex_shixun_answer_content.blank? #把关卡的答案存入试卷的实训里
|
|
|
|
|
cha_path = challenge_path exercise_cha.challenge.path
|
|
|
|
|
game_challenge = game.game_codes.search_challenge_path(cha_path).first
|
|
|
|
|
if game_challenge.present?
|
|
|
|
|
game_code = game_challenge
|
|
|
|
|
code = game_code.try(:new_code)
|
|
|
|
|
else
|
|
|
|
|
code = git_fle_content(exercise_cha.shixun.repo_path,cha_path)
|
|
|
|
|
end
|
|
|
|
|
sx_option = {
|
|
|
|
|
:exercise_question_id => q.id,
|
|
|
|
|
:exercise_shixun_challenge_id => exercise_cha.id,
|
|
|
|
|
:user_id => user.id,
|
|
|
|
|
:score => exercise_cha_score,
|
|
|
|
|
:answer_text => code,
|
|
|
|
|
:status => answer_status
|
|
|
|
|
}
|
|
|
|
|
ExerciseShixunAnswer.create(sx_option)
|
|
|
|
|
q.exercise_shixun_challenges.each do |exercise_cha|
|
|
|
|
|
game = Game.user_games(user.id,exercise_cha.challenge_id)&.first #当前用户的关卡
|
|
|
|
|
if game.present?
|
|
|
|
|
exercise_cha_score = 0.0
|
|
|
|
|
answer_status = 0
|
|
|
|
|
if game.status == 2 && game.final_score >= 0
|
|
|
|
|
exercise_cha_score = exercise_cha.question_score #每一关卡的得分
|
|
|
|
|
answer_status = 1
|
|
|
|
|
end
|
|
|
|
|
ex_shixun_answer_content = answers_content&.where(exercise_shixun_challenge_id: exercise_cha.id)
|
|
|
|
|
if ex_shixun_answer_content.blank? #把关卡的答案存入试卷的实训里
|
|
|
|
|
cha_path = challenge_path exercise_cha.challenge.path
|
|
|
|
|
game_challenge = game.game_codes.search_challenge_path(cha_path).first
|
|
|
|
|
if game_challenge.present?
|
|
|
|
|
game_code = game_challenge
|
|
|
|
|
code = game_code.try(:new_code)
|
|
|
|
|
else
|
|
|
|
|
ex_shixun_answer_content.first.update_column('score',exercise_cha_score)
|
|
|
|
|
code = git_fle_content(exercise_cha.shixun.repo_path,cha_path)
|
|
|
|
|
end
|
|
|
|
|
score5 += exercise_cha_score
|
|
|
|
|
sx_option = {
|
|
|
|
|
:exercise_question_id => q.id,
|
|
|
|
|
:exercise_shixun_challenge_id => exercise_cha.id,
|
|
|
|
|
:user_id => user.id,
|
|
|
|
|
:score => exercise_cha_score,
|
|
|
|
|
:answer_text => code,
|
|
|
|
|
:status => answer_status
|
|
|
|
|
}
|
|
|
|
|
ExerciseShixunAnswer.create(sx_option)
|
|
|
|
|
else
|
|
|
|
|
ex_shixun_answer_content.first.update_column('score',exercise_cha_score)
|
|
|
|
|
end
|
|
|
|
|
score5 += exercise_cha_score
|
|
|
|
|
else
|
|
|
|
|
score5 += 0.0
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
score5 += 0.0
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
user_scores = answers_content.present? ? answers_content.score_reviewed.pluck(:score).sum : 0.0
|
|
|
|
|