From f15e6c82609f29860ff6bb2ae270dc40b9d55002 Mon Sep 17 00:00:00 2001 From: JounQin Date: Sat, 15 Feb 2020 21:04:17 +0800 Subject: [PATCH] feat: finish user assets page --- server/controllers/user.ts | 13 +++++++- src/pages/assets.vue | 68 ++++++++++++++++++++++++++++---------- 2 files changed, 62 insertions(+), 19 deletions(-) diff --git a/server/controllers/user.ts b/server/controllers/user.ts index a952f06..044e7ff 100644 --- a/server/controllers/user.ts +++ b/server/controllers/user.ts @@ -1,5 +1,6 @@ import { Controller, RequestMapping } from '@rxts/koa-router-decorators' import { Context } from 'koa' +import { BigNumber, bignumber } from 'mathjs' import { LoginRequired } from '../decorators' import { Member, MemberWallet, Project } from '../entities' @@ -32,10 +33,20 @@ export class UserController { @RequestMapping('/assets') async assets(ctx: Context) { const userId = ctx.session.user.id - await ctx.conn.getRepository(MemberWallet).find({ + const memberWallets = await ctx.conn.getRepository(MemberWallet).find({ where: { userId, }, }) + ctx.body = memberWallets.reduce>( + (acc, { assetId, balance }) => { + if (acc[assetId] == null) { + acc[assetId] = bignumber(0) + } + acc[assetId] = acc[assetId].add(balance) + return acc + }, + {}, + ) } } diff --git a/src/pages/assets.vue b/src/pages/assets.vue index 1cec478..63dbc5a 100644 --- a/src/pages/assets.vue +++ b/src/pages/assets.vue @@ -1,8 +1,8 @@