forked from jasder/forgeplus
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 |