Browse Source

commission

xiongzhu 3 năm trước cách đây
mục cha
commit
59ad05fc37

+ 6 - 1
src/commission/commission.controller.ts

@@ -1,4 +1,4 @@
-import { Controller, Get, Req } from '@nestjs/common'
+import { Body, Controller, Get, Post, Req } from '@nestjs/common'
 import { CommissionService } from './commission.service'
 import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'
 
@@ -12,4 +12,9 @@ export class CommissionController {
     async getCommission(@Req() req) {
         return await this.commissionService.getRecords(req.user.id)
     }
+
+    @Post('/doCommission')
+    async doCommission(@Body() { userId, amount }) {
+        return await this.commissionService.doCommission(userId, amount)
+    }
 }

+ 10 - 7
src/commission/commission.service.ts

@@ -25,6 +25,7 @@ export class CommissionService {
     }
 
     async doCommission(userId: number, amount: BigNumber) {
+        amount = new BigNumber(amount)
         const user = await this.usersRepository.findOneBy({
             id: userId
         })
@@ -43,13 +44,15 @@ export class CommissionService {
             if (config) {
                 const commission = amount.times(config.ratio)
                 await this.userBalanceService.modifyBalance(invitorId, commission, BalanceType.COMMISSION)
-                await this.commissionRecordRepository.save({
-                    userId: invitorId,
-                    amount,
-                    commission,
-                    level: configs[i].level,
-                    ratio: configs[i].ratio
-                })
+                await this.commissionRecordRepository.save(
+                    new CommissionRecord({
+                        userId: invitorId,
+                        fromUserId: userId,
+                        amount: commission,
+                        level: configs[i].level,
+                        ratio: configs[i].ratio
+                    })
+                )
             }
             if (!invitor.invitor) return
             invitorId = invitor.invitor

+ 7 - 2
src/commission/entities/commission-record.entity.ts

@@ -1,6 +1,6 @@
 import { BigNumber } from 'bignumber.js'
 import { DecimalTransformer } from '../../transformers/decimal.transformer'
-import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'
+import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn } from 'typeorm'
 
 @Entity()
 export class CommissionRecord {
@@ -22,6 +22,11 @@ export class CommissionRecord {
     @Column({ type: 'decimal', precision: 19, scale: 2, transformer: new DecimalTransformer() })
     amount: BigNumber
 
-    @Column()
+    @CreateDateColumn()
     createdAt: Date
+
+    constructor(data: Partial<CommissionRecord>) {
+        Object.assign(this, data)
+    }
+    
 }