37 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| class Admins::DailySchoolStatisticsController < Admins::BaseController
 | |
|   def index
 | |
|     params[:sort_by] = params[:sort_by].presence || :teacher_count
 | |
|     params[:sort_direction] = params[:sort_direction].presence || :desc
 | |
| 
 | |
|     total_count, statistics = Admins::SchoolDailyStatisticService.call(params)
 | |
| 
 | |
|     @statistics = paginate statistics, total_count: total_count
 | |
|     @params_page = params[:page] || 1
 | |
| 
 | |
|     respond_to do |format|
 | |
|       format.html { load_statistic_total }
 | |
|       format.js
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def export
 | |
|     params[:per_page] = 10000
 | |
|     _count, @schools = Admins::SchoolDailyStatisticService.call(params)
 | |
| 
 | |
|     filename = ['学校统计总表', params[:keyword], Time.zone.now.strftime('%Y%m%d%H%M%S')].join('-') << '.xlsx'
 | |
|     render xlsx: 'export', filename: filename
 | |
|   end
 | |
| 
 | |
|   private
 | |
| 
 | |
|   def load_statistic_total
 | |
|     @teacher_total         = User.joins(:user_extension).where(user_extensions: { identity: :teacher }).count
 | |
|     @student_total         = User.joins(:user_extension).where(user_extensions: { identity: :student }).count
 | |
|     @course_total          = Course.count
 | |
|     @active_course_total   = Course.where(is_end: false).count
 | |
|     @shixun_homework_total = HomeworkCommon.where(homework_type: 4).count
 | |
|     @other_homework_total  = HomeworkCommon.where(homework_type: [1, 3]).count
 | |
|     @shixun_total          = Shixun.count
 | |
|     @shixun_evaluate_total = SchoolReport.sum(:shixun_evaluate_count)
 | |
|   end
 | |
| end |