mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-16 01:35:56 +08:00
Merge branch 'standalone_develop' into pre_trustie_server
This commit is contained in:
@@ -28,6 +28,41 @@ class Admins::DashboardsController < Admins::BaseController
|
||||
@day_new_project_count = Project.where(created_on: today).count
|
||||
@weekly_new_project_count = Project.where(created_on: current_week).count
|
||||
@month_new_project_count = Project.where(created_on: current_month).count
|
||||
|
||||
# 总的平台用户数
|
||||
# 总的平台项目数
|
||||
# 总的平台组织数
|
||||
# 总的平台Issue数、评论数、PR数、Commit数
|
||||
@user_count = User.count
|
||||
@project_count = Project.count
|
||||
@organization_count = Organization.count
|
||||
@issue_count = Issue.count
|
||||
@comment_count = Journal.count
|
||||
@pr_count = PullRequest.count
|
||||
@commit_count = CommitLog.count
|
||||
|
||||
@subject_name = ["用户数", "项目数", "组织数", "Issue数", "Issue评论数", "PR数", "Commit数"]
|
||||
@subject_icon = ["fa-user","fa-git", "fa-sitemap", "fa-warning", "fa-comments", "fa-share-alt", "fa-upload"]
|
||||
@subject_data = [@user_count, @project_count, @organization_count, @issue_count, @comment_count, @pr_count, @commit_count]
|
||||
|
||||
|
||||
tongji_service = Baidu::TongjiService.new
|
||||
@access_token = tongji_service.access_token
|
||||
Rails.logger.info "baidu_tongji_auth access_token ===== #{@access_token}"
|
||||
# @overview_data = tongji_service.api_overview
|
||||
last_date = DailyPlatformStatistic.order(:date).last
|
||||
start_date = last_date.date
|
||||
end_date = Time.now
|
||||
if @access_token.present?
|
||||
@overview_data = tongji_service.overview_batch_add(start_date, end_date)
|
||||
tongji_service.source_from_batch_add(start_date, end_date)
|
||||
end
|
||||
|
||||
@current_week_statistic = DailyPlatformStatistic.where(date: current_week)
|
||||
@pre_week_statistic = DailyPlatformStatistic.where(date: pre_week)
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
def month_active_user
|
||||
@@ -42,6 +77,19 @@ class Admins::DashboardsController < Admins::BaseController
|
||||
render_ok(data: data)
|
||||
end
|
||||
|
||||
def baidu_tongji
|
||||
tongji_service = Baidu::TongjiService.new
|
||||
redirect_to tongji_service.code_url
|
||||
end
|
||||
|
||||
def baidu_tongji_auth
|
||||
if params[:code].present?
|
||||
tongji_service = Baidu::TongjiService.new
|
||||
tongji_service.get_access_token(params[:code])
|
||||
end
|
||||
redirect_to "/admins/"
|
||||
end
|
||||
|
||||
def evaluate
|
||||
names = []
|
||||
data = []
|
||||
@@ -63,8 +111,12 @@ class Admins::DashboardsController < Admins::BaseController
|
||||
Time.now.beginning_of_day..Time.now.end_of_day
|
||||
end
|
||||
|
||||
def current_week
|
||||
def pre_7_days
|
||||
7.days.ago.end_of_day..Time.now.end_of_day
|
||||
end
|
||||
|
||||
def current_week
|
||||
Time.now.beginning_of_week..Time.now.end_of_day
|
||||
end
|
||||
|
||||
def current_month
|
||||
@@ -72,6 +124,7 @@ class Admins::DashboardsController < Admins::BaseController
|
||||
end
|
||||
|
||||
def pre_week
|
||||
14.days.ago.end_of_day..7.days.ago.end_of_day
|
||||
# 14.days.ago.end_of_day..7.days.ago.end_of_day
|
||||
Time.now.prev_week..Time.now.prev_week.end_of_week
|
||||
end
|
||||
end
|
||||
@@ -15,6 +15,7 @@ class Admins::IdentityVerificationsController < Admins::BaseController
|
||||
|
||||
def update
|
||||
if @identity_verification.update(update_params)
|
||||
UserAction.create(action_id: @identity_verification.id, action_type: "UpdateIdentityVerifications", user_id: current_user.id, :ip => request.remote_ip, data_bank: @identity_verification.attributes.to_json)
|
||||
redirect_to admins_identity_verifications_path
|
||||
flash[:success] = "更新成功"
|
||||
else
|
||||
|
||||
@@ -1,16 +1,55 @@
|
||||
class Admins::ProjectsRankController < Admins::BaseController
|
||||
|
||||
def index
|
||||
@rank_date = rank_date
|
||||
deleted_data = $redis_cache.smembers("v2-project-rank-deleted")
|
||||
$redis_cache.zrem("v2-project-rank-#{rank_date}", deleted_data) unless deleted_data.blank?
|
||||
@date_rank = $redis_cache.zrevrange("v2-project-rank-#{rank_date}", 0, -1, withscores: true)
|
||||
@statistics = DailyProjectStatistic.where("date >= ? AND date <= ?", begin_date, end_date)
|
||||
@statistics = @statistics.group(:project_id).select("project_id,
|
||||
sum(score) as score,
|
||||
sum(visits) as visits,
|
||||
sum(watchers) as watchers,
|
||||
sum(praises) as praises,
|
||||
sum(forks) as forks,
|
||||
sum(issues) as issues,
|
||||
sum(pullrequests) as pullrequests,
|
||||
sum(commits) as commits").includes(:project)
|
||||
@statistics = @statistics.order("#{sort_by} #{sort_direction}")
|
||||
export_excel(@statistics.limit(50))
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def rank_date
|
||||
params.fetch(:date, Date.today.to_s)
|
||||
def begin_date
|
||||
params.fetch(:begin_date, (Date.today-7.days).to_s)
|
||||
end
|
||||
|
||||
def end_date
|
||||
params.fetch(:end_date, Date.today.to_s)
|
||||
end
|
||||
|
||||
def sort_by
|
||||
DailyProjectStatistic.column_names.include?(params.fetch(:sort_by, "score")) ? params.fetch(:sort_by, "score") : "score"
|
||||
end
|
||||
|
||||
def sort_direction
|
||||
%w(desc asc).include?(params.fetch(:sort_direction, "desc")) ? params.fetch(:sort_direction, "desc") : "desc"
|
||||
end
|
||||
|
||||
def export_excel(data)
|
||||
book = Spreadsheet::Workbook.new
|
||||
sheet = book.create_worksheet :name => "项目活跃度排行"
|
||||
sheet.row(0).concat %w(排名 项目全称 项目地址 得分 访问数 关注数 点赞数 fork数 疑修数 合并请求数 提交数)
|
||||
data.each_with_index do |d, index|
|
||||
sheet[index+1,0] = index+1
|
||||
sheet[index+1,1] = "#{d&.project&.owner&.real_name}/#{d&.project&.name}"
|
||||
sheet[index+1,2] = "#{Rails.application.config_for(:configuration)['platform_url']}/#{d&.project&.owner&.login}/#{d&.project&.identifier}"
|
||||
sheet[index+1,3] = d.score
|
||||
sheet[index+1,4] = d.visits
|
||||
sheet[index+1,5] = d.watchers
|
||||
sheet[index+1,6] = d.praises
|
||||
sheet[index+1,7] = d.forks
|
||||
sheet[index+1,8] = d.issues
|
||||
sheet[index+1,9] = d.pullrequests
|
||||
sheet[index+1,10] = d.commits
|
||||
end
|
||||
book.write "#{Rails.root}/public/项目活跃度排行.xls"
|
||||
end
|
||||
|
||||
end
|
||||
@@ -29,8 +29,12 @@ class Admins::SitePagesController < Admins::BaseController
|
||||
end
|
||||
|
||||
def update
|
||||
@site_page.update(update_params)
|
||||
flash[:success] = '保存成功'
|
||||
if update_params[:state] == "false" && update_params[:state_description].blank?
|
||||
flash[:danger] = '关闭站点理由不能为空'
|
||||
else
|
||||
@site_page.update(update_params)
|
||||
flash[:success] = '保存成功'
|
||||
end
|
||||
render 'edit'
|
||||
end
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ class Admins::SystemNotificationsController < Admins::BaseController
|
||||
@notification = SystemNotification.new(notification_params)
|
||||
if @notification.save
|
||||
redirect_to admins_system_notifications_path
|
||||
flash[:success] = '系统消息创建成功'
|
||||
flash[:success] = '系统公告创建成功'
|
||||
else
|
||||
redirect_to admins_system_notifications_path
|
||||
flash[:danger] = @notification.errors.full_messages.join(",")
|
||||
@@ -37,7 +37,7 @@ class Admins::SystemNotificationsController < Admins::BaseController
|
||||
if @notification.update_attributes(notification_params)
|
||||
format.html do
|
||||
redirect_to admins_system_notifications_path
|
||||
flash[:success] = '系统消息更新成功'
|
||||
flash[:success] = '系统公告更新成功'
|
||||
end
|
||||
format.js {render_ok}
|
||||
else
|
||||
@@ -53,10 +53,10 @@ class Admins::SystemNotificationsController < Admins::BaseController
|
||||
def destroy
|
||||
if @notification.destroy
|
||||
redirect_to admins_system_notifications_path
|
||||
flash[:success] = "系统消息删除成功"
|
||||
flash[:success] = "系统公告删除成功"
|
||||
else
|
||||
redirect_to admins_system_notifications_path
|
||||
flash[:danger] = "系统消息删除失败"
|
||||
flash[:danger] = "系统公告删除失败"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -17,23 +17,31 @@ class SitePagesController < ApplicationController
|
||||
end
|
||||
|
||||
def create
|
||||
return normal_status(-1, "你还未开通Page服务,无法进行部署") unless current_user.website_permission
|
||||
return normal_status(-1, "你已使用了 #{params[:identifier]} 作为page标识") if Page.exists?(identifier: params[:identifier], user: current_user)
|
||||
return normal_status(-1, "该仓库已开通Page服务") if Page.exists?(project: @project)
|
||||
return normal_status(-1, '你还未开通Page服务,无法进行部署') unless current_user.website_permission
|
||||
return normal_status(-1, '你已开通Page服务') if Page.exists?(user: current_user)
|
||||
return normal_status(-1, '该仓库已开通Page服务') if Page.exists?(project: @project)
|
||||
@page = Page.new(create_params)
|
||||
@page.user = current_user
|
||||
@page.project = @project
|
||||
@page.save
|
||||
end
|
||||
|
||||
def update
|
||||
return normal_status(-1, '你还未开通Page服务') unless current_user.website_permission
|
||||
return normal_status(-1, '你还未开通Page站点') unless Page.exists?(user: current_user)
|
||||
@page = Page.find_by(user: current_user)
|
||||
@page.update(language_frame: params[:language_frame])
|
||||
render_ok
|
||||
end
|
||||
|
||||
def build
|
||||
return normal_status(-1, "你还未开通Page服务,无法进行部署") unless current_user.website_permission
|
||||
return normal_status(-1, "该仓库还未开通Page服务,无法进行部署") unless Page.exists?(project: @project)
|
||||
return normal_status(-1, '你还未开通Page服务,无法进行部署') unless current_user.website_permission
|
||||
return normal_status(-1, '该仓库还未开通Page服务,无法进行部署') unless Page.exists?(project: @project)
|
||||
@page = Page.find params[:id]
|
||||
return normal_status(-1, @page.state_description) unless @page.state
|
||||
response_str = @page.deploy_page(params[:branch])
|
||||
data = JSON.parse(response_str)["result"] || data = JSON.parse(response_str)["error"]
|
||||
if data.to_s.include?("部署成功")
|
||||
data = JSON.parse(response_str)['result'] || (data = JSON.parse(response_str)['error'])
|
||||
if data.to_s.include?('部署成功')
|
||||
@page.update(last_build_at: Time.now, build_state: true, last_build_info: data)
|
||||
else
|
||||
@page.update(build_state:false, last_build_info: data)
|
||||
@@ -42,22 +50,22 @@ class SitePagesController < ApplicationController
|
||||
end
|
||||
|
||||
def softbot_build
|
||||
branch = params[:ref].split("/").last
|
||||
branch = params[:ref].split('/').last
|
||||
user = User.find_by_login params[:repository][:owner][:login]
|
||||
return normal_status(-1, "你还未开通Page服务,无法进行部署") unless user.website_permission
|
||||
return normal_status(-1, '你还未开通Page服务,无法进行部署') unless user.website_permission
|
||||
|
||||
project = Project.where(identifier: params[:repository][:name],user_id: user.id)
|
||||
return normal_status(-1, "你没有权限操作") if project.owner?(user)
|
||||
return normal_status(-1, "该仓库还未开通Page服务,无法进行部署") if Page.exists?(user: user, project: project)
|
||||
return normal_status(-1, '你没有权限操作') if project.owner?(user)
|
||||
return normal_status(-1, '该仓库还未开通Page服务,无法进行部署') if Page.exists?(user: user, project: project)
|
||||
|
||||
@page = Page.find_by(user: user, project: project)
|
||||
response_str = @page.deploy_page(branch)
|
||||
data = JSON.parse(response_str)["result"]
|
||||
data = JSON.parse(response_str)['result']
|
||||
if data.nil?
|
||||
data = JSON.parse(response_str)["error"]
|
||||
data = JSON.parse(response_str)['error']
|
||||
end
|
||||
|
||||
if data.include?("部署成功")
|
||||
if data.include?('部署成功')
|
||||
@page.update(last_build_at: Time.now, build_state: true, last_build_info: data)
|
||||
else
|
||||
@page.update(build_state:false, last_build_info: data)
|
||||
@@ -85,7 +93,7 @@ class SitePagesController < ApplicationController
|
||||
end
|
||||
|
||||
def theme_params
|
||||
params[:language_frame] || "hugo"
|
||||
params[:language_frame] || 'hugo'
|
||||
end
|
||||
|
||||
def create_params
|
||||
|
||||
Reference in New Issue
Block a user