import { Body, Controller, Post, UseGuards } from '@nestjs/common'; import { HqAuthGuard } from '../../common/guards/hq-auth.guard'; import { HqPermissionGuard, RequireHqPermissions, } from '../../common/guards/hq-permission.guard'; import { HqOperation } from '../../common/hq-operation/hq-operation.decorator'; import { HqOperationAction } from '../../common/hq-operation/hq-operation.constants'; import { AdminRedeemDebugService } from './admin-redeem-debug.service'; import { AdminRedeemDebugCreateTokenDto, AdminRedeemDebugPhoneBalanceDto, AdminRedeemDebugPhoneConfirmDto, AdminRedeemDebugPhonePrepareDto, AdminRedeemDebugPhoneStoreDto, AdminRedeemDebugStoreTokenDto, } from './dto/admin-mutate.dto'; @Controller('admin/redeem/debug') @UseGuards(HqAuthGuard, HqPermissionGuard) @RequireHqPermissions('benefit_debug') export class AdminRedeemDebugController { constructor(private readonly service: AdminRedeemDebugService) {} /** preV1 调试:为用户生成核销码 */ @Post('create-token') @HqOperation({ action: HqOperationAction.REDEEM_DEBUG_CREATE_TOKEN, refType: 'REDEEM_DEBUG', batch: true, includeBody: true, }) createToken(@Body() dto: AdminRedeemDebugCreateTokenDto) { return this.service.createToken(dto); } /** preV1 调试:门店侧预览核销 */ @Post('preview') preview(@Body() dto: AdminRedeemDebugStoreTokenDto) { return this.service.preview(dto); } /** preV1 调试:门店侧确认核销 */ @Post('confirm') @HqOperation({ action: HqOperationAction.REDEEM_DEBUG_CONFIRM, refType: 'REDEEM_DEBUG', batch: true, includeBody: true, }) confirm(@Body() dto: AdminRedeemDebugStoreTokenDto) { return this.service.confirm(dto); } @Post('phone/send-lookup-sms') sendPhoneLookupSms(@Body() dto: AdminRedeemDebugPhoneStoreDto) { return this.service.sendPhoneLookupSms(dto); } @Post('phone/balance') phoneBalance(@Body() dto: AdminRedeemDebugPhoneBalanceDto) { return this.service.phoneBalance(dto); } @Post('phone/prepare') phonePrepare(@Body() dto: AdminRedeemDebugPhonePrepareDto) { return this.service.phonePrepare(dto); } @Post('phone/confirm') @HqOperation({ action: HqOperationAction.REDEEM_DEBUG_CONFIRM, refType: 'REDEEM_DEBUG', batch: true, includeBody: true, }) phoneConfirm(@Body() dto: AdminRedeemDebugPhoneConfirmDto) { return this.service.phoneConfirm(dto); } }