From a3f0cf87e145d5b1dba8041fff9be3e79a820178 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 17 Nov 2023 16:29:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=B7=A5=E4=BD=9C=E9=A1=B9=E9=9C=80=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=AD=90=E5=B7=A5=E4=BD=9C=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/api/v1/issues/delete_service.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/services/api/v1/issues/delete_service.rb b/app/services/api/v1/issues/delete_service.rb index 7210c0eb7..7f4f5968d 100644 --- a/app/services/api/v1/issues/delete_service.rb +++ b/app/services/api/v1/issues/delete_service.rb @@ -15,7 +15,7 @@ class Api::V1::Issues::DeleteService < ApplicationService raise Error, errors.full_messages.join(", ") unless valid? try_lock("Api::V1::Issues::DeleteService:#{project.id}") # 开始写数据,加锁 - delete_be_linkable_issues + delete_zi_issues delete_issue @@ -40,10 +40,9 @@ class Api::V1::Issues::DeleteService < ApplicationService raise Error, "删除疑修失败!" unless issue.destroy! end - def delete_be_linkable_issues - pmlink_ids = PmLink.where(linkable: issue).pluck(:be_linkable_id) - linkable_issues = Issue.where(id: pmlink_ids) - raise Error, "删除疑修关联项失败!" unless linkable_issues.destroy_all + def delete_zi_issues + zi_issues = Issue.where(pm_project_id:issue.pm_project_id, root_id: issue.id) + raise Error, "删除疑修关联项失败!" unless zi_issues.destroy_all end end \ No newline at end of file From 40c5525e0a836115f20ad9733d3969d35906c8fc Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 17 Nov 2023 17:18:34 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E9=A1=B9=E5=85=B3=E8=81=94=E9=A1=B9=E7=9B=AE=E6=94=B9?= =?UTF-8?q?=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/pm/issues_controller.rb | 4 +-- .../api/v1/issues/batch_update_service.rb | 2 +- app/services/api/v1/issues/update_service.rb | 5 ++-- app/views/api/v1/issues/_detail.json.jbuilder | 9 ++++++- .../api/v1/projects/_detail.json.jbuilder | 26 +++++++++++++++++++ 5 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 app/views/api/v1/projects/_detail.json.jbuilder diff --git a/app/controllers/api/pm/issues_controller.rb b/app/controllers/api/pm/issues_controller.rb index 0af8e60cc..e562a52e8 100644 --- a/app/controllers/api/pm/issues_controller.rb +++ b/app/controllers/api/pm/issues_controller.rb @@ -155,7 +155,7 @@ class Api::Pm::IssuesController < Api::Pm::BaseController :status_id, :priority_id, :milestone_id, :branch_name, :start_date, :due_date, :time_scale, :subject, :description, :blockchain_token_num, - :pm_project_id, :pm_sprint_id, :pm_issue_type, :root_id, :link_able_id, + :pm_project_id, :pm_sprint_id, :pm_issue_type, :root_id, :link_able_id, :project_id, issue_tag_ids: [], assigner_ids: [], attachment_ids: [], @@ -165,7 +165,7 @@ class Api::Pm::IssuesController < Api::Pm::BaseController def batch_issue_params params.permit( - :status_id, :priority_id, :milestone_id, :pm_sprint_id, :pm_issue_type, :root_id, :target_pm_project_id, + :status_id, :priority_id, :milestone_id, :pm_sprint_id, :pm_issue_type, :root_id, :target_pm_project_id, :project_id, :issue_tag_ids => [], :assigner_ids => [] ) end diff --git a/app/services/api/v1/issues/batch_update_service.rb b/app/services/api/v1/issues/batch_update_service.rb index ccf783dca..e826ca190 100644 --- a/app/services/api/v1/issues/batch_update_service.rb +++ b/app/services/api/v1/issues/batch_update_service.rb @@ -4,7 +4,7 @@ class Api::V1::Issues::BatchUpdateService < ApplicationService include Api::V1::Issues::Concerns::Loadable attr_reader :project, :issues, :params, :current_user - attr_reader :status_id, :priority_id, :milestone_id + attr_reader :status_id, :priority_id, :milestone_id, :project_id attr_reader :issue_tag_ids, :assigner_ids validates :project, :issues, :current_user, presence: true diff --git a/app/services/api/v1/issues/update_service.rb b/app/services/api/v1/issues/update_service.rb index a10c89bf6..6938bc946 100644 --- a/app/services/api/v1/issues/update_service.rb +++ b/app/services/api/v1/issues/update_service.rb @@ -5,7 +5,7 @@ class Api::V1::Issues::UpdateService < ApplicationService attr_reader :project, :issue, :current_user attr_reader :status_id, :priority_id, :milestone_id, :branch_name, :start_date, :due_date, :subject, :description, :blockchain_token_num - attr_reader :issue_tag_ids, :assigner_ids, :attachment_ids, :receivers_login, :before_issue_tag_ids, :before_assigner_ids + attr_reader :issue_tag_ids, :assigner_ids, :attachment_ids, :receivers_login, :before_issue_tag_ids, :before_assigner_ids, :project_id attr_accessor :add_assigner_ids, :previous_issue_changes, :updated_issue, :atme_receivers validates :project, :issue, :current_user, presence: true @@ -35,6 +35,7 @@ class Api::V1::Issues::UpdateService < ApplicationService @pm_issue_type = params[:pm_issue_type] @root_id = params[:root_id] @time_scale = params[:time_scale] + @project_id = params[:project_id] @add_assigner_ids = [] @previous_issue_changes = {} end @@ -80,7 +81,7 @@ class Api::V1::Issues::UpdateService < ApplicationService @updated_issue.root_id = @root_id unless @root_id.nil? #不为 nil的时候更新 @updated_issue.root_id = nil if @root_id.try(:zero?) #为 0 的时候设置为 nil @updated_issue.time_scale = @time_scale unless @time_scale.nil? - + @updated_issue.project_id = @project_id unless @project_id.nil? @updated_issue.updated_on = Time.now @updated_issue.changer_id = @current_user.id @updated_issue.save! diff --git a/app/views/api/v1/issues/_detail.json.jbuilder b/app/views/api/v1/issues/_detail.json.jbuilder index b01f6058e..c22022428 100644 --- a/app/views/api/v1/issues/_detail.json.jbuilder +++ b/app/views/api/v1/issues/_detail.json.jbuilder @@ -57,4 +57,11 @@ json.pm_issue_type issue.pm_issue_type json.pm_sprint_id issue.pm_sprint_id json.pm_project_id issue.pm_project_id json.time_scale issue.time_scale -json.child_count issue.child_count \ No newline at end of file +json.child_count issue.child_count +json.project do + if issue.project.present? + json.partial! "api/v1/projects/detail", locals: {project: issue.project} + else + json.nil! + end +end \ No newline at end of file diff --git a/app/views/api/v1/projects/_detail.json.jbuilder b/app/views/api/v1/projects/_detail.json.jbuilder new file mode 100644 index 000000000..03219f822 --- /dev/null +++ b/app/views/api/v1/projects/_detail.json.jbuilder @@ -0,0 +1,26 @@ +json.(project, :id, :name, :identifier, :description, :forked_count, :praises_count, :forked_from_project_id, :is_public) +json.mirror_url project.repository&.mirror_url +json.type project.numerical_for_project_type +json.praised project.praised_by?(current_user) +json.last_update_time render_unix_time(project.updated_on) +json.time_ago time_from_now(project.updated_on) +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.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.topics project.project_topics.each do |topic| + json.(topic, :id, :name) +end +json.url project.full_url \ No newline at end of file