feat:新增活动日志模块,包括控制器、服务、模型及数据传输对象,更新应用模块以引入新模块,并在打卡和训练计划模块中集成活动日志记录功能。

This commit is contained in:
richarjiang
2025-08-14 15:43:29 +08:00
parent 24924e5d81
commit bc8a52852d
15 changed files with 373 additions and 20 deletions

View File

@@ -0,0 +1,33 @@
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<GetActivityLogsResponseDto> {
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;
}
}