feat: 生成活动接口
This commit is contained in:
@@ -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: [],
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user