export interface Mail { id: string; sys: number; expire: string; read: string;//读取状态 awards: any;//奖励附件 } class Data { private _mails: { [id: string]: Mail } = {}; private _mailMaxIdTab: { [sys: number]: number } = { 0: 0, 1: 0 }; init(): void { this.reset(); } reset(): void { this._mails = {}; this._mailMaxIdTab = { 0: 0, 1: 0 }; } purge(): void { this.reset(); } setData(data: Mail[]): void { if (data) { for (const v of data) { this._mails[v.id] = v; } for (const v of data) { if (parseInt(v.id, 10) > this._mailMaxIdTab[v.sys]) { this._mailMaxIdTab[v.sys] = parseInt(v.id, 10); } } } } getData(): { [id: string]: Mail } { return this._mails; } //设置最后获得邮件索引 setMailMax(data: number[]): void { for (const v of data) { if (v > this._mailMaxIdTab[1]) { this._mailMaxIdTab[1] = v; } } } //设置最新获得邮件索引 setNewMail(data: Mail[]): void { for (const v of data) { this._mails[v.id] = v; } for (const v of data) { if (parseInt(v.id, 10) > this._mailMaxIdTab[v.sys]) { this._mailMaxIdTab[v.sys] = parseInt(v.id, 10); } } } //获取最新获得邮件索引 getMaxMailId(type: number): number { return this._mailMaxIdTab[type]; } //根据id设置邮件已读状态 setMailReadById(id: string): void { for (const key in this._mails) { const v = this._mails[key]; if (parseInt(v.id, 10) === parseInt(id, 10)) { v.read = '1'; break; } } } //批量设置邮件已读状态 setMailRead(ids: string[]): void { for (const k1 of ids) { for (const key in this._mails) { const v = this._mails[key]; if (parseInt(v.id, 10) === parseInt(k1, 10)) { v.read = '1'; } } } } //批量移除邮件 removeMail(mailList): void { for (const k1 in mailList) { for (const key in this._mails) { const v = this._mails[key]; if (parseInt(v.id, 10) === parseInt(k1, 10)) { delete this._mails[key]; } } } } //根据id移除邮件 removeMailById(id: string): void { for (const key in this._mails) { const v = this._mails[key]; if (parseInt(v.id, 10) === parseInt(id, 10)) { delete this._mails[key]; } } } } export let MailData = new Data;