update application_service

This commit is contained in:
zhangxunhui 2023-01-30 20:21:36 +08:00
parent 31a3e6ccea
commit 3f618b3a09
1 changed files with 115 additions and 115 deletions

View File

@ -1,115 +1,115 @@
class ApplicationService class ApplicationService
include Callable include Callable
Error = Class.new(StandardError) Error = Class.new(StandardError)
def regix_emoji content def regix_emoji content
" " if content.blank? " " if content.blank?
regex = /[^a-zA-Z0-9\u4E00-\u9FFF]/ regex = /[^a-zA-Z0-9\u4E00-\u9FFF]/
content.gsub(regex, '') content.gsub(regex, '')
end end
private private
def strip(str) def strip(str)
str.to_s.strip.presence str.to_s.strip.presence
end end
def str_to_boolean str def str_to_boolean str
ActiveModel::Type::Boolean.new.cast str ActiveModel::Type::Boolean.new.cast str
end end
# author: zxh # author: zxh
# blockchain创建项目相关api # blockchain创建项目相关api
def invoke_blockchain_api(uri, params) def invoke_blockchain_api(uri, params)
begin begin
uri = URI.parse(URI.encode(uri.strip)) uri = URI.parse(URI.encode(uri.strip))
res = Net::HTTP.start(uri.host, uri.port) do |http| res = Net::HTTP.start(uri.host, uri.port) do |http|
req = Net::HTTP::Post.new(uri) req = Net::HTTP::Post.new(uri)
req['Content-Type'] = 'application/json' req['Content-Type'] = 'application/json'
req.body = params req.body = params
http.request(req) http.request(req)
end end
if res.code.to_i != 200 if res.code.to_i != 200
puts '区块链接口请求失败.' puts '区块链接口请求失败.'
return false return false
else else
res_body = JSON.parse(res.body) res_body = JSON.parse(res.body)
if res_body.has_key?("status") && res_body["status"] == 0 if res_body.has_key?("status") && res_body["status"] == 0
else else
puts '区块链接口请求出错.' puts '区块链接口请求出错.'
return false return false
end end
end end
return true return true
rescue Exception => e rescue Exception => e
puts '区块链接口请求失败.' puts '区块链接口请求失败.'
return false return false
end end
end end
# params: params from index.js page # params: params from index.js page
def create_repo_on_blockchain(params, project) def create_repo_on_blockchain(params, project)
username = params['user_id'].to_s username = params['user_id'].to_s
token_name = project.id.to_s token_name = project.id.to_s
total_supply = params['blockchain_token_all'].to_i total_supply = params['blockchain_token_all'].to_i
token_balance = [[username, (total_supply * params['blockchain_init_token'].to_i / 100).to_i]] token_balance = [[username, (total_supply * params['blockchain_init_token'].to_i / 100).to_i]]
param = { param = {
"request-type": "create repo", "request-type": "create repo",
"username": username, "username": username,
"token_name": token_name, "token_name": token_name,
"total_supply": total_supply, "total_supply": total_supply,
"token_balance": token_balance "token_balance": token_balance
}.to_json }.to_json
invoke_blockchain_api(Blockchain.blockchain_config[:api_url], param) invoke_blockchain_api(Blockchain.blockchain_config[:api_url], param)
end end
def transfer_balance_on_blockchain(payer, payee, token_name, amount) def transfer_balance_on_blockchain(payer, payee, token_name, amount)
param = { param = {
"request-type": "transfer amount", "request-type": "transfer amount",
"payer": payer, "payer": payer,
"payee": payee, "payee": payee,
"token_name": token_name, "token_name": token_name,
"amount": amount "amount": amount
}.to_json }.to_json
results = invoke_blockchain_api(Blockchain.blockchain_config[:api_url], param) results = invoke_blockchain_api(Blockchain.blockchain_config[:api_url], param)
return results return results
end end
def lock_balance_on_blockchain(username, tokenname, amount) def lock_balance_on_blockchain(username, tokenname, amount)
param = { param = {
"request-type": "lock user balance", "request-type": "lock user balance",
"username": username, "username": username,
"token_name": tokenname, "token_name": tokenname,
"amount": amount "amount": amount
}.to_json }.to_json
results = invoke_blockchain_api(Blockchain.blockchain_config[:api_url], param) results = invoke_blockchain_api(Blockchain.blockchain_config[:api_url], param)
return results return results
end end
def unlock_balance_on_blockchain(username, tokenname, amount) def unlock_balance_on_blockchain(username, tokenname, amount)
param = { param = {
"request-type": "unlock user balance", "request-type": "unlock user balance",
"username": username, "username": username,
"token_name": tokenname, "token_name": tokenname,
"amount": amount "amount": amount
}.to_json }.to_json
results = invoke_blockchain_api(Blockchain.blockchain_config[:api_url], param) results = invoke_blockchain_api(Blockchain.blockchain_config[:api_url], param)
return results return results
end end
def phone_mail_type value def phone_mail_type value
value =~ /^1\d{10}$/ ? 1 : 0 value =~ /^1\d{10}$/ ? 1 : 0
end end
end end