|
|
@@ -4,6 +4,7 @@ import { Balance } from './entities/balance.entities'
|
|
|
import { InjectRepository } from '@nestjs/typeorm'
|
|
|
import { BalanceRecord, BalanceType } from './entities/balance-record.entities'
|
|
|
import { UsersService } from '../users/users.service'
|
|
|
+import { Users } from '../users/entities/users.entity'
|
|
|
|
|
|
@Injectable()
|
|
|
export class BalanceService {
|
|
|
@@ -13,6 +14,8 @@ export class BalanceService {
|
|
|
private balanceRepository: Repository<Balance>,
|
|
|
@InjectRepository(BalanceRecord)
|
|
|
private recordRepository: Repository<BalanceRecord>,
|
|
|
+ @InjectRepository(Users)
|
|
|
+ private userRepository: Repository<Users>,
|
|
|
private readonly usersService: UsersService
|
|
|
) {
|
|
|
}
|
|
|
@@ -32,18 +35,25 @@ export class BalanceService {
|
|
|
async rechargeBalance(userId: number, amount: number): Promise<string> {
|
|
|
try {
|
|
|
// 获取余额
|
|
|
- const balance = await this.balanceRepository.findOne({
|
|
|
+ let balance = await this.balanceRepository.findOne({
|
|
|
where: {
|
|
|
userId: userId
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+ // 如果余额不存在
|
|
|
+ if (!balance) {
|
|
|
+ balance = new Balance()
|
|
|
+ balance.userId = userId
|
|
|
+ balance.currentBalance = 0.00
|
|
|
+ balance.totalBalance = 0.00
|
|
|
+ }
|
|
|
+
|
|
|
const currentBalanceNum = parseFloat(String(balance.currentBalance))
|
|
|
|
|
|
balance.currentBalance = currentBalanceNum + amount
|
|
|
balance.totalBalance = parseFloat(String(balance.totalBalance)) + amount
|
|
|
|
|
|
- console.log('balance:', balance)
|
|
|
await this.balanceRepository.save(balance)
|
|
|
|
|
|
// 充值记录
|
|
|
@@ -54,6 +64,10 @@ export class BalanceService {
|
|
|
record.type = BalanceType.RECHARGE
|
|
|
await this.recordRepository.save(record)
|
|
|
|
|
|
+ const users = await this.usersService.findById(userId)
|
|
|
+ users.balance = balance.currentBalance
|
|
|
+ await this.userRepository.save(users)
|
|
|
+
|
|
|
return 'recharge success!'
|
|
|
} catch (e) {
|
|
|
Logger.error('Error recharge ', e, 'RcsService')
|
|
|
@@ -61,6 +75,10 @@ export class BalanceService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ async findAllRecords(): Promise<BalanceRecord[]> {
|
|
|
+ return await this.recordRepository.find()
|
|
|
+ }
|
|
|
+
|
|
|
async findRecordsByUserId(userId: number): Promise<BalanceRecord[]> {
|
|
|
return await this.recordRepository.find({
|
|
|
where: {
|
|
|
@@ -71,15 +89,25 @@ export class BalanceService {
|
|
|
|
|
|
async updateRate(userId: number, rate: number): Promise<string> {
|
|
|
try {
|
|
|
- const balance = await this.balanceRepository.findOne({
|
|
|
+ let balance = await this.balanceRepository.findOne({
|
|
|
where: {
|
|
|
userId: userId
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+ // 如果余额不存在
|
|
|
+ if (!balance) {
|
|
|
+ balance = new Balance()
|
|
|
+ balance.userId = userId
|
|
|
+ }
|
|
|
+
|
|
|
balance.rate = rate
|
|
|
await this.balanceRepository.save(balance)
|
|
|
|
|
|
+ const users = await this.usersService.findById(userId)
|
|
|
+ users.rate = rate
|
|
|
+ await this.userRepository.save(users)
|
|
|
+
|
|
|
return 'update rate success!'
|
|
|
} catch (e) {
|
|
|
Logger.error('Error rate ', e, 'RcsService')
|