36 lines
1007 B
Ruby
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 |