gitlink-forgeplus/app/services/blockchain/transfer_service.rb

36 lines
1007 B
Ruby

class Blockchain::TransferService < ApplicationService
attr_reader :params
def initialize(params)
@params = params
end
def call
ActiveRecord::Base.transaction do
transfer_amount = params['transfer_amount']
if (Float(transfer_amount) rescue false) == false or transfer_amount.to_i < 0 or Float(transfer_amount) != transfer_amount.to_i
raise Error, "请输入正确的转账金额"
end
transfer_amount = params['transfer_amount'].to_i
transfer_login = params['transfer_login']
payer = params['payer_id'].to_s
payee = User.find_by(login: transfer_login)
if payee.nil?
raise Error, "未找到接收转账的用户"
else
payee = payee.id.to_s
token_name = params['project_id'].to_s
# 调用token转移函数
transfer_balance_on_blockchain(payer, payee, token_name, transfer_amount)
end
end
end
private
def no_use
puts "this function does not have any usage"
end
end