@ -26,17 +26,19 @@ class CoursesController < ApplicationController
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                     :base_info ,  :get_historical_courses ,  :create_group_by_importing_file , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                     :attahcment_category_list , :export_member_scores_excel ,  :duplicate_course , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                     :switch_to_teacher ,  :switch_to_assistant ,  :switch_to_student ,  :exit_course , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                     :informs ,  :update_informs ,  :online_learning ,  :update_task_position ,  :tasks_list ,  :join_excellent_course ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                     :informs ,  :update_informs ,  :online_learning ,  :update_task_position ,  :tasks_list , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    :join_excellent_course ,  :export_couser_info ,  :export_member_act_score ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  before_action  :user_course_identity ,  except :  [ :join_excellent_course ,  :index ,  :create ,  :new ,  :apply_to_join_course , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                                :search_course_list ,  :get_historical_course_students ,  :mine ,  :search_slim ,  :board_list ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  before_action  :teacher_allowed ,  only :  [ :update ,  :destroy ,  :settings ,  :search_teacher_candidate , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                         :transfer_to_course_group ,  :delete_from_course , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                         :search_users ,  :add_students_by_search ,  :get_historical_courses ,  :add_teacher_popup ,  :add_teacher ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                         :transfer_to_course_group ,  :delete_from_course ,  :export_member_scores_excel , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                         :search_users ,  :add_students_by_search ,  :get_historical_courses ,  :add_teacher_popup , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                         :add_teacher ,  :export_couser_info ,  :export_member_act_score ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  before_action  :admin_allowed ,  only :  [ :set_invite_code_halt ,  :set_public_or_private ,  :change_course_admin , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                       :set_course_group ,  :create_group_by_importing_file ,  :update_informs , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                       :update_task_position ,  :tasks_list ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  before_action  :teacher_or_admin_allowed ,  only :  [ :graduation_group_list ,  :create_graduation_group ,  :join_graduation_group , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                                  :change_course_teacher ,  : export_member_scores_excel,  :  course_group_list, 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                                  :change_course_teacher ,  : course_group_list, 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                                  :teacher_application_review ,  :apply_teachers ,  :delete_course_teacher ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  before_action  :validate_course_name ,  only :  [ :create ,  :update ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  before_action  :find_board ,  only :  :board_list 
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1074,44 +1076,64 @@ class CoursesController < ApplicationController
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    @courses =  @courses . page ( @page ) . per ( @page_size ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  # 导出课堂信息 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  def  export_couser_info 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    set_export_cookies 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    course_info_to_xlsx  @course 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    filename_  =  " #{ current_user . real_name } _ #{ @course . name } _课堂信息_ #{ Time . now . strftime ( '%Y%m%d_%H%M%S' ) } " 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    render  xlsx :  " #{ format_sheet_name  filename_ . strip } " , template :  " courses/export_course_info.xlsx.axlsx " , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           locals :  { course_info :  @course_info } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  # 导出活跃度 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  def  export_member_act_score 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    search  =  params [ :search ]  ?  " #{ params [ :search ] . strip } "  :  " "    #用户名或学生学号id搜索 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    group_id  =  params [ :group_id ]   #分班的班级id 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    @all_members  =  student_act_score  group_id ,  search 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  @all_members . size  ==  0 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      normal_status ( - 1 , " 课堂暂时没有学生 " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    elsif  params [ :export ] . present?  &&  params [ :export ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      normal_status ( 0 , " 正在下载中 " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      set_export_cookies 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      act_score_to_xlsx ( @all_members ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      filename_  =  " #{ current_user . real_name } _ #{ @course . name } _活跃度_ #{ Time . now . strftime ( '%Y%m%d_%H%M%S' ) } " 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      render  xlsx :  " #{ format_sheet_name  filename_ . strip } " , template :  " courses/export_member_act_score.xlsx.axlsx " , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             locals :  { activity_level : @user_activity_level } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  # 导出学生成绩 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  def  export_member_scores_excel 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ActiveRecord :: Base . transaction  do 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      begin 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        @all_members  =  @course . students 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        search  =  params [ :search ]  ?  " #{ params [ :search ] . strip } "  :  " "    #用户名或学生学号id搜索 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        group_id  =  params [ :group_id ]   #分班的班级id 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # if group_id && group_id != "0" && group_id != "-1" 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        #   @all_members = @course.students.course_find_by_ids("course_group_id",group_id) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # elsif group_id && group_id == "0"  # 未分班 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        #   @all_members = @course.course_members.ungroup_students 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # else 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        #   @all_members = @course.students 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # if name.present? 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        #   @all_members = @all_members.joins(user: [:user_extension]).where('concat(users.lastname, users.firstname) like ? or user_extensions.student_id like ?',"%#{name}%","%#{name}%") 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        @all_members  =  student_act_score  group_id ,  search 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        @all_members  =  @all_members . where ( course_group_id :  group_id )  unless  group_id . blank? 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        unless  search . blank? 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          @all_members  =  @all_members . joins ( user :  [ :user_extension ] ) . where ( 'concat(users.lastname, users.firstname) like ? or user_extensions.student_id like ?' , " % #{ search } % " , " % #{ search } % " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        @c_homeworks  =  @course . homework_commons . homework_published . order ( " homework_commons.publish_time asc, homework_commons.created_at asc " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        @c_exercises  =  @course . exercises . is_exercise_published . order ( " exercises.publish_time asc, exercises.created_at asc " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # @c_polls = @course.polls.publish_or_not.order("polls.publish_time asc, polls.created_at asc") 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        @c_tasks  =  @course . graduation_tasks . task_published . order ( " graduation_tasks.publish_time asc, graduation_tasks.created_at asc " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  @user_course_identity  >  Course :: ASSISTANT_PROFESSOR 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          tip_exception ( 403 , " 无权限操作 " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        elsif  @all_members . size  ==  0 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  @all_members . length  ==  0 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          normal_status ( - 1 , " 课堂暂时没有学生 " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        elsif  params [ :export ] . present?  &&  params [ :export ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            normal_status ( 0 , " 正在下载中 " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          normal_status ( 0 , " 正在下载中 " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        else 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          @c_homeworks  =  @course . homework_commons . homework_published . order ( " homework_commons.publish_time asc, homework_commons.created_at asc " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          @c_exercises  =  @course . exercises . is_exercise_published . order ( " exercises.publish_time asc, exercises.created_at asc " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          # @c_polls = @course.polls.publish_or_not.order("polls.publish_time asc, polls.created_at asc") 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          @c_tasks  =  @course . graduation_tasks . task_published . order ( " graduation_tasks.publish_time asc, graduation_tasks.created_at asc " ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          set_export_cookies 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          member_to_xlsx ( @course ,  @all_members ,  @c_homeworks ,  @c_exercises ,  @c_tasks ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          filename_  =  " #{ current_user . real_name } _ #{ @course . name } _全部成绩_ #{ Time . now . strftime ( '%Y%m%d_%H%M%S' ) } " 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          filename_  =  " #{ current_user . real_name } _ #{ @course . name } _ 总 成绩_#{ Time . now . strftime ( '%Y%m%d_%H%M%S' ) } " 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          render  xlsx :  " #{ format_sheet_name  filename_ . strip } " , template :  " courses/export_member_scores_excel.xlsx.axlsx " , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 locals :  { course_info : @course_info ,  activity_level : @user_activity_level , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                          course_scores : @course_user_scores , shixun_works : @shixun_work_arrays , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 locals :  { course_scores : @course_user_scores , shixun_works : @shixun_work_arrays , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                          common_works : @common_work_arrays , group_works : @group_work_arrays , task_works : @task_work_arrays , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                          exercise_works : @exercise_work_arrays } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      rescue  Exception  = >  e 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        uid_logger_error ( e . message ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        tip_exception ( e . message ) 
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1279,13 +1301,7 @@ class CoursesController < ApplicationController
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  # end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  def  student_act_score  group_id ,  search 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    sql_select  =  %Q{ SELECT cm.*,( 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          SELECT  SUM ( student_works . work_score ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          FROM  student_works , homework_commons 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          WHERE  student_works . homework_common_id  =  homework_commons . id 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          AND  homework_commons . course_id  =  #{@course.id} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          AND  student_works . user_id  =  cm . user_id 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        )  AS  score , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    sql_select  =  %Q{ SELECT cm.*, 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        ( SELECT  max ( student_id )  FROM  user_extensions  WHERE  user_extensions . user_id  =  cm . user_id )  AS  student_id , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        ( SELECT  count ( messages . id )  FROM  messages  join  boards  on  messages . board_id  =  boards . id  WHERE  boards . course_id  =  #{@course.id} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                AND  messages . author_id  =  cm . user_id  and  messages . parent_id  is  null )  AS  message_num , 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1306,52 +1322,25 @@ class CoursesController < ApplicationController
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        FROM  course_members  cm } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  search . present?  &&  group_id . present? 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      sql_select  +=  %Q{  join users on cm.user_id = users.id 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                      join s  user_extensions  ue  on  ue . user_id  =  users . id 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                      join  user_extensions  ue  on  ue . user_id  =  users . id 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                      WHERE  cm . role  =  4  and  cm . course_id  =  #{@course.id} and cm.course_group_id = #{group_id} and 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                      ( concat ( users . lastname ,  users . firstname )  like  '%#{search}%'  or  ue . student_id  like  '%#{search}%' )  ORDER  BY  score  desc  } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                      ( concat ( users . lastname ,  users . firstname )  like  '%#{search}%'  or  ue . student_id  like  '%#{search}%' ) } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    elsif  search . present? 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      sql_select  +=  %Q{  join users on cm.user_id = users.id 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                      join s  user_extensions  ue  on  ue . user_id  =  users . id 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                      join  user_extensions  ue  on  ue . user_id  =  users . id 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                      WHERE  cm . role  =  4  and 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                      ( concat ( users . lastname ,  users . firstname )  like  '%#{search}%'  or  ue . student_id  like  '%#{search}%' )  ORDER  BY  score  desc  } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                      ( concat ( users . lastname ,  users . firstname )  like  '%#{search}%'  or  ue . student_id  like  '%#{search}%' ) } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    elsif  group_id . present? 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      sql_select  +=  %Q{  WHERE cm.role = 4 and cm.course_id =  #{ @course . id }  and cm.course_group_id =  #{ group_id }  ORDER BY score desc }
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      sql_select  +=  %Q{  WHERE cm.role = 4 and cm.course_id =  #{ @course . id }  and cm.course_group_id =  #{ group_id }  }
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      sql_select  +=  %Q{  WHERE cm.role = 4 and cm.course_id =  #{ @course . id }  ORDER BY score desc }
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      sql_select  +=  %Q{  WHERE cm.role = 4 and cm.course_id =  #{ @course . id }  }
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    act_scores  =  CourseMember . find_by_sql ( sql_select ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    act_scores 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  def  member_to_xlsx ( course , all_members , homeworks , exercises , tasks ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    #课堂的作业信息 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    shixun_homeworks  =  homeworks . search_homework_type ( 4 )    #全部实训作业 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    shixun_titles  =  shixun_homeworks . pluck ( :name )  +  [ " 总得分 " ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    # 更新实训作业成绩 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    shixun_homeworks . includes ( :homework_challenge_settings ,  :published_settings ,  :homework_commons_shixun ) . each  do  | homework | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      homework . update_homework_work_score 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    shixun_homeworks  =  shixun_homeworks & . includes ( score_student_works :  :user ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    common_homeworks  =  homeworks . search_homework_type ( 1 )  #全部普通作业 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    common_titles  =  common_homeworks . pluck ( :name ) +  [ " 总得分 " ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    common_homeworks  =  common_homeworks & . includes ( score_student_works :  :user ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    group_homeworks  =  homeworks . search_homework_type ( 3 )   #全部分组作业 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    group_titles  =  group_homeworks . pluck ( :name ) +  [ " 总得分 " ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    group_homeworks  =  group_homeworks & . includes ( score_student_works :  :user ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    task_titles  =  tasks . pluck ( :name )  +  [ " 总得分 " ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    tasks  =  tasks & . includes ( user :  :user_extension ,  score_graduation_works :  :user ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    exercise_titles  =  exercises . pluck ( :exercise_name )  +  [ " 总得分 " ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    exercises  =  exercises & . includes ( user :  :user_extension ,  score_exercise_users :  :user ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    total_user_score_array  =  [ ]    #学生总成绩集合 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  def  course_info_to_xlsx  course 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    #课堂信息 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    @course_info  =  [ ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    course_info_title  =  " 课堂信息概要 " 
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1399,7 +1388,9 @@ class CoursesController < ApplicationController
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    course_group_info  =  [ course_group_info_head , course_group_info_body ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    @course_info  +=  [ course_info_title , course_main_info , course_group_info ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  def  act_score_to_xlsx  all_members 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    #课堂活跃度 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    @user_activity_level  =  [ ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    course_user_level  =  [ ] 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1414,8 +1405,6 @@ class CoursesController < ApplicationController
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_stu_id  =  u . student_id . present?  ?  ( u . student_id . to_s  +  " \t " )  :  " -- " 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_school  =  user . school_name 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_course_group  =  u . course_group_name 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_info_array  =  [ user_login , user_name , user_mail , user_stu_id , user_school , user_course_group ]    #用户的信息集合 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_work_scores  =  [ ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      #课堂活跃度统计 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_homeworks_num  =  u . homework_num . to_i   #完成的作业数 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1434,23 +1423,69 @@ class CoursesController < ApplicationController
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      c_reply_num  =  user_reply_num 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_activity_levels  =  c_works_num  +  c_exercise_num  +  c_poll_num  +  c_file_num  +  c_message_num  +  c_reply_num  +  user_work_reply_num 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_ac_level  =  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_1 :  user_name , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_2 :  user_login , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_2_1 :  user_mail , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_3 :  user_stu_id , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_4 :  user_school , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_5 :  user_course_group , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_6 :  c_works_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_7 :  c_exercise_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_8 :  c_poll_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_9 :  c_file_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_10 :  c_message_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_11 :  c_reply_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_12 :  user_work_reply_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           u_13 :  user_activity_levels 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_1 :  user_name , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_2 :  user_login , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_2_1 :  user_mail , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_3 :  user_stu_id , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_4 :  user_school , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_5 :  user_course_group , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_6 :  c_works_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_7 :  c_exercise_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_8 :  c_poll_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_9 :  c_file_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_10 :  c_message_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_11 :  c_reply_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_12 :  user_work_reply_num , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        u_13 :  user_activity_levels 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      course_user_level . push ( user_ac_level ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      #.课堂活跃度统计的集合 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      course_user_level  =  course_user_level . sort_by  { | k |  k [ :u_13 ] } . reverse 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      @user_activity_level  =  [ course_activity_title , user_cell_head , course_user_level ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  def  member_to_xlsx ( course , all_members , homeworks , exercises , tasks ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    #课堂的作业信息 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    shixun_homeworks  =  homeworks . search_homework_type ( 4 )    #全部实训作业 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    shixun_titles  =  shixun_homeworks . pluck ( :name )  +  [ " 总得分 " ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    # 更新实训作业成绩 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    shixun_homeworks . includes ( :homework_challenge_settings ,  :published_settings ,  :homework_commons_shixun ) . each  do  | homework | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      homework . update_homework_work_score 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    shixun_homeworks  =  shixun_homeworks & . includes ( score_student_works :  :user ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    common_homeworks  =  homeworks . search_homework_type ( 1 )  #全部普通作业 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    common_titles  =  common_homeworks . pluck ( :name ) +  [ " 总得分 " ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    common_homeworks  =  common_homeworks & . includes ( score_student_works :  :user ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    group_homeworks  =  homeworks . search_homework_type ( 3 )   #全部分组作业 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    group_titles  =  group_homeworks . pluck ( :name ) +  [ " 总得分 " ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    group_homeworks  =  group_homeworks & . includes ( score_student_works :  :user ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    task_titles  =  tasks . pluck ( :name )  +  [ " 总得分 " ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    tasks  =  tasks & . includes ( user :  :user_extension ,  score_graduation_works :  :user ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    exercise_titles  =  exercises . pluck ( :exercise_name )  +  [ " 总得分 " ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    exercises  =  exercises & . includes ( user :  :user_extension ,  score_exercise_users :  :user ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    total_user_score_array  =  [ ]    #学生总成绩集合 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    all_members . each  do  | u | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      #用户的基本信息 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user  =  u . user 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_login  =  user . login 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_name  =  user . real_name 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_mail  =  user . mail 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_stu_id  =  user . student_id . present?  ?  ( user . student_id . to_s  +  " \t " )  :  " -- " 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_school  =  user . school_name 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_course_group  =  u . course_group_name 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_info_array  =  [ user_name , user_login , user_mail , user_stu_id , user_school , user_course_group ]    #用户的信息集合 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      user_work_scores  =  [ ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      #学生总成绩 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      shixun_score  =  0 . 0  # 实训作业的总分 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      common_score  =  0 . 0  #普通作业的总分 
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1548,10 +1583,6 @@ class CoursesController < ApplicationController
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      total_user_score_array . push ( user_work_scores )   # 全部成员的集合 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    end 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    #1.课堂活跃度统计的集合 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    course_user_level  =  course_user_level . sort_by  { | k |  k [ :u_12 ] } . reverse 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    @user_activity_level  =  [ course_activity_title , user_cell_head , course_user_level ] 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    #2.学生总成绩的集合 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ## 作业标题的集合 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    course_user_score_title  =  " 学生总成绩 "