|  |  |  | @ -11,7 +11,7 @@ class DuplicateCourseService < ApplicationService | 
			
		
	
		
			
				
					|  |  |  |  |       @course = copy_course! | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       copy_course_modules! | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.info("###########second_category_list#{@second_category_list}") | 
			
		
	
		
			
				
					|  |  |  |  |       join_course! | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       copy_homework_commons! | 
			
		
	
	
		
			
				
					|  |  |  | @ -36,9 +36,17 @@ class DuplicateCourseService < ApplicationService | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   def copy_course_modules! | 
			
		
	
		
			
				
					|  |  |  |  |     @second_category_list = {} | 
			
		
	
		
			
				
					|  |  |  |  |     origin_course.course_modules.each do |course_module| | 
			
		
	
		
			
				
					|  |  |  |  |       attrs = course_module.as_json(only: %i[module_type position hidden module_name]) | 
			
		
	
		
			
				
					|  |  |  |  |       CourseModule.create!(attrs.merge(course_id: course.id)) | 
			
		
	
		
			
				
					|  |  |  |  |       new_course_module = CourseModule.create!(attrs.merge(course_id: course.id)) | 
			
		
	
		
			
				
					|  |  |  |  |       # 复制子目录 | 
			
		
	
		
			
				
					|  |  |  |  |       course_module.course_second_categories.each do |second_category| | 
			
		
	
		
			
				
					|  |  |  |  |         category_attr =  second_category.as_json(only: %i[category_type name position]) | 
			
		
	
		
			
				
					|  |  |  |  |         new_second_category = | 
			
		
	
		
			
				
					|  |  |  |  |             CourseSecondCategory.create!(category_attr.merge(course_id: course.id, course_module_id: new_course_module.id)) | 
			
		
	
		
			
				
					|  |  |  |  |         @second_category_list[second_category.id] = new_second_category.id | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -50,7 +58,10 @@ class DuplicateCourseService < ApplicationService | 
			
		
	
		
			
				
					|  |  |  |  |     origin_course.homework_commons.where(homework_type: %i[normal group practice]).find_each do |origin_homework| | 
			
		
	
		
			
				
					|  |  |  |  |       homework_attrs = origin_homework.as_json(only: %i[name description homework_type homework_bank_id reference_answer]) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       homework = HomeworkCommon.create!(homework_attrs.merge(user_id: user.id, course_id: course.id)) | 
			
		
	
		
			
				
					|  |  |  |  |       course_second_category_id = @second_category_list[origin_homework.course_second_category_id] | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       homework = HomeworkCommon.create!(homework_attrs.merge(user_id: user.id, course_id: course.id, | 
			
		
	
		
			
				
					|  |  |  |  |                                                              course_second_category_id:course_second_category_id)) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       origin_homework.attachments.find_each do |origin_attachment| | 
			
		
	
		
			
				
					|  |  |  |  |         attachment = origin_attachment.copy | 
			
		
	
	
		
			
				
					|  |  |  | @ -71,6 +82,7 @@ class DuplicateCourseService < ApplicationService | 
			
		
	
		
			
				
					|  |  |  |  |         HomeworksService.new.create_shixun_homework_cha_setting(homework, origin_homework.shixuns.first) | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       origin_homework.increment!(:quotes) | 
			
		
	
		
			
				
					|  |  |  |  |       origin_homework.homework_bank.increment!(:quotes) if origin_homework.homework_bank | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
	
		
			
				
					|  |  |  | @ -138,9 +150,9 @@ class DuplicateCourseService < ApplicationService | 
			
		
	
		
			
				
					|  |  |  |  |       attachment.copy_from = origin_attachment.copy_from || origin_attachment.id | 
			
		
	
		
			
				
					|  |  |  |  |       attachment.is_publish = 0 | 
			
		
	
		
			
				
					|  |  |  |  |       attachment.attachtype ||= 4 | 
			
		
	
		
			
				
					|  |  |  |  |       attachment.course_second_category_id = @second_category_list[origin_attachment.course_second_category_id] | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       attachment.save! | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       origin_course.update_quotes(attachment) | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
	
		
			
				
					|  |  |  | 
 |