|  |  |  | @ -5,21 +5,70 @@ class SyllabusesService | 
			
		
	
		
			
				
					|  |  |  |  |   include ApplicationHelper | 
			
		
	
		
			
				
					|  |  |  |  |   include CoursesHelper | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   def judge_can_setting(sy,user) | 
			
		
	
		
			
				
					|  |  |  |  |     sy[:can_setting] = sy[:user_id] == user.id ? true : false | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     sy.courses.each do |c| | 
			
		
	
		
			
				
					|  |  |  |  |       c[:can_setting] = false | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       member = c.members.where("user_id=#{user.id} and course_id=#{c.id}")[0] | 
			
		
	
		
			
				
					|  |  |  |  |       roleName = member.roles[0].name if member | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       if roleName && (roleName == "TeachingAsistant" || roleName == "Teacher" ) | 
			
		
	
		
			
				
					|  |  |  |  |         c[:can_setting] = true | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       if c.tea_id == user.id | 
			
		
	
		
			
				
					|  |  |  |  |         c[:can_setting] = true | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     sy | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
		
			
				
					|  |  |  |  |   #获取指定用户的课程大纲 | 
			
		
	
		
			
				
					|  |  |  |  |   def user_syllabus(user) | 
			
		
	
		
			
				
					|  |  |  |  |     courses = CoursesService.new.user_courses_list(user) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     other = Syllabus.new(title: '未命名课程') | 
			
		
	
		
			
				
					|  |  |  |  |     other = Syllabus.new(title: '未命名课程',user_id: user.id) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     courses.each do |c| | 
			
		
	
		
			
				
					|  |  |  |  |       other.courses << c[:course] unless c[:course].syllabus | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  |      | 
			
		
	
		
			
				
					|  |  |  |  |     user.syllabuses.each do |syllabus| | 
			
		
	
		
			
				
					|  |  |  |  |       syllabus.courses = syllabus.courses.not_deleted | 
			
		
	
		
			
				
					|  |  |  |  |     # user.syllabuses.each do |syllabus| | 
			
		
	
		
			
				
					|  |  |  |  |     #   syllabus.courses = syllabus.courses.not_deleted | 
			
		
	
		
			
				
					|  |  |  |  |     # end | 
			
		
	
		
			
				
					|  |  |  |  |     # | 
			
		
	
		
			
				
					|  |  |  |  |     # user.syllabuses.to_a << other | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     courses = user.courses.not_deleted | 
			
		
	
		
			
				
					|  |  |  |  |     syllabus_ids = courses.empty? ? '(-1)' : "(" + courses.map{|course| !course.syllabus_id.nil? && course.syllabus_id}.join(",") + ")" | 
			
		
	
		
			
				
					|  |  |  |  |     syllabuses = Syllabus.where("id in #{syllabus_ids} or user_id = #{user.id}").order("updated_at desc") | 
			
		
	
		
			
				
					|  |  |  |  |     syllabuses.to_a << other | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     #管理权限 can_setting | 
			
		
	
		
			
				
					|  |  |  |  |     syllabuses.each do |s| | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       s = judge_can_setting(s,user) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       # s[:can_setting] = s.user_id == user.id ? true : false | 
			
		
	
		
			
				
					|  |  |  |  |       # s.courses.each do |c| | 
			
		
	
		
			
				
					|  |  |  |  |       #   c[:can_setting] = false | 
			
		
	
		
			
				
					|  |  |  |  |       # | 
			
		
	
		
			
				
					|  |  |  |  |       #   member = c.members.where("user_id=#{user.id} and course_id=#{c.id}")[0] | 
			
		
	
		
			
				
					|  |  |  |  |       #   roleName = member.roles[0].name if member | 
			
		
	
		
			
				
					|  |  |  |  |       # | 
			
		
	
		
			
				
					|  |  |  |  |       #   if roleName && (roleName == "TeachingAsistant" || roleName == "Teacher" ) | 
			
		
	
		
			
				
					|  |  |  |  |       #     c[:can_setting] = true | 
			
		
	
		
			
				
					|  |  |  |  |       #   end | 
			
		
	
		
			
				
					|  |  |  |  |       # | 
			
		
	
		
			
				
					|  |  |  |  |       #   if c.tea_id == user.id | 
			
		
	
		
			
				
					|  |  |  |  |       #     c[:can_setting] = true | 
			
		
	
		
			
				
					|  |  |  |  |       #   end | 
			
		
	
		
			
				
					|  |  |  |  |       # end | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     user.syllabuses.to_a << other | 
			
		
	
		
			
				
					|  |  |  |  |     syllabuses | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   def after_create_course(course, user) | 
			
		
	
	
		
			
				
					|  |  |  | @ -56,9 +105,49 @@ class SyllabusesService | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     sy[:can_setting] = true | 
			
		
	
		
			
				
					|  |  |  |  |     sy | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   #修改课程大纲的名称、班级名称、新增班级 | 
			
		
	
		
			
				
					|  |  |  |  |   def edit(user, option) | 
			
		
	
		
			
				
					|  |  |  |  |     courses = [] | 
			
		
	
		
			
				
					|  |  |  |  |     status = -1 | 
			
		
	
		
			
				
					|  |  |  |  |     syllabus_id = option[:id] | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     sy = Syllabus.where("id=?",option[:id]).first | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     if sy && sy.user_id == user.id | 
			
		
	
		
			
				
					|  |  |  |  |       syllabus_title = option[:title] | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       sy.title = syllabus_title | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       #修改班级名称 | 
			
		
	
		
			
				
					|  |  |  |  |       modify_courses = option[:modify_courses] | 
			
		
	
		
			
				
					|  |  |  |  |       modify_courses.each do |c| | 
			
		
	
		
			
				
					|  |  |  |  |         course = Course.where("id=?",c.id).first | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if course && course.tea_id == user.id | 
			
		
	
		
			
				
					|  |  |  |  |           course.name = c.name | 
			
		
	
		
			
				
					|  |  |  |  |           !course.save | 
			
		
	
		
			
				
					|  |  |  |  |         end | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       #新增班级 | 
			
		
	
		
			
				
					|  |  |  |  |       add_courses = option[:add_courses] | 
			
		
	
		
			
				
					|  |  |  |  |       add_courses.each do |c| | 
			
		
	
		
			
				
					|  |  |  |  |         course = ::Course.new(c) | 
			
		
	
		
			
				
					|  |  |  |  |         course.name = add_courses | 
			
		
	
		
			
				
					|  |  |  |  |         course.tea_id = user.id | 
			
		
	
		
			
				
					|  |  |  |  |         course.syllabus_id = sy.id | 
			
		
	
		
			
				
					|  |  |  |  |         course.update_default_value | 
			
		
	
		
			
				
					|  |  |  |  |         course.is_public = 0 | 
			
		
	
		
			
				
					|  |  |  |  |         course.save! | 
			
		
	
		
			
				
					|  |  |  |  |         after_create_course(course, user) | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |       status = 0 | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  |     status | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | end |