|
|
@@ -3,7 +3,9 @@ import { InjectRepository } from '@nestjs/typeorm'
|
|
|
import { CommissionConfig } from './entities/commission-config.entity'
|
|
|
import { Repository } from 'typeorm'
|
|
|
import { CommissionRecord } from './entities/commission-record.entity'
|
|
|
-import { Users } from 'src/users/entities/users.entity'
|
|
|
+import { Users } from '../users/entities/users.entity'
|
|
|
+import { UserBalanceService } from '../user-balance/user-balance.service'
|
|
|
+import { Type as BalanceType } from 'src/user-balance/entities/balance-record.entity'
|
|
|
|
|
|
@Injectable()
|
|
|
export class CommissionService {
|
|
|
@@ -13,7 +15,8 @@ export class CommissionService {
|
|
|
@InjectRepository(CommissionRecord)
|
|
|
private readonly commissionRecordRepository: Repository<CommissionRecord>,
|
|
|
@InjectRepository(Users)
|
|
|
- private readonly usersRepository: Repository<Users>
|
|
|
+ private readonly usersRepository: Repository<Users>,
|
|
|
+ private readonly userBalanceService: UserBalanceService
|
|
|
) {}
|
|
|
|
|
|
async saveConfig(config: Partial<CommissionConfig>) {
|
|
|
@@ -38,15 +41,28 @@ export class CommissionService {
|
|
|
const config = configs.find((config) => config.level === i + 1)
|
|
|
if (config) {
|
|
|
const commission = Number((amount * config.ratio).toFixed(2))
|
|
|
+ await this.userBalanceService.modifyBalance(invitorId, commission, BalanceType.COMMISSION)
|
|
|
await this.commissionRecordRepository.save({
|
|
|
userId: invitorId,
|
|
|
amount,
|
|
|
commission,
|
|
|
- level: configs[i].level
|
|
|
+ level: configs[i].level,
|
|
|
+ ratio: configs[i].ratio
|
|
|
})
|
|
|
}
|
|
|
if (!invitor.invitor) return
|
|
|
invitorId = invitor.invitor
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ async getRecords(userId: number){
|
|
|
+ return await this.commissionRecordRepository.find({
|
|
|
+ where: {
|
|
|
+ userId
|
|
|
+ },
|
|
|
+ order: {
|
|
|
+ createdAt: 'DESC'
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|