From 841126c0fc238d0becf4dd2f1eb73b6a164c0488 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 10 Mar 2023 09:22:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9Atoken=E8=BD=AC?= =?UTF-8?q?=E8=B4=A6=E5=88=97=E8=A1=A8=E6=96=B0=E5=A2=9E=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 2 +- app/queries/application_query.rb | 10 ++++++---- app/queries/blockchain/balance_query.rb | 4 ++-- app/queries/projects/list_my_query.rb | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 1b51e3b12..35f44b4e2 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -416,7 +416,7 @@ class UsersController < ApplicationController is_current_admin_user = true results = Blockchain::BalanceQuery.call(params, is_current_admin_user) if results[:status] == 0 - @total_count = results[:projects].size + @total_count = results[:total_count] @projects = results[:projects] else @total_count = -1 diff --git a/app/queries/application_query.rb b/app/queries/application_query.rb index fdef1b71d..e2d7c446f 100644 --- a/app/queries/application_query.rb +++ b/app/queries/application_query.rb @@ -8,17 +8,19 @@ class ApplicationQuery end # find all the repos that a user has tokens - def find_repo_with_token(user_id) + def find_repo_with_token(user_id, page=1, limit=10) params = { - "request-type": "query user balance of all repos", - "username": user_id.to_s + "request-type": "query user balance of all repos by page", + "username": user_id.to_s, + "page": page.to_i, + "page_num": limit.to_i }.to_json resp_body = Blockchain::InvokeBlockchainApi.call(params) if resp_body['status'] != 0 raise "区块链接口请求失败." else token_list = resp_body['UserBalanceList'].nil? ? [] : resp_body['UserBalanceList'] - return token_list + return token_list, resp_body['total_count'] end end diff --git a/app/queries/blockchain/balance_query.rb b/app/queries/blockchain/balance_query.rb index a1bb76eea..52a2fa525 100644 --- a/app/queries/blockchain/balance_query.rb +++ b/app/queries/blockchain/balance_query.rb @@ -9,7 +9,7 @@ class Blockchain::BalanceQuery < ApplicationQuery def call if is_current_admin_user - token_list = find_repo_with_token(params["user_id"]) + token_list, total_count = find_repo_with_token(params["user_id"], (params["page"]), (params["limit"])) result_list = [] token_list.each do |t| project = Project.find_by(id: t['token_name'].to_i) @@ -23,7 +23,7 @@ class Blockchain::BalanceQuery < ApplicationQuery result_list << {project: project, balance: balance} end end - results = {"status": 0, "projects": result_list} + results = {"status": 0, "projects": result_list, "total_count": total_count} else results = {"status": 1} # query failed end diff --git a/app/queries/projects/list_my_query.rb b/app/queries/projects/list_my_query.rb index 734956b98..31c17846a 100644 --- a/app/queries/projects/list_my_query.rb +++ b/app/queries/projects/list_my_query.rb @@ -39,7 +39,7 @@ class Projects::ListMyQuery < ApplicationQuery # elsif params[:category].to_s == "private" # projects = projects.is_private.joins(:members).where(members: { user_id: user.id }) elsif params[:category].to_s == "blockchain_token" # 所有钱包中有token的项目有哪些 - token_list = find_repo_with_token(user.id) + token_list, total_count = find_repo_with_token(user.id) project_names = token_list.map { |x| x['token_name'] } projects = projects.where(name: project_names) tokens = token_list.map { |x| x['balance'] }