123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- 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;
|