class Api::Pm::ProjectsController < Api::Pm::BaseController before_action :require_login, except: [:convert] before_action :load_project, only: [:convert] def convert data = { owner: @project.owner.try(:login), identifier: @project.identifier } render_ok(data: data) end def issues_count return tip_exception '参数错误' unless params[:pm_project_id].present? @issues = Issue.where(pm_project_id_params) data = {} @issues_count = @issues.group(:pm_project_id).count # requirement 1 task 2 bug 3 @issues_type_count = @issues.group(:pm_project_id, :pm_issue_type).count pm_project_id_params[:pm_project_id].map(&:to_i).map do |project_id| data[project_id] = { total: @issues_count[project_id] || 0, requirement: @issues_type_count[[project_id, 1]] || 0, task: @issues_type_count[[project_id, 2]] || 0, bug: @issues_type_count[[project_id, 3]] || 0 } end render_ok(data: data) end def bind_project return render_forbidden('您没有操作权限!') unless @project.member?(current_user) || current_user.admin? Issue.where(pm_project_id: params[:pm_project_id], user_id: current_user).update_all(project_id: params[:project_id]) end private def load_project @project = Project.joins(:owner).find params[:project_id] end def pm_project_id_params params.permit( pm_project_id: [] ) end end