void Awake() { msRichEngine = this; m_setting.Load(); m_dataCenter = new RichDataManager(); m_dataCenter.LoadData(); m_data = m_dataCenter.GetQueryArchieve(); m_query = LotteryQueryFactory.GetLotteryQuery(m_setting.UseQueryAPI); m_timeCount = 0; //保证第一次的query //修复错误 foreach (var record in m_data.m_RecordsList) { ILotteryRule rule = LotteryRuleFactory.GetLotteryRule(record.m_LotteryType); foreach (var entry in record.m_RichList) { rule.Compare(entry); } } }
void CompareLottery(ILotteryResultQuery query, RichLotteryRecord record) { List <RichDataEntry> removeList = new List <RichDataEntry>(); bool hasNew = false; foreach (var entry in record.m_RichList) { if (entry.m_Issue > query.GetLastestIssueNo()) { hasNew = true; continue; } //没有买 if (!entry.m_hasBuy) { //并且不是最新一期时候 删除数据 if (entry.m_Issue <= query.GetLastestIssueNo()) { removeList.Add(entry); } continue; } //没有超期 并且 没有结果 就查询 if (!entry.m_isExpired && !entry.m_hasResult) { query.QueryLotteryEntry(entry); } } //删除需要删除的 foreach (var rm in removeList) { record.m_RichList.Remove(rm); } //没有最新,要创建最新 if (!hasNew) { RichDataEntry lastestEntry = query.GetLatestIssueInfo(); var rule = LotteryRuleFactory.GetLotteryRule(record.m_LotteryType); var newEntry = rule.GetNextIssue(lastestEntry); record.m_RichList.Add(newEntry); } }
public static void Regist(string queryType, ILotteryResultQuery query) { ms_LotteryQueryMap.Add(queryType, query); }