|
|
|
@@ -0,0 +1,29 @@ |
|
|
|
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 |