import { Controller, Get, Query, UseGuards } from '@nestjs/common'; import { ApiOperation, ApiQuery, ApiResponse, ApiTags } from '@nestjs/swagger'; import { ActivityLogsService } from './activity-logs.service'; import { JwtAuthGuard } from '../common/guards/jwt-auth.guard'; import { CurrentUser } from '../common/decorators/current-user.decorator'; import { AccessTokenPayload } from '../users/services/apple-auth.service'; import { GetActivityLogsQueryDto, GetActivityLogsResponseDto } from './dto/activity-log.dto'; @ApiTags('activity-logs') @Controller('activity-logs') @UseGuards(JwtAuthGuard) export class ActivityLogsController { constructor(private readonly service: ActivityLogsService) { } @Get() @ApiOperation({ summary: '获取活动记录列表(分页)' }) @ApiQuery({ name: 'page', required: false }) @ApiQuery({ name: 'pageSize', required: false }) @ApiResponse({ type: GetActivityLogsResponseDto }) async list(@CurrentUser() user: AccessTokenPayload, @Query() query: GetActivityLogsQueryDto): Promise { const data = await this.service.list({ userId: user.sub, page: query.page, pageSize: query.pageSize, entityType: query.entityType, action: query.action, entityId: query.entityId, }); return data; } }