blob: d66d25f515a90e087c34a96348c8bfe1ae7994a9 [file] [log] [blame]
// data.d.ts - 活动系统类型定义文件
// 活动类型枚举
export type ActivityType = 'UPLOAD' | 'DOWNLOAD';
// 活动状态
export type ActivityStatus = 0 | 1; // 0=已结束,1=进行中
// 活动信息 - 适配后端返回的字段
export interface SysActivity {
createBy?: string | null;
createTime?: string | null;
updateBy?: string | null;
updateTime?: string | null;
remark?: string | null;
activityId: number;
activityName: string;
rewardBonus: number;
conditionValue: string; // 上传:如"10GB",下载:torrent_id
startTime: string; // ISO 8601 格式:2025-06-01T00:00:00.000+08:00
endTime: string; // ISO 8601 格式:2025-06-30T23:59:59.000+08:00
status: ActivityStatus;
activityType: ActivityType;
}
// 活动记录
export interface SysActivityRecord {
recordId: number;
activityId: number;
userId: number;
rewardBonus: number;
completeTime: string;
}
// 排行榜条目
export interface LeaderboardEntry {
userId: number;
userName: string;
score: number;
}
// 后端实际返回的活动列表响应格式
export interface GetActivityListResponse {
total: number;
rows: SysActivity[];
code: number;
msg: string;
}
// 获取排行榜响应 - 假设也遵循相同格式
export interface GetLeaderboardResponse {
total: number;
rows: LeaderboardEntry[];
code: number;
msg: string;
}
// 参与活动响应
export interface ParticipateActivityResponse {
code: number;
msg: string;
data?: any;
}
// 活动列表查询参数
export interface ActivityListParams {
pageNum?: number;
pageSize?: number;
activityName?: string;
activityType?: ActivityType;
status?: ActivityStatus;
}
// 排行榜查询参数
export interface LeaderboardParams {
pageNum?: number;
pageSize?: number;
}
// 前端组件使用的标准化数据格式(保持原有格式以减少组件改动)
export interface StandardizedActivityListResponse {
code: number;
msg: string;
data: {
list: SysActivity[];
total: number;
pageSize: number;
current: number;
};
}
export interface StandardizedLeaderboardResponse {
code: number;
msg: string;
data: {
list: LeaderboardEntry[];
total: number;
pageSize: number;
current: number;
};
}