forked from jasder/forgeplus
51 lines
1.3 KiB
Ruby
51 lines
1.3 KiB
Ruby
|
class Admins::DashboardsController < Admins::BaseController
|
||
|
def index
|
||
|
@active_user_count = User.where(last_login_on: today).count
|
||
|
@weekly_active_user_count = User.where(last_login_on: current_week).count
|
||
|
@month_active_user_count = User.where(last_login_on: current_month).count
|
||
|
|
||
|
@new_user_count = User.where(created_on: current_month).count
|
||
|
end
|
||
|
|
||
|
def month_active_user
|
||
|
count = UserExtension.where(created_at: current_month).group(:identity).count
|
||
|
|
||
|
data = [
|
||
|
{ value: count['teacher'].to_i, name: '老师' },
|
||
|
{ value: count['student'].to_i, name: '学生' },
|
||
|
{ value: count['professional'].to_i, name: '专业人士' },
|
||
|
{ value: count[nil].to_i, name: '未选职业' },
|
||
|
]
|
||
|
|
||
|
render_ok(data: data)
|
||
|
end
|
||
|
|
||
|
def evaluate
|
||
|
names = []
|
||
|
data = []
|
||
|
|
||
|
1.upto(7) do |i|
|
||
|
date = i.days.ago
|
||
|
names.unshift(date.strftime('%Y-%m-%d'))
|
||
|
|
||
|
count = Output.where(created_at: date.beginning_of_day..date.end_of_day).count
|
||
|
data.unshift(count)
|
||
|
end
|
||
|
|
||
|
render_ok(names: names, data: data)
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def today
|
||
|
Time.now.beginning_of_day..Time.now.end_of_day
|
||
|
end
|
||
|
|
||
|
def current_week
|
||
|
7.days.ago.beginning_of_day..Time.now.end_of_day
|
||
|
end
|
||
|
|
||
|
def current_month
|
||
|
30.days.ago.beginning_of_day..Time.now.end_of_day
|
||
|
end
|
||
|
end
|