wuyi 1 gadu atpakaļ
vecāks
revīzija
39fd950a73

+ 24 - 11
src/balance/balance.service.ts

@@ -1,5 +1,5 @@
 import { Injectable, Logger } from '@nestjs/common'
-import { Repository } from 'typeorm'
+import { In, Repository } from 'typeorm'
 import { Balance } from './entities/balance.entities'
 import { InjectRepository } from '@nestjs/typeorm'
 import { BalanceRecord, BalanceType } from './entities/balance-record.entities'
@@ -7,7 +7,7 @@ import { UsersService } from '../users/users.service'
 import { Users } from '../users/entities/users.entity'
 import { PageRequest } from '../common/dto/page-request'
 import { paginate, Pagination } from 'nestjs-typeorm-paginate'
-import Decimal from 'decimal.js';
+import Decimal from 'decimal.js'
 
 @Injectable()
 export class BalanceService {
@@ -52,11 +52,11 @@ export class BalanceService {
                 balance.totalBalance = 0.00
             }
 
-            const currentBalanceDecimal = new Decimal(String(balance.currentBalance));
-            const amountDecimal = new Decimal(amount);
-            const totalBalanceDecimal = new Decimal(String(balance.totalBalance));
-            const newBalanceDecimal = currentBalanceDecimal.plus(amountDecimal);
-            const newTotalBalanceDecimal = totalBalanceDecimal.plus(amountDecimal);
+            const currentBalanceDecimal = new Decimal(String(balance.currentBalance))
+            const amountDecimal = new Decimal(amount)
+            const totalBalanceDecimal = new Decimal(String(balance.totalBalance))
+            const newBalanceDecimal = currentBalanceDecimal.plus(amountDecimal)
+            const newTotalBalanceDecimal = totalBalanceDecimal.plus(amountDecimal)
 
             balance.currentBalance = newBalanceDecimal.toNumber()
             balance.totalBalance = newTotalBalanceDecimal.toNumber()
@@ -92,9 +92,9 @@ export class BalanceService {
                 }
             })
 
-            const currentBalanceDecimal = new Decimal(String(balance.currentBalance));
-            const costDecimal = new Decimal(cost);
-            const newBalanceDecimal = currentBalanceDecimal.minus(costDecimal);
+            const currentBalanceDecimal = new Decimal(String(balance.currentBalance))
+            const costDecimal = new Decimal(cost)
+            const newBalanceDecimal = currentBalanceDecimal.minus(costDecimal)
 
             balance.currentBalance = newBalanceDecimal.toNumber()
 
@@ -131,7 +131,20 @@ export class BalanceService {
     }
 
     async findAllRecordsPage(req: PageRequest<BalanceRecord>): Promise<Pagination<BalanceRecord>> {
-        return await paginate<BalanceRecord>(this.recordRepository, req.page, req.search)
+        const page = await paginate<BalanceRecord>(this.recordRepository, req.page, req.search)
+        let items = page.items
+        const userIds = items.map(item => item.userId)
+        const users = await this.userRepository.findBy({
+            id: In(userIds)
+        })
+        for (let i = 0; i < items.length; i++) {
+            const item = items[i]
+            const user = users.find(user => user.id === item.userId)
+            if (user) {
+                item.userName = user.username
+            }
+        }
+        return page
     }
 
     async updateRate(userId: number, rate: number): Promise<string> {

+ 4 - 0
src/balance/entities/balance-record.entities.ts

@@ -1,5 +1,6 @@
 import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn } from 'typeorm'
 import { number } from 'yup'
+import { Exclude } from 'class-transformer'
 
 export enum BalanceType {
     RECHARGE = 'recharge',
@@ -33,4 +34,7 @@ export class BalanceRecord {
     @CreateDateColumn()
     createdAt: Date
 
+    @Exclude()
+    userName: string
+
 }