forgeplus/app/queries/statistic/platform_course_query.rb

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