|
- 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
|