MailManager.ts 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. import { LoginMgr } from "../common/LoginManager";
  2. import { AccountData } from "../data/AccountData";
  3. import { Mail, MailData } from "../data/MailData";
  4. export class MailManager {
  5. //邮件功能是否开放
  6. static isOpenMail() {
  7. return false;
  8. }
  9. //排序
  10. static orderMail(): Mail[] {
  11. let mails = MailData.getData()
  12. const mailList: Mail[] = [];
  13. const nowTime = AccountData.serverTime;
  14. for (const key in mails) {
  15. const v = mails[key];
  16. // if (parseInt(v.expire, 10) >= nowTime) {
  17. mailList.push(v);
  18. // }
  19. }
  20. mailList.sort((a, b) => {
  21. const x = parseInt(a.read, 10) === 0 ? 1 : 0;
  22. const y = parseInt(b.read, 10) === 0 ? 1 : 0;
  23. if (x > y) {
  24. return -1;
  25. } else if (x < y) {
  26. return 1;
  27. }
  28. return parseInt(a.expire, 10) > parseInt(b.expire, 10) ? -1 : 1;
  29. });
  30. return mailList;
  31. }
  32. //获取邮件剩余保留时间
  33. static getLeftDays(time: number): number {
  34. let leftTime = time - AccountData.serverTime;
  35. leftTime = Math.ceil(leftTime / (24 * 60 * 60));
  36. return leftTime <= 0 ? 0 : leftTime;
  37. }
  38. //是否有邮件未读
  39. static haveMailNotRead(): boolean {
  40. let mails = MailData.getData()
  41. const nowTime = AccountData.serverTime;
  42. for (const key in mails) {
  43. const v = mails[key];
  44. if (parseInt(v.expire, 10) >= nowTime && parseInt(v.read, 10) === 0) {
  45. return true;
  46. }
  47. }
  48. return false;
  49. }
  50. //获取邮件附件(首个外部展示用)
  51. static getShowAward(id: string): any {
  52. let mails = MailData.getData()
  53. for (const key in mails) {
  54. const v = mails[key];
  55. if (parseInt(v.id, 10) === parseInt(id, 10)) {
  56. if (v.awards && v.awards.length > 0) {
  57. if (mails[parseInt(v.id, 10)].read === '1') {
  58. return null;
  59. } else {
  60. return v.awards[0];
  61. }
  62. }
  63. }
  64. }
  65. return null;
  66. }
  67. //获取邮件文本
  68. static getMailText(content: any, isTitle: boolean): string {
  69. let jsonData = content;
  70. let text: string;
  71. // if (isTitle) {
  72. // if (typeof jsonData === 'number') {
  73. // text = ConfData.getMapData('maillocaltext.dat')[jsonData.toString()].Title;
  74. // } else {
  75. // text = content;
  76. // }
  77. // return Util.getString(text);
  78. // } else {
  79. // if (Array.isArray(jsonData)) {
  80. // const count = jsonData.length;
  81. // text = ConfData.getMapData('maillocaltext.dat')[jsonData[0].toString()].Desc;
  82. // if (count === 2) {
  83. // const tcConfNew = ConfData.getMapData('manorcity.dat');
  84. // const tcsConfNew = ConfData.getMapData('manorschedule.dat');
  85. // const tcConf = ConfData.getMapData('territorycity.dat');
  86. // const tcsConf = ConfData.getMapData('territoryschedule.dat');
  87. // if (parseInt(jsonData[0], 10) === 14) {
  88. // const str = ' Lv.' + tcConf[jsonData[1]].CityLevel + ' ' + Util.getString(tcConf[jsonData[1]].Name);
  89. // text = Util.getString(text).replace('%s', str);
  90. // } else {
  91. // }
  92. // }
  93. // return text;
  94. // } else {
  95. return content;
  96. // }
  97. // }
  98. }
  99. //消息-讀郵件
  100. static sendGetMailMsg(args: { ids: {} }, callback) {
  101. LoginMgr.sendPost('user', 'get_mails', (data) => {
  102. console.log(data);
  103. MailData.setNewMail(data.get_mails)
  104. callback();
  105. }, args)
  106. }
  107. //是否有附件未领
  108. static haveItemToGet(): boolean {
  109. let mails = MailData.getData()
  110. for (const key in mails) {
  111. const v = mails[key];
  112. if (v.awards && v.awards.length > 0) {
  113. return true;
  114. }
  115. }
  116. return false;
  117. }
  118. //消息-批量刪除
  119. static sendBatchDelMailMsg(args: {}, callback) {
  120. LoginMgr.sendPost('user', 'batch_del_mail', (data) => {
  121. console.log(data);
  122. MailData.removeMail(data.del_mails);
  123. callback();
  124. }, args)
  125. }
  126. //消息-批量領獎
  127. static sendBatchMaillAwardsMsg(args: {}, callback) {
  128. LoginMgr.sendPost('user', 'batch_mail_awards', (data) => {
  129. console.log(data);
  130. for (const key in data.read_mails) {
  131. if (Object.prototype.hasOwnProperty.call(data.read_mails, key)) {
  132. const element = data.read_mails[key];
  133. MailData.setMailReadById(key);
  134. callback();
  135. }
  136. }
  137. }, args)
  138. }
  139. //消息-讀郵件
  140. static sendReadMailMsg(args: { id: string }, callback) {
  141. LoginMgr.sendPost('user', 'read_mail', (data) => {
  142. console.log(data);
  143. MailData.setMailReadById(args.id)
  144. }, args)
  145. }
  146. }