From 870eacacedfb4c2d95c95560dc6d3a5430158cfa Mon Sep 17 00:00:00 2001 From: xxq250 Date: Wed, 21 May 2025 09:33:00 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20issue=E5=A2=9E=E5=8A=A0=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/pm/issues_controller.rb | 9 +++++- app/models/issue.rb | 32 +++++++++++++++++++ app/services/api/pm/issues/create_service.rb | 4 ++- .../202505216348545_add_issue_enterprise.rb | 7 ++++ 4 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 db/migrate/202505216348545_add_issue_enterprise.rb diff --git a/app/controllers/api/pm/issues_controller.rb b/app/controllers/api/pm/issues_controller.rb index d8c849d53..b143405d2 100644 --- a/app/controllers/api/pm/issues_controller.rb +++ b/app/controllers/api/pm/issues_controller.rb @@ -289,6 +289,13 @@ class Api::Pm::IssuesController < Api::Pm::BaseController render_not_found('疑修不存在!') if @issue.blank? end + # def load_issue_by_index + # return render_parameter_missing if params[:pm_project_id].blank? || params[:pm_issue_type].blank? || params[:enterprise_identifier].blank? + # @issue = Issue.find_issues_by_pm(params[:enterprise_identifier], params[:pm_issue_type]) + # .find_by(pm_issue_type_index3: params[:index]) + # render_not_found('疑修不存在!') if @issue.blank? + # end + def load_issues return render_error('请输入正确的ID数组!') unless params[:ids].is_a?(Array) params[:ids].each do |id| @@ -327,7 +334,7 @@ class Api::Pm::IssuesController < Api::Pm::BaseController :branch_name, :start_date, :due_date, :time_scale, :subject, :description, :blockchain_token_num, :root_subject, :pm_project_id, :pm_sprint_id, :pm_issue_type, :root_id, :link_able_id, :project_id, - :status_msg, + :status_msg, :enterprise_identifier, issue_tag_ids: [], assigner_ids: [], attachment_ids: [], diff --git a/app/models/issue.rb b/app/models/issue.rb index c28c49bb1..e6d5a5e4d 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -298,6 +298,38 @@ class Issue < ApplicationRecord self.project.decrement!(:closed_issues_count) if self.status_id == 5 && self.project.present? end + # def self.find_issues_by_pm(enterprise_identifier, pm_issue_type) + # case pm_issue_type.to_i + # when 1 + # Issue.issue_issue.where(enterprise_identifier: enterprise_identifier) + # .where(pm_issue_type: pm_issue_type) + # .where(pm_issue_type_index1: index) + # when 2 + # Issue.issue_issue.where(enterprise_identifier: enterprise_identifier) + # .where(pm_issue_type: pm_issue_type) + # .where(pm_issue_type_index2: index) + # when 3 + # Issue.issue_issue.where(enterprise_identifier: enterprise_identifier) + # .where(pm_issue_type: pm_issue_type) + # .where(pm_issue_type_index3: index) + # end + # end + # + # def self.build_pm_index(enterprise_identifier, pm_issue_type) + # last_issue = Issue.find_issues_by_pm(enterprise_identifier, pm_issue_type).order("pm_issue_type_index#{pm_issue_type.to_i} asc").last + # deleted_issue_count = ($redis_cache.hget("pm_issue_cache_delete_count", enterprise_identifier) || 0).to_i + # + # last_issue.send("pm_issue_type_index#{pm_issue_type.to_i}").present? ? last_issue.send("pm_issue_type_index#{pm_issue_type.to_i}") + deleted_issue_count : 0 + # end + # + # def incre_pm_issue_cache_delete_count(count=1) + # $redis_cache.hincrby("pm_issue_cache_delete_count", self.enterprise_identifier, count) + # end + # + # def del_pm_issue_cache_delete_count + # $redis_cache.hdel("pm_issue_cache_delete_count", self.enterprise_identifier) + # end + def send_update_message_to_notice_system SendTemplateMessageJob.perform_later('IssueExpire', self.id) if Site.has_notice_menu? && self.due_date == Date.today + 1.days end diff --git a/app/services/api/pm/issues/create_service.rb b/app/services/api/pm/issues/create_service.rb index 5412fe17d..f527f6302 100644 --- a/app/services/api/pm/issues/create_service.rb +++ b/app/services/api/pm/issues/create_service.rb @@ -5,7 +5,7 @@ class Api::Pm::Issues::CreateService < ApplicationService attr_reader :project, :current_user attr_reader :status_id, :priority_id, :milestone_id, :branch_name, :start_date, :due_date, :subject, :description, :blockchain_token_num, :root_subject - attr_reader :issue_tag_ids, :assigner_ids, :attachment_ids, :receivers_login + attr_reader :issue_tag_ids, :assigner_ids, :attachment_ids, :receivers_login, :enterprise_identifier, :pm_issue_type attr_accessor :created_issue validates :subject, presence: true @@ -36,6 +36,7 @@ class Api::Pm::Issues::CreateService < ApplicationService @time_scale = params[:time_scale] @linkable_id = params[:link_able_id] @root_subject = params[:root_subject] + @enterprise_identifier = params[:enterprise_identifier] end def call @@ -74,6 +75,7 @@ class Api::Pm::Issues::CreateService < ApplicationService @created_issue.attachments = @attachments unless attachment_ids.blank? @created_issue.issue_tags = @issue_tags unless issue_tag_ids.blank? @created_issue.pm_project_id = @pm_project_id + @created_issue.enterprise_identifier = @enterprise_identifier @created_issue.pm_sprint_id = @pm_sprint_id @created_issue.time_scale = @time_scale @created_issue.issue_tags_value = @issue_tags.order('id asc').pluck(:id).join(',') unless issue_tag_ids.blank? diff --git a/db/migrate/202505216348545_add_issue_enterprise.rb b/db/migrate/202505216348545_add_issue_enterprise.rb new file mode 100644 index 000000000..f3de9635f --- /dev/null +++ b/db/migrate/202505216348545_add_issue_enterprise.rb @@ -0,0 +1,7 @@ +class AddIssueEnterprise < ActiveRecord::Migration[5.2] + def change + add_column :issues, :enterprise_identifier, :string + add_index :issues, :enterprise_identifier + end + +end