Example #1
0
    /// <summary>
    /// 服务推送来的邮件
    /// </summary>
    public static void ReceptionPushDataTwo(IMessage msg)
    {
        if (msg is SCSendMailPushMsg)
        {
            SCSendMailPushMsg dataBox = msg as SCSendMailPushMsg;

            MailStruct data = dataBox.MailInfoMsg;
            if (!_pushMailDic.ContainsKey(data.MailID))
            {
                _pushMailDic.Add(data.MailID, data);
                if (!_mailDic.ContainsKey(data.MailID))
                {
                    CSMailStruct cSMailStruct = new CSMailStruct();
                    cSMailStruct.MailId        = data.MailID;
                    cSMailStruct.State         = 1;
                    cSMailStruct.Message       = data.MailContent;
                    cSMailStruct.Title         = data.MailTitle;
                    cSMailStruct.SubheadID     = data.SubheadID;
                    cSMailStruct.Addresser     = data.Addresser;
                    cSMailStruct.ConfigId      = data.ConfigID;
                    cSMailStruct.DisabledTime  = data.DisabledTime;
                    cSMailStruct.HaveAccessory = data.PropInfo != null && data.PropInfo.Count > 0;
                    _mailDic.Add(cSMailStruct.MailId, cSMailStruct);

                    if (MailboxController.Instance != null)
                    {
                        RedDotManager.UpdateRedDot(RedDotManager.RedDotKey.Mailbox);
                    }
                    else
                    {
                        _pushAction?.Invoke();
                    }
                }
                else
                {
                    Debug.Log("推送邮件id跟现有邮件id重复:" + data.MailID);
                }
            }
            else
            {
                Debug.Log("推送邮件重复:" + data.MailID);
            }
        }
        else
        {
            Debug.Log("推送邮件数据类型出错");
        }
    }
Example #2
0
    /// <summary>
    /// 初始化
    /// </summary>
    /// <param name="data"></param>
    public void Initial(CSMailStruct data)
    {
        if (data.ConfigId != 0)
        {
            MailDefine mailDefine = StaticData.configExcel.GetMailByMailId(data.ConfigId);
            if (mailDefine != null)
            {
                _mailName    = StaticData.GetMultilingual(mailDefine.Title);
                _mailContent = StaticData.GetMultilingual(mailDefine.Message);
                _subhead     = StaticData.GetMultilingual(mailDefine.Subtitle);
            }
            else
            {
                _mailName    = "获取不到配置数据,邮件id:" + data.MailId;
                _mailContent = "获取不到配置数据,邮件配置id:" + data.ConfigId;
                _subhead     = "获取不到副标题";
            }
        }
        else
        {
            _mailName    = StaticData.GetMultilingual(data.Title);
            _mailContent = StaticData.GetMultilingual(data.Message);
            _subhead     = StaticData.GetMultilingual(data.SubheadID);;
        }
        _mailID = data.MailId;

        _timestamp = data.DisabledTime;

        _addressor = data.Addresser;
        _type      = (MailState)data.State;
        if (data.HaveAccessory == false)
        {
            _isHaveAccessory = false;
        }
        else
        {
            _isHaveAccessory = data.HaveAccessory;
        }
    }
Example #3
0
    /// <summary>
    /// 获取玩家邮件数据
    /// </summary>
    /// <param name="endAction"></param>
    public static void GetMailboxData(Action <List <MailData> > endAction)
    {
        if (_isGetMaliData)
        {
            List <MailData> mailDatas = new List <MailData>();

            foreach (var item in _mailDic)
            {
                MailData mailData = new MailData();
                mailData.Initial(item.Value);
                mailDatas.Add(mailData);
            }
            endAction?.Invoke(mailDatas);
            return;
        }
        else
        {
            CSEmptyMail     cSEmptyMail = new CSEmptyMail();
            List <MailData> mailDatas   = new List <MailData>();
            ProtocalManager.Instance().SendCSEmptyMail(cSEmptyMail, (data) =>
            {
                _mailDic.Clear();
                if (data != null && data.Mail != null && data.Mail.Count > 0)
                {
                    for (int i = 0; i < data.Mail.Count; i++)
                    {
                        CSMailStruct cSMailStruct = data.Mail[i];
                        MailData mailData         = new MailData();
                        mailData.Initial(cSMailStruct);
                        mailDatas.Add(mailData);
                        _mailDic.Add(cSMailStruct.MailId, cSMailStruct);
                    }
                    _isGetMaliData = true;
                }
                else
                {
                    //for (int i = 0; i < 10; i++)
                    //{
                    //    CSMailStruct cSMailStruct = new CSMailStruct();
                    //    cSMailStruct.Addresser = 1;
                    //    if (i == 0)
                    //    {
                    //        cSMailStruct.HaveAccessory = true;
                    //    }
                    //    else
                    //    {
                    //        cSMailStruct.HaveAccessory = false;
                    //    }
                    //    cSMailStruct.Message = "测试数据";
                    //    cSMailStruct.MailId = i;
                    //    cSMailStruct.Title = "测试邮件" + i;
                    //    cSMailStruct.State = 1;
                    //    cSMailStruct.DisabledTime = TimeHelper.ServerTimeStampNow;

                    //    MailData mailData = new MailData();
                    //    mailData.Initial(cSMailStruct);
                    //    mailDatas.Add(mailData);
                    //    _mailDic.Add(i, cSMailStruct);
                    //}
                    //_isGetMaliData = true;

                    Debug.Log("没有邮件!");
                }
                endAction?.Invoke(mailDatas);
            }, (er) =>
            {
                Debug.LogError("邮件数据获取失败:" + "Code:" + er.webErrorCode + "Message:" + er.ErrorMessage);
                _isGetMaliData = false;
                endAction?.Invoke(mailDatas);
            });
        }
    }