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