mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-22 12:45:46 +08:00
新增: 项目概览更新
This commit is contained in:
@@ -14,10 +14,11 @@ class Api::Pm::DashboardsController < Api::Pm::BaseController
|
||||
|
||||
def my_issues
|
||||
return render_error('请输入正确的pm_project_ids.') if params[:pm_project_ids].blank?
|
||||
return render_error('请输入正确的pm_issue_types.') if params[:pm_issue_types].blank?
|
||||
pm_project_ids = params[:pm_project_ids].split(",") rescue []
|
||||
@all_issues = Issue.where(pm_project_id: pm_project_ids)
|
||||
pm_issue_types = params[:pm_issue_types].split(",") rescue []
|
||||
@all_issues = Issue.where(pm_project_id: pm_project_ids, pm_issue_type: pm_issue_types)
|
||||
@issues = @all_issues.joins(:issue_participants).where(issue_participants: {participant_id: current_user.id})
|
||||
@issues = @issues.where(pm_issue_type: params[:pm_issue_type].to_i) if params[:pm_issue_type].present?
|
||||
|
||||
@issues = kaminari_paginate(@issues.distinct.pm_includes)
|
||||
@my_assign_requirements_count = @all_issues.where(pm_issue_type: 1).joins(:issue_participants).where(issue_participants: {participant_id: current_user.id, participant_type: 'assigned'}).size
|
||||
@@ -36,12 +37,15 @@ class Api::Pm::DashboardsController < Api::Pm::BaseController
|
||||
@before_last_week_close_issue_count = @all_issues.where(status_id: 5).where("updated_on > ? and updated_on < ?", time_now - 14.days, time_now - 7.days).size
|
||||
@compare_last_week_close_issues = @before_last_week_close_issue_count.zero? ? 0 :(@last_week_close_issues_count - @before_last_week_close_issue_count).to_f / @before_last_week_close_issue_count rescue 0
|
||||
@all_requirement_issues_count = @all_issues.where(pm_issue_type: 1).size
|
||||
@open_requirement_issues_count = @all_issues.where(pm_issue_type: 1).where.not(status_id: 5).size
|
||||
@last_week_close_requirement_issues_count = @all_issues.where(pm_issue_type: 1).where(status_id: 5).where("updated_on > ? and updated_on < ?", time_now - 7.days, time_now).size
|
||||
@last_month_close_requirement_issues_count = @all_issues.where(pm_issue_type: 1).where(status_id: 5).where("updated_on > ? and updated_on < ?", time_now - 30.days, time_now).size
|
||||
@all_task_issues_count = @all_issues.where(pm_issue_type: 2).size
|
||||
@open_task_issues_count = @all_issues.where(pm_issue_type: 2).where.not(status_id: 5).size
|
||||
@last_week_close_tast_issues_count = @all_issues.where(pm_issue_type: 2).where(status_id: 5).where("updated_on > ? and updated_on < ?", time_now - 7.days, time_now).size
|
||||
@last_month_close_task_issues_count = @all_issues.where(pm_issue_type: 2).where(status_id: 5).where("updated_on > ? and updated_on < ?", time_now - 30.days, time_now).size
|
||||
@all_bug_issues_count = @all_issues.where(pm_issue_type: 3).size
|
||||
@open_bug_issues_count = @all_issues.where(pm_issue_type: 3).where.not(status_id: 5).size
|
||||
@last_week_close_bug_issues_count = @all_issues.where(pm_issue_type: 3).where(status_id: 5).where("updated_on > ? and updated_on < ?", time_now - 7.days, time_now).size
|
||||
@last_month_close_bug_issues_count = @all_issues.where(pm_issue_type: 3).where(status_id: 5).where("updated_on > ? and updated_on < ?", time_now - 30.days, time_now).size
|
||||
|
||||
@@ -59,8 +63,7 @@ class Api::Pm::DashboardsController < Api::Pm::BaseController
|
||||
end
|
||||
@close_trend = {requirement: @requirement_close_trend, task: @task_close_trend, bug: @bug_close_trend}
|
||||
|
||||
|
||||
render :json => {
|
||||
render_ok(data={
|
||||
last_week_close_issues_count: @last_week_close_issues_count,
|
||||
before_last_week_close_issue_count: @before_last_week_close_issue_count,
|
||||
compare_last_week_close_issues: @compare_last_week_close_issues,
|
||||
@@ -68,16 +71,19 @@ class Api::Pm::DashboardsController < Api::Pm::BaseController
|
||||
before_last_week_create_issue_count: @before_last_week_create_issue_count,
|
||||
compare_last_week_create_issues: @compare_last_week_create_issues,
|
||||
all_requirement_issues_count: @all_requirement_issues_count,
|
||||
open_requirement_issues_count: @open_requirement_issues_count,
|
||||
last_week_close_requirement_issues_count: @last_week_close_requirement_issues_count,
|
||||
last_month_close_requirement_issues_count: @last_month_close_requirement_issues_count,
|
||||
all_task_issues_count: @all_task_issues_count,
|
||||
open_task_issues_count: @open_task_issues_count,
|
||||
last_week_close_tast_issues_count: @last_week_close_tast_issues_count,
|
||||
last_month_close_task_issues_count: @last_month_close_task_issues_count,
|
||||
all_bug_issues_count: @all_bug_issues_count,
|
||||
open_bug_issues_count: @open_bug_issues_count,
|
||||
last_week_close_bug_issues_count: @last_week_close_bug_issues_count,
|
||||
last_month_close_bug_issues_count: @last_month_close_bug_issues_count,
|
||||
close_trend: @close_trend
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
def my_projects
|
||||
@@ -98,7 +104,7 @@ class Api::Pm::DashboardsController < Api::Pm::BaseController
|
||||
@last_week_commits_count = @project.commit_logs.where("created_at > ? and created_at < ?", time_now - 7.days, time_now).size
|
||||
@last_month_commits_count = @project.commit_logs.where("created_at > ? and created_at < ?", time_now - 30.days, time_now).size
|
||||
|
||||
render :json => {
|
||||
render_ok(data={
|
||||
branch_count: branch_tag_result["branch_count"].to_i,
|
||||
tag_count: branch_tag_result["tag_count"].to_i,
|
||||
license_name: @project.license&.name,
|
||||
@@ -109,7 +115,14 @@ class Api::Pm::DashboardsController < Api::Pm::BaseController
|
||||
last_week_commits_count: @last_week_commits_count,
|
||||
last_month_commits_count: @last_month_commits_count,
|
||||
language: hash_transform_precentagable(languages_result),
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
def my_operate_journals
|
||||
return render_error('请输入正确的pm_project_id.') if params[:pm_project_id].blank?
|
||||
@journals = Journal.operate_journals.joins(:issue).where(issues: {pm_project_id: params[:pm_project_id], pm_issue_type: [1,2,3]})
|
||||
|
||||
@journals = kaminari_paginate(@journals.order(updated_on: :desc))
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -56,6 +56,8 @@ class Api::Pm::ProjectsController < Api::Pm::BaseController
|
||||
def statistics
|
||||
return tip_exception '参数错误' if params[:pm_project_id].blank?
|
||||
@issues = Issue.where(pm_project_id: params[:pm_project_id], pm_issue_type:[1, 2, 3])
|
||||
@last_week_close_issues = @issues.where(status_id: 5).where("updated_on > ? and updated_on < ?", Time.now - 7.days, Time.now)
|
||||
last_week_close_type_count_data = @last_week_close_issues.group(:pm_issue_type).count
|
||||
type_count_data = @issues.group(:pm_issue_type).count
|
||||
type_status = @issues.group(:pm_issue_type,:status_id).count
|
||||
type_status_data = {}
|
||||
@@ -81,17 +83,24 @@ class Api::Pm::ProjectsController < Api::Pm::BaseController
|
||||
type_count_data[e] = 0
|
||||
}
|
||||
end
|
||||
if last_week_close_type_count_data.keys.size < 3
|
||||
nedd_add = [1,2,3] - last_week_close_type_count_data.keys
|
||||
nedd_add.map{ |e|
|
||||
last_week_close_type_count_data[e] = 0
|
||||
}
|
||||
end
|
||||
data = {
|
||||
pie_chart: type_count_data,
|
||||
bar_chart: type_status_data,
|
||||
open_data: open_data
|
||||
open_data: open_data,
|
||||
last_week_close_data: last_week_close_type_count_data,
|
||||
}
|
||||
render_ok(data: data)
|
||||
end
|
||||
|
||||
def polyline
|
||||
return tip_exception '参数错误' if params[:pm_project_id].blank?
|
||||
time_line = (Time.current.beginning_of_day - 6.day) .. Time.current
|
||||
time_line = (Time.current.beginning_of_day - 29.day) .. Time.current
|
||||
@create_issues = Issue.where(pm_project_id: params[:pm_project_id],created_on: time_line)
|
||||
@due_issues = Issue.where(pm_project_id: params[:pm_project_id],status_id:[3,5],due_date: time_line)
|
||||
@create_issues_count = @create_issues.group(:pm_issue_type,"DATE(created_on)").count
|
||||
@@ -100,7 +109,7 @@ class Api::Pm::ProjectsController < Api::Pm::BaseController
|
||||
create_issues: {},
|
||||
due_issues: {}
|
||||
}
|
||||
7.times do |time|
|
||||
30.times do |time|
|
||||
current_time = Date.current - time.day
|
||||
if @create_issues_count.present?
|
||||
data[:create_issues][current_time] = {
|
||||
|
||||
Reference in New Issue
Block a user