|
|
|
@ -94,8 +94,8 @@ class DuplicateCourseService < ApplicationService
|
|
|
|
|
exercise = course.exercises.create!(attrs.merge(user_id: user.id))
|
|
|
|
|
|
|
|
|
|
origin_exercise.exercise_questions.find_each do |origin_question|
|
|
|
|
|
question_attrs = origin_question.as_json(only: %i[question_title question_type question_number question_score])
|
|
|
|
|
question_attrs[:question_type] ||= 1
|
|
|
|
|
question_attrs = origin_question.as_json(only: %i[question_title question_type question_number question_score shixun_name shixun_id])
|
|
|
|
|
# question_attrs[:question_type] ||= 1
|
|
|
|
|
question = exercise.exercise_questions.create!(question_attrs)
|
|
|
|
|
|
|
|
|
|
exercise_choice_map = {}
|
|
|
|
@ -103,15 +103,20 @@ class DuplicateCourseService < ApplicationService
|
|
|
|
|
choice_attrs = { choice_position: index + 1, choice_text: origin_choice.choice_text }
|
|
|
|
|
choice = question.exercise_choices.create!(choice_attrs)
|
|
|
|
|
|
|
|
|
|
exercise_choice_map[origin_choice.id] = choice.id
|
|
|
|
|
# exercise_choice_map[origin_choice.id] = choice.id 标准答案中存的是choice_position, 直接取原题的exercise_choice_id就行
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
origin_question.exercise_standard_answers.find_each do |origin_answer|
|
|
|
|
|
question.exercise_standard_answers.create!(
|
|
|
|
|
exercise_choice_id: exercise_choice_map[origin_answer.exercise_choice_id],
|
|
|
|
|
exercise_choice_id: origin_answer.exercise_choice_id,
|
|
|
|
|
answer_text: origin_answer.answer_text
|
|
|
|
|
)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
origin_question.exercise_shixun_challenges.find_each do |sc, index|
|
|
|
|
|
question.exercise_shixun_challenges.create!({position: index+1, challenge_id: sc.challenge_id,
|
|
|
|
|
shixun_id: sc.shixun_id, question_score: sc.question_score})
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
origin_exercise.exercise_bank.increment!(:quotes) if exercise.exercise_bank
|
|
|
|
|