update select user balance by page

This commit is contained in:
zhangxunhui 2023-03-10 11:18:35 +08:00
parent 966e4c4ec0
commit e018122f7b
6 changed files with 54 additions and 39 deletions

View File

@ -8,5 +8,5 @@ var (
RepoCurBalanceDownOverFlow int64 = -1005 // 当前项目总 Token 数低于0
UserBblanceNotEnough int64 = -1006 // 用户余额不足
ContractAddress string = "0x0a68F060B46e0d8f969383D260c34105EA13a9dd"
ContractAddress string = "0x73dF07368308784063e88F2E150F932782147194"
)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -121,10 +121,19 @@ contract OpenSource {
Condition condition = user_table.newCondition();
Entries entries = user_table.select(username, condition);
if (start + page_num > entries.size()) {
page_num = entries.size() - start;
if (page_num < 0) {
page_num = 0;
}
}
string[] memory token_name_list = new string[](uint256(page_num));
uint256[] memory balance_list = new uint256[](uint256(page_num));
uint256 total_count = uint256(entries.size());
for (int256 i = int256(start); i < start + page_num; ++i) {
for (int256 i = start; i < start + page_num; i++) {
Entry entry = entries.get(i);
token_name_list[uint256(i - start)] = entry.getString("token_name");
balance_list[uint256(i - start)] = entry.getUInt("balance");

View File

@ -70,6 +70,6 @@ type FiscoBcos struct {
Payee string `json:"payee"` // 收款人
// page 相关
Page int `json:"page"` // 分页的第几页
Pagenum int `json:"page_num"` // 分页每一页的需求数量
Page int64 `json:"page"` // 分页的第几页
Pagenum int64 `json:"page_num"` // 分页每一页的需求数量
}

View File

@ -76,7 +76,7 @@ func SelectUserAllBalance(ctx *macaron.Context, username string, logger *log.Log
}
// select user all balance by page
func SelectUserAllBalanceByPage(ctx *macaron.Context, username string, page int, page_num int, logger *log.Logger) {
func SelectUserAllBalanceByPage(ctx *macaron.Context, username string, page int64, page_num int64, logger *log.Logger) {
if username == "" {
ctx.JSON(http.StatusOK, api.StringEmpty)
return
@ -104,16 +104,17 @@ func SelectUserAllBalanceByPage(ctx *macaron.Context, username string, page int,
openSourceSession := &opensource.OpenSourceSession{Contract: instance, CallOpts: *client.GetCallOpts(), TransactOpts: *client.GetTransactOpts()}
var start = 0
var start = int64(0)
if page > 0 {
start = (page - 1) * page_num
start = (page - int64(1)) * page_num
}
tokenNames, balances, total_count, err := openSourceSession.SelectUserAllBalanceByPage(username, start, page_num) // call select API
print(start)
print(page_num)
tokenNames, balances, total_count, err := openSourceSession.SelectUserAllBalanceByPage(username, big.NewInt(start), big.NewInt(page_num)) // call select API
if err != nil {
ctx.JSON(http.StatusOK, api.UnknownErr(err))
return
}
print("1111111")
var userBalancelist api.UserBalanceList
for i := 0; i < len(tokenNames); i++ {
userBalancelist = append(userBalancelist, &api.UserBalance{User: api.User{Username: username, TokenName: tokenNames[i]}, Balance: balances[i].Uint64()})