From c0bdb3bf0abe203bc88007cdfdd9400972cc5d09 Mon Sep 17 00:00:00 2001 From: richarjiang Date: Fri, 29 Aug 2025 10:13:26 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E9=A5=AE=E9=A3=9F?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/activity-log.model.ts | 3 ++- src/diet-records/diet-records.service.ts | 23 ++++++++++++------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/activity-logs/models/activity-log.model.ts b/src/activity-logs/models/activity-log.model.ts index d30d455..6c9adad 100644 --- a/src/activity-logs/models/activity-log.model.ts +++ b/src/activity-logs/models/activity-log.model.ts @@ -8,6 +8,7 @@ export enum ActivityEntityType { CHECKIN = 'CHECKIN', TRAINING_PLAN = 'TRAINING_PLAN', WORKOUT = 'WORKOUT', + DIET_RECORD = 'DIET_RECORD', } @@ -38,7 +39,7 @@ export class ActivityLog extends Model { declare user?: User; @Column({ - type: DataType.ENUM('USER', 'USER_PROFILE', 'USER_WEIGHT_HISTORY', 'CHECKIN', 'TRAINING_PLAN', 'WORKOUT'), + type: DataType.ENUM('USER', 'USER_PROFILE', 'USER_WEIGHT_HISTORY', 'CHECKIN', 'TRAINING_PLAN', 'WORKOUT', 'DIET_RECORD'), allowNull: false, comment: '实体类型', }) diff --git a/src/diet-records/diet-records.service.ts b/src/diet-records/diet-records.service.ts index 1d8c1c1..f718bbc 100644 --- a/src/diet-records/diet-records.service.ts +++ b/src/diet-records/diet-records.service.ts @@ -3,7 +3,7 @@ import { InjectModel } from '@nestjs/sequelize'; import { Op, Transaction } from 'sequelize'; import { Sequelize } from 'sequelize-typescript'; import { UserDietHistory } from '../users/models/user-diet-history.model'; -import { ActivityLog } from '../activity-logs/models/activity-log.model'; +import { ActivityActionType, ActivityEntityType, ActivityLog } from '../activity-logs/models/activity-log.model'; import { CreateDietRecordDto, UpdateDietRecordDto, GetDietHistoryQueryDto, DietRecordResponseDto, DietHistoryResponseDto, NutritionSummaryDto } from '../users/dto/diet-record.dto'; import { DietRecordSource } from '../users/models/user-diet-history.model'; import { ResponseCode } from '../base.dto'; @@ -26,6 +26,7 @@ export class DietRecordsService { async addDietRecord(userId: string, createDto: CreateDietRecordDto): Promise { const t = await this.sequelize.transaction(); try { + this.logger.log(`addDietRecord - userId: ${userId}, createDto: ${JSON.stringify(createDto)}`); // 创建饮食记录 const dietRecord = await this.userDietHistoryModel.create({ userId, @@ -52,8 +53,10 @@ export class DietRecordsService { // 记录活动日志 await this.activityLogModel.create({ userId, - action: 'diet_record_added', - details: { + action: ActivityActionType.CREATE, + entityType: ActivityEntityType.DIET_RECORD, + entityId: dietRecord.id.toString(), + changes: { recordId: dietRecord.id, foodName: createDto.foodName, mealType: createDto.mealType, @@ -160,11 +163,13 @@ export class DietRecordsService { // 记录活动日志 await this.activityLogModel.create({ userId, - action: 'diet_record_updated', - details: { + action: ActivityActionType.UPDATE, + entityType: ActivityEntityType.DIET_RECORD, + entityId: record.id.toString(), + changes: { recordId: record.id, foodName: record.foodName, - changes: updateDto, + updates: updateDto, }, }, { transaction: t }); @@ -199,8 +204,10 @@ export class DietRecordsService { // 记录活动日志 await this.activityLogModel.create({ userId, - action: 'diet_record_deleted', - details: { + action: ActivityActionType.DELETE, + entityType: ActivityEntityType.DIET_RECORD, + entityId: record.id.toString(), + changes: { recordId: record.id, foodName: record.foodName, mealType: record.mealType,