| // 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; |
| }; |
| } |