forked from Gitlink/forgeplus
29 lines
1.0 KiB
Ruby
29 lines
1.0 KiB
Ruby
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 |