xiongzhu 3 lat temu
rodzic
commit
d51d71e675

+ 3 - 1
src/app.module.ts

@@ -15,6 +15,7 @@ import { ChatModule } from './chat/chat.module'
 import { MembershipModule } from './membership/membership.module'
 import { WeixinModule } from './weixin/weixin.module'
 import { NotifyModule } from './notify/notify.module';
+import { CommissionModule } from './commission/commission.module';
 
 @Module({
     imports: [
@@ -68,7 +69,8 @@ import { NotifyModule } from './notify/notify.module';
         ChatModule,
         MembershipModule,
         WeixinModule,
-        NotifyModule
+        NotifyModule,
+        CommissionModule
     ],
     controllers: [AppController],
     providers: [AppService]

+ 4 - 0
src/commission/commission.controller.ts

@@ -0,0 +1,4 @@
+import { Controller } from '@nestjs/common';
+
+@Controller('commission')
+export class CommissionController {}

+ 14 - 0
src/commission/commission.module.ts

@@ -0,0 +1,14 @@
+import { Module } from '@nestjs/common'
+import { CommissionService } from './commission.service'
+import { CommissionController } from './commission.controller'
+import { TypeOrmModule } from '@nestjs/typeorm'
+import { CommissionConfig } from './entities/commission-config.entity'
+import { CommissionRecord } from './entities/commission-record.entity'
+
+@Module({
+    imports: [TypeOrmModule.forFeature([CommissionRecord, CommissionConfig])],
+    providers: [CommissionService],
+    controllers: [CommissionController],
+    exports: [CommissionService]
+})
+export class CommissionModule {}

+ 19 - 0
src/commission/commission.service.ts

@@ -0,0 +1,19 @@
+import { Injectable } from '@nestjs/common'
+import { InjectRepository } from '@nestjs/typeorm'
+import { CommissionConfig } from './entities/commission-config.entity'
+import { Repository } from 'typeorm'
+import { CommissionRecord } from './entities/commission-record.entity'
+
+@Injectable()
+export class CommissionService {
+    constructor(
+        @InjectRepository(CommissionConfig)
+        private readonly commissionConfigRepository: Repository<CommissionConfig>,
+        @InjectRepository(CommissionRecord)
+        private readonly commissionRecordRepository: Repository<CommissionRecord>
+    ) {}
+
+    async saveConfig(config: Partial<CommissionConfig>) {
+        return await this.commissionConfigRepository.save(config)
+    }
+}

+ 12 - 0
src/commission/entities/commission-config.entity.ts

@@ -0,0 +1,12 @@
+import { Column, PrimaryGeneratedColumn } from 'typeorm'
+
+export class CommissionConfig {
+    @PrimaryGeneratedColumn()
+    id: number
+
+    @Column()
+    level: number
+
+    @Column()
+    ratio: number
+}

+ 24 - 0
src/commission/entities/commission-record.entity.ts

@@ -0,0 +1,24 @@
+import { Column, PrimaryGeneratedColumn } from 'typeorm'
+
+export class CommissionRecord {
+    @PrimaryGeneratedColumn()
+    id: number
+
+    @Column()
+    userId: number
+
+    @Column()
+    fromUserId: number
+
+    @Column()
+    level: number
+
+    @Column()
+    ratio: number
+
+    @Column()
+    amount: number
+
+    @Column()
+    createdAt: Date
+}

+ 1 - 1
src/users/users.service.ts

@@ -69,7 +69,7 @@ export class UsersService {
             user.phone = phone
             user.name = '0x' + randomstring.generate({ length: 8, charset: 'alphanumeric' })
             user.username = phone
-            user.invitor = invitor
+            user.invitor = invitor || null
         }
         user = await this.userRepository.save(user)
         if (newRegister) {