import { ActivityModelType } from '../../db/Activity'; import { ActivityNewHeroGKModelType } from '../../db/ActivityNewHeroGK'; import { getTimeFunM } from '../../pubUtils/timeUtil'; import { ActivityBase } from './activityField'; /******* 存在数据库里的数据 *******/ interface NewHeroGkWarInDb { warId: number; // 关卡id startDay: number; // 活动第几天开启 } interface NewHeroGkDataInDb { wars: NewHeroGkWarInDb[]; // 关卡 } // 每日关卡活动数据 export class NewHeroGachaWar { warId: number; // 关卡id startTime: number; // 活动第几天开启,13位时间戳 isSuccess: boolean = false; // 是否成功 constructor(data: NewHeroGkWarInDb, beginTime: number) { this.warId = data.warId; this.startTime = getTimeFunM(beginTime).getAfterDayWithHour(data.startDay - 1); } setPlayerRecord(isSuccess: boolean) { this.isSuccess = isSuccess; } } export class NewHeroGKData extends ActivityBase { wars: NewHeroGachaWar[] = []; // 关卡 constructor(activityData: ActivityModelType, createTime: number, serverTime: number) { super(activityData, createTime, serverTime) this.initData(activityData.data) } public initData(data: string) { let dataObj: NewHeroGkDataInDb = JSON.parse(data); let arr = dataObj.wars||[]; for (let obj of arr) { this.wars.push(new NewHeroGachaWar(obj, this.beginTime)) } } public findItemByGK(warId: number) { return this.wars.find(cur => cur.warId == warId); } //解析玩家记录 public setPlayerRecords(data: ActivityNewHeroGKModelType) { if (!data) return; let records = data.records||[]; for (let data of records) { let item = this.findItemByGK(data.warId); if(item) item.setPlayerRecord(true); } } }