feat: 生成活动接口

This commit is contained in:
richarjiang
2025-08-21 14:28:15 +08:00
parent 94e1b124df
commit 73f53ac5e4
8 changed files with 413 additions and 2 deletions

View File

@@ -33,6 +33,8 @@ import { BlockedTransaction, BlockReason } from './models/blocked-transaction.mo
import { UserWeightHistory, WeightUpdateSource } from './models/user-weight-history.model';
import { UserDietHistory, DietRecordSource, MealType } from './models/user-diet-history.model';
import { ActivityLogsService } from '../activity-logs/activity-logs.service';
import { UserActivityService } from './services/user-activity.service';
import { GetUserActivityHistoryResponseDto } from './dto/user-activity.dto';
import { ActivityActionType, ActivityEntityType } from '../activity-logs/models/activity-log.model';
import { CreateDietRecordDto, UpdateDietRecordDto, GetDietHistoryQueryDto, DietRecordResponseDto, DietHistoryResponseDto, NutritionSummaryDto } from './dto/diet-record.dto';
@@ -64,6 +66,7 @@ export class UsersService {
@InjectConnection()
private sequelize: Sequelize,
private readonly activityLogsService: ActivityLogsService,
private readonly userActivityService: UserActivityService,
) { }
async getProfile(user: AccessTokenPayload): Promise<UserResponseDto> {
@@ -94,6 +97,9 @@ export class UsersService {
where: { userId: existingUser.id },
defaults: { userId: existingUser.id },
});
// 检查并记录今日登录活跃
await this.userActivityService.checkAndRecordTodayLogin(existingUser.id);
const returnData = {
...existingUser.toJSON(),
maxUsageCount: DEFAULT_FREE_USAGE_COUNT,
@@ -2334,4 +2340,26 @@ export class UsersService {
this.logger.error(`关联 RevenueCat 用户失败: ${error instanceof Error ? error.message : '未知错误'}`);
}
}
/**
* 获取用户最近六个月的活跃情况
*/
async getUserActivityHistory(userId: string): Promise<GetUserActivityHistoryResponseDto> {
try {
const activityHistory = await this.userActivityService.getUserActivityHistory(userId);
return {
code: ResponseCode.SUCCESS,
message: 'success',
data: activityHistory,
};
} catch (error) {
this.logger.error(`获取用户活跃历史失败: ${error instanceof Error ? error.message : '未知错误'}`);
return {
code: ResponseCode.ERROR,
message: `获取用户活跃历史失败: ${error instanceof Error ? error.message : '未知错误'}`,
data: [],
};
}
}
}