forked from jasder/forgeplus
51 lines
1.6 KiB
Ruby
51 lines
1.6 KiB
Ruby
class Admins::SchoolStatisticsController < Admins::BaseController
|
|
before_action :contrast_column_select_options, only: [:contrast]
|
|
|
|
def index
|
|
params[:data_type] ||= 'grow'
|
|
params[:sort_by] = params[:sort_by].presence || :teacher_increase_count
|
|
params[:sort_direction] = params[:sort_direction].presence || :desc
|
|
|
|
service = Admins::StatisticSchoolDataGrowService.new(params)
|
|
@grow_summary = service.grow_summary
|
|
|
|
total_count, statistics = service.call
|
|
@params_page = params[:page] || 1
|
|
|
|
@statistics = paginate statistics, total_count: total_count
|
|
end
|
|
|
|
def contrast
|
|
params[:contrast_column] = params[:contrast_column].presence || :teacher_increase_count
|
|
params[:sort_direction] ||= :desc
|
|
params[:sort_by] = :percentage
|
|
|
|
# 无对比日期时直接返回无数据页面
|
|
if useless_contrast_date_parameter?
|
|
@total_count = 0
|
|
@statistics = paginate([])
|
|
return
|
|
end
|
|
|
|
total_count, statistics = Admins::StatisticSchoolContrastDataService.call(params)
|
|
|
|
@statistics = paginate statistics, total_count: total_count
|
|
rescue Admins::StatisticSchoolContrastDataService::ParameterError
|
|
render_unprocessable_entity('参数错误')
|
|
end
|
|
|
|
private
|
|
|
|
def useless_contrast_date_parameter?
|
|
params[:begin_date].blank? && params[:end_date].blank? &&
|
|
params[:other_begin_date].blank? &¶ms[:other_end_date].blank?
|
|
end
|
|
|
|
def contrast_column_select_options
|
|
@select_options =
|
|
Admins::StatisticSchoolContrastDataService::CONTRAST_COLUMN_LIST.map do |column|
|
|
[I18n.t("school_daily_report.#{column}"), column]
|
|
end
|
|
end
|
|
end
|