gm issue
This commit is contained in:
parent
770f743750
commit
36a659678d
|
@ -0,0 +1,79 @@
|
||||||
|
class Api::Pm::IssuesController < ApplicationController
|
||||||
|
before_action :require_login, except: [:index]
|
||||||
|
before_action :load_issue, only: [:show, :children, :update, :destroy]
|
||||||
|
def index
|
||||||
|
@project = Project.find_by_id(params[:project_id]) || Project.new(id: 0, user_id: 0, name: 'pm_mm', identifier: 'pm_mm')
|
||||||
|
@object_result = Api::V1::Issues::ListService.call(@project, query_params, current_user)
|
||||||
|
@total_issues_count = @object_result[:total_issues_count]
|
||||||
|
@opened_issues_count = @object_result[:opened_issues_count]
|
||||||
|
@closed_issues_count = @object_result[:closed_issues_count]
|
||||||
|
if params[:only_name].present?
|
||||||
|
@issues = kaminary_select_paginate(
|
||||||
|
@object_result[:data].select(:id, :subject, :project_issues_index, :updated_on, :created_on))
|
||||||
|
else
|
||||||
|
@issues = kaminari_paginate(@object_result[:data])
|
||||||
|
end
|
||||||
|
render "api/v1/issues/index"
|
||||||
|
end
|
||||||
|
|
||||||
|
def show
|
||||||
|
@issue.associate_attachment_container
|
||||||
|
render "api/v1/issues/show"
|
||||||
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
project = Project.find_by_id(params[:project_id]) || Project.new(id: 0, user_id: 0, name: 'pm_mm', identifier: 'pm_mm')
|
||||||
|
@object_result = Api::V1::Issues::CreateService.call(project, issue_params, current_user)
|
||||||
|
render "api/v1/issues/create"
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
@object_result = Api::V1::Issues::UpdateService.call(@project, @issue, issue_params, current_user)
|
||||||
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
@object_result = Api::V1::Issues::DeleteService.call(@project, @issue, current_user)
|
||||||
|
if @object_result
|
||||||
|
render_ok
|
||||||
|
else
|
||||||
|
render_error('删除疑修失败!')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
private
|
||||||
|
def load_issue
|
||||||
|
@project = Project.new(id: params[:project_id], user_id: 0, name: 'pm_mm', identifier: 'pm_mm')
|
||||||
|
@issue = @project.issues.issue_issue.where(pm_project_id: params[:pm_project_id], pm_sprint_id:params[:pm_sprint_id]).find_by_id(params[:id])
|
||||||
|
if @issue.blank?
|
||||||
|
render_not_found("疑修不存在!")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def query_params
|
||||||
|
params.permit(
|
||||||
|
:only_name,
|
||||||
|
:category,
|
||||||
|
:participant_category,
|
||||||
|
:keyword, :author_id,
|
||||||
|
:milestone_id, :assigner_id,
|
||||||
|
:status_id,
|
||||||
|
:begin_date, :end_date,
|
||||||
|
:sort_by, :sort_direction,:parent_id,
|
||||||
|
:issue_tag_ids, :pm_project_id, :pm_sprint_id, :pm_issue_type
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def issue_params
|
||||||
|
params.permit(
|
||||||
|
:status_id, :priority_id, :milestone_id,
|
||||||
|
:branch_name, :start_date, :due_date,
|
||||||
|
:subject, :description, :blockchain_token_num,
|
||||||
|
:pm_project_id, :pm_sprint_id, :pm_issue_type, :parent_id,
|
||||||
|
issue_tag_ids: [],
|
||||||
|
assigner_ids: [],
|
||||||
|
attachment_ids: [],
|
||||||
|
receivers_login: []
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
|
@ -47,6 +47,7 @@ module Api::V1::Issues::Concerns::Checkable
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_blockchain_token_num(user_id, project_id, blockchain_token_num, now_blockchain_token_num=0)
|
def check_blockchain_token_num(user_id, project_id, blockchain_token_num, now_blockchain_token_num=0)
|
||||||
|
return if project_id.zero?
|
||||||
left_blockchain_token_num = Blockchain::BalanceQueryOneProject.call({"user_id": user_id, "project_id": project_id}) rescue 0
|
left_blockchain_token_num = Blockchain::BalanceQueryOneProject.call({"user_id": user_id, "project_id": project_id}) rescue 0
|
||||||
raise ApplicationService::Error, "用户Token不足。" if blockchain_token_num.to_i > (left_blockchain_token_num+now_blockchain_token_num).to_i
|
raise ApplicationService::Error, "用户Token不足。" if blockchain_token_num.to_i > (left_blockchain_token_num+now_blockchain_token_num).to_i
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,6 +32,7 @@ class Api::V1::Issues::CreateService < ApplicationService
|
||||||
@pm_project_id = params[:pm_project_id]
|
@pm_project_id = params[:pm_project_id]
|
||||||
@pm_sprint_id = params[:pm_sprint_id]
|
@pm_sprint_id = params[:pm_sprint_id]
|
||||||
@pm_issue_type = params[:pm_issue_type]
|
@pm_issue_type = params[:pm_issue_type]
|
||||||
|
@parent_id = params[:parent_id]
|
||||||
end
|
end
|
||||||
|
|
||||||
def call
|
def call
|
||||||
|
@ -62,6 +63,7 @@ class Api::V1::Issues::CreateService < ApplicationService
|
||||||
@created_issue.pm_project_id = @pm_project_id
|
@created_issue.pm_project_id = @pm_project_id
|
||||||
@created_issue.pm_sprint_id = @pm_sprint_id
|
@created_issue.pm_sprint_id = @pm_sprint_id
|
||||||
@created_issue.pm_issue_type = @pm_issue_type
|
@created_issue.pm_issue_type = @pm_issue_type
|
||||||
|
@created_issue.parent_id = @parent_id
|
||||||
@created_issue.issue_tags_value = @issue_tags.order("id asc").pluck(:id).join(",") unless issue_tag_ids.blank?
|
@created_issue.issue_tags_value = @issue_tags.order("id asc").pluck(:id).join(",") unless issue_tag_ids.blank?
|
||||||
@created_issue.save!
|
@created_issue.save!
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
attr_reader :project, :only_name, :category, :participant_category, :keyword, :author_id, :issue_tag_ids
|
attr_reader :project, :only_name, :category, :participant_category, :keyword, :author_id, :issue_tag_ids
|
||||||
attr_reader :begin_date, :end_date
|
attr_reader :begin_date, :end_date
|
||||||
attr_reader :milestone_id, :assigner_id, :status_id, :sort_by, :sort_direction, :current_user
|
attr_reader :milestone_id, :assigner_id, :status_id, :sort_by, :sort_direction, :current_user
|
||||||
attr_reader :pm_project_id, :pm_sprint_id
|
attr_reader :pm_project_id, :pm_sprint_id, :parent_id, :pm_issue_type
|
||||||
attr_accessor :queried_issues, :total_issues_count, :closed_issues_count, :opened_issues_count
|
attr_accessor :queried_issues, :total_issues_count, :closed_issues_count, :opened_issues_count
|
||||||
|
|
||||||
validates :category, inclusion: {in: %w(all opened closed), message: "请输入正确的Category"}
|
validates :category, inclusion: {in: %w(all opened closed), message: "请输入正确的Category"}
|
||||||
|
@ -29,6 +29,8 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
@sort_by = params[:sort_by].present? ? params[:sort_by] : 'issues.updated_on'
|
@sort_by = params[:sort_by].present? ? params[:sort_by] : 'issues.updated_on'
|
||||||
@pm_project_id = params[:pm_project_id]
|
@pm_project_id = params[:pm_project_id]
|
||||||
@pm_sprint_id = params[:pm_sprint_id]
|
@pm_sprint_id = params[:pm_sprint_id]
|
||||||
|
@parent_id = params[:parent_id]
|
||||||
|
@pm_issue_type = params[:pm_issue_type]
|
||||||
@sort_direction = (params[:sort_direction].present? ? params[:sort_direction] : 'desc').downcase
|
@sort_direction = (params[:sort_direction].present? ? params[:sort_direction] : 'desc').downcase
|
||||||
@current_user = current_user
|
@current_user = current_user
|
||||||
end
|
end
|
||||||
|
@ -68,6 +70,13 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
# milestone_id
|
# milestone_id
|
||||||
issues = issues.where(fixed_version_id: milestone_id) if milestone_id.present?
|
issues = issues.where(fixed_version_id: milestone_id) if milestone_id.present?
|
||||||
|
|
||||||
|
#pm相关
|
||||||
|
# parent_id,
|
||||||
|
issues = issues.where(parent_id: parent_id) if parent_id.present?
|
||||||
|
|
||||||
|
# pm_issue_type
|
||||||
|
issues = issues.where(pm_issue_type: pm_issue_type) if pm_issue_type.present?
|
||||||
|
|
||||||
# pm_project_id
|
# pm_project_id
|
||||||
issues = issues.where(pm_project_id: pm_project_id) if pm_project_id.present?
|
issues = issues.where(pm_project_id: pm_project_id) if pm_project_id.present?
|
||||||
|
|
||||||
|
|
|
@ -45,3 +45,7 @@ json.attachments issue.attachments.each do |attachment|
|
||||||
json.partial! "api/v1/attachments/simple_detail", locals: {attachment: attachment}
|
json.partial! "api/v1/attachments/simple_detail", locals: {attachment: attachment}
|
||||||
end
|
end
|
||||||
json.pull_fixed issue.pull_attached_issues.where(fixed: true).present?
|
json.pull_fixed issue.pull_attached_issues.where(fixed: true).present?
|
||||||
|
json.parent_id issue.parent_id
|
||||||
|
json.pm_issue_type issue.pm_issue_type
|
||||||
|
json.pm_sprint_id issue.pm_sprint_id
|
||||||
|
json.pm_project_id issue.pm_project_id
|
||||||
|
|
|
@ -7,6 +7,6 @@ json.issues @issues.each do |issue|
|
||||||
if params[:only_name].present?
|
if params[:only_name].present?
|
||||||
json.(issue, :id, :subject, :project_issues_index)
|
json.(issue, :id, :subject, :project_issues_index)
|
||||||
else
|
else
|
||||||
json.partial! "simple_detail", locals: {issue: issue}
|
json.partial! "api/v1/issues/simple_detail", locals: {issue: issue}
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -1 +0,0 @@
|
||||||
json.partial! "api/v1/issues/detail", locals: {issue: @object_result}
|
|
|
@ -1,5 +1,9 @@
|
||||||
defaults format: :json do
|
defaults format: :json do
|
||||||
namespace :api do
|
namespace :api do
|
||||||
|
namespace :pm do
|
||||||
|
resources :issues
|
||||||
|
end
|
||||||
|
|
||||||
namespace :v1 do
|
namespace :v1 do
|
||||||
|
|
||||||
resources :users, only: [:index] do
|
resources :users, only: [:index] do
|
||||||
|
|
Loading…
Reference in New Issue