MailProxy.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using System;
  2. /// <summary>
  3. /// 邮件
  4. /// </summary>
  5. public class MailProxy : ProxyBase<MailProxy>
  6. {
  7. /// <summary>
  8. /// 邮件最大过期时间
  9. /// </summary>
  10. public const int MaxMailExpireTs = 7 * 24 * 3600;
  11. /// <summary>
  12. /// 邮件最大数量
  13. /// </summary>
  14. public const int MaxMailCount = 100;
  15. /// <summary>
  16. /// init
  17. /// </summary>
  18. public MailProxy() =>this.opeCode = OpeCode.ope_mail;
  19. /// <summary>
  20. /// [6701][邮件-拉取我的邮件列表]
  21. /// </summary>
  22. /// <param name="mailId">客户端的最大(最新)邮件id,(默认值为0)(服务端会拉取比它靠后的邮件)</param>
  23. /// <param name="callback">成功回调处理</param>
  24. public void QueryMyMails(Action<GetMailListRetVo> callback = null)
  25. {
  26. Post<GetMailListRetVo>(CmdCode.cmd_mail_getmaillist, new object[] { }, callback);
  27. }
  28. /// <summary>
  29. /// [6702] 读取/打开 邮件
  30. /// </summary>
  31. /// <param name="mailId">邮件id </param>
  32. /// <param name="callback"></param>
  33. public void ReadMail(int mailId, Action callback = null)
  34. {
  35. Post(CmdCode.cmd_mail_readmail, new object[] { mailId }, resp => callback?.Invoke());
  36. }
  37. /// <summary>
  38. /// [6703] 邮件 - 领取附件奖励
  39. /// </summary>
  40. /// <param name="mailId">邮件id </param>
  41. /// <param name="callback"></param>
  42. public void DrawAMail(int mailId, Action<string> callback = null)
  43. {
  44. Post<DrawAllMailRetVo>(CmdCode.cmd_mail_DrawReward, new object[] { mailId },
  45. ret =>
  46. {
  47. // 同步数据
  48. var p = UserProxy.Instance.player;
  49. p.baseInfo = ret.baseInfo;
  50. p.collectHero.InitData(ret.hero,p);
  51. callback?.Invoke(ret.reward);
  52. });
  53. }
  54. /// <summary>
  55. /// [6703] 邮件 - 领取附件奖励
  56. /// </summary>
  57. /// <param name="mailId">邮件id </param>
  58. /// <param name="callback"></param>
  59. public void DrawAllMails(Action<DrawAllMailRetVo> callback = null)
  60. {
  61. Post<DrawAllMailRetVo>(CmdCode.cmd_mail_DrawAllRewards, new object[] { },
  62. ret =>
  63. {
  64. //var ret = resp.result.ToObject<DrawAllMailRetVo>();
  65. // 同步数据
  66. var p = UserProxy.Instance.player;
  67. p.baseInfo = ret.baseInfo;
  68. p.collectHero.InitData(ret.hero,p);
  69. callback?.Invoke(ret);
  70. });
  71. }
  72. /// <summary>
  73. /// 6705 不论邮件是否读取,删除
  74. /// </summary>
  75. /// <param name="dels"></param>
  76. /// <param name="callback"></param>
  77. public void Delmails(Action<DelMailRetvo> callback = null)
  78. {
  79. Post<DelMailRetvo>(CmdCode.cmd_mail_delMailReaded, new object[] { }, callback);
  80. }
  81. /// <summary>
  82. /// 6706 请求最新的未处理的 邮件的数量
  83. /// </summary>
  84. /// <param name="callback"></param>
  85. public void QueryMyMailsNotHandledNum(Action<int> callback = null)
  86. {
  87. Post(CmdCode.cmd_mail_notReadMailNum, new object[] { }, resp => callback?.Invoke(resp.result["num"].ToObject<int>()));
  88. }
  89. /// <summary>
  90. /// 6707 发放内部测试道具邮件
  91. /// </summary>
  92. /// <param name="callback"></param>
  93. public void SendTestingItems(string itemId, string num, Action<GetMailListRetVo> callback = null)
  94. {
  95. Post<GetMailListRetVo>(CmdCode.cmd_mail_SendTestItems, new object[] { itemId, num }, callback);
  96. }
  97. }