import { LoginMgr } from "../common/LoginManager"; import { AccountData } from "../data/AccountData"; import { Mail, MailData } from "../data/MailData"; export class MailManager { //邮件功能是否开放 static isOpenMail() { return false; } //排序 static orderMail(): Mail[] { let mails = MailData.getData() const mailList: Mail[] = []; const nowTime = AccountData.serverTime; for (const key in mails) { const v = mails[key]; // if (parseInt(v.expire, 10) >= nowTime) { mailList.push(v); // } } mailList.sort((a, b) => { const x = parseInt(a.read, 10) === 0 ? 1 : 0; const y = parseInt(b.read, 10) === 0 ? 1 : 0; if (x > y) { return -1; } else if (x < y) { return 1; } return parseInt(a.expire, 10) > parseInt(b.expire, 10) ? -1 : 1; }); return mailList; } //获取邮件剩余保留时间 static getLeftDays(time: number): number { let leftTime = time - AccountData.serverTime; leftTime = Math.ceil(leftTime / (24 * 60 * 60)); return leftTime <= 0 ? 0 : leftTime; } //是否有邮件未读 static haveMailNotRead(): boolean { let mails = MailData.getData() const nowTime = AccountData.serverTime; for (const key in mails) { const v = mails[key]; if (parseInt(v.expire, 10) >= nowTime && parseInt(v.read, 10) === 0) { return true; } } return false; } //获取邮件附件(首个外部展示用) static getShowAward(id: string): any { let mails = MailData.getData() for (const key in mails) { const v = mails[key]; if (parseInt(v.id, 10) === parseInt(id, 10)) { if (v.awards && v.awards.length > 0) { if (mails[parseInt(v.id, 10)].read === '1') { return null; } else { return v.awards[0]; } } } } return null; } //获取邮件文本 static getMailText(content: any, isTitle: boolean): string { let jsonData = content; let text: string; // if (isTitle) { // if (typeof jsonData === 'number') { // text = ConfData.getMapData('maillocaltext.dat')[jsonData.toString()].Title; // } else { // text = content; // } // return Util.getString(text); // } else { // if (Array.isArray(jsonData)) { // const count = jsonData.length; // text = ConfData.getMapData('maillocaltext.dat')[jsonData[0].toString()].Desc; // if (count === 2) { // const tcConfNew = ConfData.getMapData('manorcity.dat'); // const tcsConfNew = ConfData.getMapData('manorschedule.dat'); // const tcConf = ConfData.getMapData('territorycity.dat'); // const tcsConf = ConfData.getMapData('territoryschedule.dat'); // if (parseInt(jsonData[0], 10) === 14) { // const str = ' Lv.' + tcConf[jsonData[1]].CityLevel + ' ' + Util.getString(tcConf[jsonData[1]].Name); // text = Util.getString(text).replace('%s', str); // } else { // } // } // return text; // } else { return content; // } // } } //消息-讀郵件 static sendGetMailMsg(args: { ids: {} }, callback) { LoginMgr.sendPost('user', 'get_mails', (data) => { console.log(data); MailData.setNewMail(data.get_mails) callback(); }, args) } //是否有附件未领 static haveItemToGet(): boolean { let mails = MailData.getData() for (const key in mails) { const v = mails[key]; if (v.awards && v.awards.length > 0) { return true; } } return false; } //消息-批量刪除 static sendBatchDelMailMsg(args: {}, callback) { LoginMgr.sendPost('user', 'batch_del_mail', (data) => { console.log(data); MailData.removeMail(data.del_mails); callback(); }, args) } //消息-批量領獎 static sendBatchMaillAwardsMsg(args: {}, callback) { LoginMgr.sendPost('user', 'batch_mail_awards', (data) => { console.log(data); for (const key in data.read_mails) { if (Object.prototype.hasOwnProperty.call(data.read_mails, key)) { const element = data.read_mails[key]; MailData.setMailReadById(key); callback(); } } }, args) } //消息-讀郵件 static sendReadMailMsg(args: { id: string }, callback) { LoginMgr.sendPost('user', 'read_mail', (data) => { console.log(data); MailData.setMailReadById(args.id) }, args) } }