更改:悬赏金额变更需要同步至链上以及关联疑修新增标记是否解决

This commit is contained in:
2023-03-09 18:11:10 +08:00
parent d240797c25
commit 6c71994e33
5 changed files with 19 additions and 3 deletions

View File

@@ -46,8 +46,8 @@ module Api::V1::Issues::Concerns::Checkable
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)
def check_blockchain_token_num(user_id, project_id, blockchain_token_num, now_blockchain_token_num=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 > left_blockchain_token_num
raise ApplicationService::Error, "项目Token不足。" if blockchain_token_num.to_i > (left_blockchain_token_num+now_blockchain_token_num).to_i
end
end

View File

@@ -42,7 +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?
check_blockchain_token_num(project.user_id, project.id, blockchain_token_num, @issue.blockchain_token_num) if blockchain_token_num.present?
load_assigners(assigner_ids)
load_attachments(attachment_ids)
load_issue_tags(issue_tag_ids)
@@ -71,6 +71,7 @@ class Api::V1::Issues::UpdateService < ApplicationService
build_after_issue_journal_details if @updated_issue.previous_changes.present? # 操作记录
build_previous_issue_changes
build_cirle_blockchain_token if blockchain_token_num.present?
# @信息发送
AtmeService.call(current_user, @atme_receivers, @issue) unless receivers_login.blank?
@@ -134,6 +135,13 @@ class Api::V1::Issues::UpdateService < ApplicationService
end
end
def build_cirle_blockchain_token
if @updated_issue.previous_changes["blockchain_token_num"].present?
unlock_balance_on_blockchain(@updated_issue.project&.user_id, @updated_issue.project_id, @updated_issue.previous_changes["blockchain_token_num"][0])
lock_balance_on_blockchain(@updated_issue.project&.user_id, @updated_issue.project_id, @updated_issue.previous_changes["blockchain_token_num"][1])
end
end
def build_issue_project_trends
if @updated_issue.previous_changes["status_id"].present? && @updated_issue.previous_changes["status_id"][1] == 5
@updated_issue.project_trends.new({user_id: current_user.id, project_id: @project.id, action_type: ProjectTrend::CLOSE})