forked from Trustie/forgeplus
fix: 统一返回数据
This commit is contained in:
parent
824767ca30
commit
ec0a6be9d4
|
|
@ -291,38 +291,30 @@ class ProjectsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
def score
|
||||
project_evaluation = ProjectEvaluation.find_by(project_id: @project.id)
|
||||
|
||||
response_data = {
|
||||
influence_norm_score: project_evaluation&.norm_influence || 0,
|
||||
community_norm_score: project_evaluation&.norm_community || 0,
|
||||
vitality_norm_score: project_evaluation&.norm_vitality || 0,
|
||||
health_norm_score: project_evaluation&.norm_health || 0,
|
||||
trend_norm_score: project_evaluation&.norm_trend || 0,
|
||||
score: project_evaluation&.score || 0,
|
||||
updated_at: project_evaluation&.updated_at&.strftime("%Y-%m-%d %H:%M")
|
||||
}
|
||||
render json: response_data
|
||||
@project_evaluation = ProjectEvaluation.find_by(project_id: @project.id)
|
||||
if @project_evaluation.nil?
|
||||
render_error("暂无得分数据")
|
||||
end
|
||||
end
|
||||
|
||||
def top
|
||||
period = params[:period]
|
||||
time_interval = params[:time_interval]
|
||||
|
||||
if period.present? && time_interval.present?
|
||||
project_evaluation_ids = ProjectEvaluationTop.where(evaluation_period: period, time_interval: time_interval)
|
||||
.pluck(:project_id)
|
||||
|
||||
projects = Project.where(id: project_evaluation_ids).includes(:project_category, :project_language, :repository, :project_educoder, :owner, :project_units, :project_topics).project_statics_select
|
||||
render json: projects
|
||||
custom_params = {
|
||||
ids: project_evaluation_ids.join(","),
|
||||
}
|
||||
@total_count = project_evaluation_ids.count
|
||||
scope = Projects::ListQuery.call(custom_params)
|
||||
@projects = kaminari_paginate(scope.includes(:project_category, :project_language, :repository, :project_educoder, :owner, :project_units, :project_topics))
|
||||
else
|
||||
render_error("参数错误")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
private
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
json.influence_norm_score @project_evaluation.norm_influence
|
||||
json.community_norm_score @project_evaluation.norm_community
|
||||
json.vitality_norm_score @project_evaluation.norm_vitality
|
||||
json.health_norm_score @project_evaluation.norm_health
|
||||
json.trend_norm_score @project_evaluation.norm_trend
|
||||
json.score @project_evaluation.score
|
||||
json.updated_at time_from_now(@project_evaluation.updated_at)
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
json.total_count @total_count
|
||||
json.projects @projects do |project|
|
||||
json.id project.id
|
||||
json.repo_id project&.repository&.id
|
||||
json.identifier render_identifier(project)
|
||||
json.name project.name
|
||||
json.description Nokogiri::HTML(project.description).text
|
||||
json.visits project.visits
|
||||
json.praises_count project.praises_count.to_i
|
||||
json.forked_count project.forked_count.to_i
|
||||
json.is_public project.is_public
|
||||
json.mirror_url project.repository&.mirror_url
|
||||
json.type project&.numerical_for_project_type
|
||||
json.last_update_time render_unix_time(project.updated_on)
|
||||
json.time_ago time_from_now(project.updated_on)
|
||||
json.forked_from_project_id project.forked_from_project_id
|
||||
json.open_devops project.open_devops?
|
||||
json.platform project.platform
|
||||
json.author do
|
||||
if project.educoder?
|
||||
project_educoder = project.project_educoder
|
||||
json.name project_educoder&.owner
|
||||
json.login project_educoder&.repo_name.split('/')[0]
|
||||
# json.image_url render_educoder_avatar_url(project.project_educoder)
|
||||
else
|
||||
user = project.owner
|
||||
json.type user.type
|
||||
json.name user.try(:show_real_name)
|
||||
json.login user.login
|
||||
json.image_url url_to_avatar(user)
|
||||
end
|
||||
end
|
||||
|
||||
json.category do
|
||||
if project.project_category.blank?
|
||||
json.nil!
|
||||
else
|
||||
json.id project.project_category.id
|
||||
json.name project.project_category.name
|
||||
end
|
||||
end
|
||||
json.language do
|
||||
if project.project_language.blank?
|
||||
json.nil!
|
||||
else
|
||||
json.id project.project_language.id
|
||||
json.name project.project_language.name
|
||||
end
|
||||
end
|
||||
json.topics project.project_topics.each do |topic|
|
||||
json.(topic, :id, :name)
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue