From d240797c2503bbc93d2415e590604be8fae79ece Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 9 Mar 2023 17:03:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E7=96=91=E4=BF=AE?= =?UTF-8?q?=E6=82=AC=E8=B5=8F=E9=87=91=E9=A2=9D=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/pull_requests_controller.rb | 2 +- app/services/api/v1/issues/concerns/checkable.rb | 5 +++++ app/services/api/v1/issues/create_service.rb | 1 + app/services/api/v1/issues/update_service.rb | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/controllers/pull_requests_controller.rb b/app/controllers/pull_requests_controller.rb index d095a02fa..e9db3a487 100644 --- a/app/controllers/pull_requests_controller.rb +++ b/app/controllers/pull_requests_controller.rb @@ -231,7 +231,7 @@ class PullRequestsController < ApplicationController token_num = token_num.nil? ? 0 : token_num author_id = @pull_request.user_id if token_num > 0 - Blockchain::FixIssue.call({user_id: author_id.to_s, project_id: project.id.to_s, token_num: token_num}) if Site.has_blockchain? && @project.use_blockchain + Blockchain::FixIssue.call({user_id: author_id.to_s, project_id: @project.id.to_s, token_num: token_num}) if Site.has_blockchain? && @project.use_blockchain end # update issue to state 5 issue.update(status_id: 5) diff --git a/app/services/api/v1/issues/concerns/checkable.rb b/app/services/api/v1/issues/concerns/checkable.rb index d013c3033..411b1b7ff 100644 --- a/app/services/api/v1/issues/concerns/checkable.rb +++ b/app/services/api/v1/issues/concerns/checkable.rb @@ -45,4 +45,9 @@ module Api::V1::Issues::Concerns::Checkable def check_parent_journal(parent_id) raise ApplicationService::Error, "ParentJournal不存在!" unless Journal.find_by_id(parent_id).present? end + + def check_blockchain_token_num(user_id, project_id, blockchain_token_num) + 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 > left_blockchain_token_num + end end diff --git a/app/services/api/v1/issues/create_service.rb b/app/services/api/v1/issues/create_service.rb index 4db9394f8..91007fbea 100644 --- a/app/services/api/v1/issues/create_service.rb +++ b/app/services/api/v1/issues/create_service.rb @@ -41,6 +41,7 @@ class Api::V1::Issues::CreateService < ApplicationService check_assigners(assigner_ids) unless assigner_ids.blank? check_attachments(attachment_ids) unless attachment_ids.blank? check_atme_receivers(receivers_login) unless receivers_login.blank? + check_blockchain_token_num(project.user_id, project.id, blockchain_token_num) if blockchain_token_num.present? load_assigners(assigner_ids) unless assigner_ids.blank? load_attachments(attachment_ids) unless attachment_ids.blank? load_issue_tags(issue_tag_ids) unless issue_tag_ids.blank? diff --git a/app/services/api/v1/issues/update_service.rb b/app/services/api/v1/issues/update_service.rb index ddbd67d82..3c2600bf3 100644 --- a/app/services/api/v1/issues/update_service.rb +++ b/app/services/api/v1/issues/update_service.rb @@ -42,6 +42,7 @@ class Api::V1::Issues::UpdateService < ApplicationService check_assigners(assigner_ids) unless assigner_ids.nil? check_attachments(attachment_ids) unless attachment_ids.nil? check_atme_receivers(receivers_login) unless receivers_login.nil? + check_blockchain_token_num(project.user_id, project.id, blockchain_token_num) if blockchain_token_num.present? load_assigners(assigner_ids) load_attachments(attachment_ids) load_issue_tags(issue_tag_ids)