UNPKG

create-chuntianxiaozhu

Version:

春天小猪模板工具

52 lines (46 loc) 1.64 kB
import { BadRequestException, Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { EntityManager, FindOptionsWhere, Repository } from 'typeorm'; import { Tickets } from './entity/tickets.entity'; import { AppUser } from './entity/user.entity'; @Injectable() export class TicketsService { constructor( @InjectRepository(Tickets) private ticketsRepository: Repository<Tickets>, private entityManage: EntityManager, ) {} save(data: Partial<Tickets>) { return this.ticketsRepository.save(new Tickets(data)); } findOne(data: FindOptionsWhere<Tickets>[] | FindOptionsWhere<Tickets>) { return this.ticketsRepository.findOne({ where: data, }); } update(id: number, data: Partial<Tickets>) { return this.ticketsRepository.update(id, new Tickets(data)); } recharge(uid: number, password: string) { return this.entityManage.transaction(async (manager) => { const ticket = await manager.findOne(Tickets, { where: { password } }); if (!ticket) { throw new BadRequestException('卡密不存在,请确认后再兑换'); } if (ticket.isOff == 1) { throw new BadRequestException('卡密已被兑换,请确认'); } const user = await manager.findOne(AppUser, { where: { id: uid } }); if (!user) { throw new BadRequestException('用户不存在'); } await manager.update( AppUser, uid, new AppUser({ wallet: user.wallet + ticket.amount, }), ); await manager.update(Tickets, ticket.id, new Tickets({ isOff: 1 })); }); } }