|
- class Statistic::PlatformCourseQuery < ApplicationQuery
- attr_reader :params
-
- def initialize(params)
- @params = params
- end
-
- def call
- Trustie::Database.set_connection
- course_total_count = Trustie::Course.count
- course_active_count = Trustie::Course.joins(:course_groups)
- .where("course_groups.created_at > ? and course_groups.created_at < ?", start_time, end_time).count
- +
- Trustie::Course.joins(:homework_commons)
- .where("homework_commons.created_at > ? and homework_commons.created_at < ?", start_time, end_time).count
- course_fresh_count = Trustie::Course.where("created_at > ? and created_at < ?", start_time, end_time).count
-
- [course_total_count, course_active_count, course_fresh_count]
- end
-
- private
- def start_time
- Time.at(params.fetch(:start_time, Time.now.beginning_of_day.to_i).to_i)
- end
-
- def end_time
- Time.at(params.fetch(:end_time, Time.now.to_i).to_i)
- end
- end
|