|
|
- require("game.proto.190.Require190")
- require("game.mail.MailModel")
- require("game.mail.MailEvent")
- require("game.mail.MailItem")
- require("game.mail.MailAwardItem")
-
-
- MailController = MailController or BaseClass(BaseController)
-
- function MailController:__init()
- MailController.Instance = self
-
- self.model = MailModel:getInstance()
-
- self:RegisterAllProtocals()
- self:InitEvent()
- end
-
- function MailController:GetInstance()
- if MailController.Instance == nil then
- MailController.New()
- end
- return MailController.Instance
- end
-
- function MailController:RegisterAllProtocals()
- self:RegisterProtocal(19000, "Handler19000") --错误码
- self:RegisterProtocal(19001, "Handler19001") --获得邮件列表
- self:RegisterProtocal(19002, "Handler19002") --获得邮件详细信息
- self:RegisterProtocal(19003, "Handler19003") --删除
- self:RegisterProtocal(19004, "Handler19004") --增加邮件
- self:RegisterProtocal(19005, "Handler19005") --收取附件
- self:RegisterProtocal(19007, "Handler19007") --获得邮件基本信息
- self:RegisterProtocal(19008, "Handler19008") --信件通知
- -- self:RegisterProtocal(19010, "Handler19010") --处理玩家反馈信息
- --self:RegisterProtocal(19006, "Handler19006") --发送社团邮件
- --self:RegisterProtocal(19009, "Handler19009") --社团邮件发送次数
- end
-
- function MailController:InitEvent()
- --绑定游戏开始后的回调方法
- local function game_start_func()
- local delay_callback = function()
- self:SendFmtToGame(19001,"c",1) --获得邮件基本信息列表
- -- self:SendFmtToGame(19001,"c",5) --获取交易邮件基本信息列表
- self:SendFmtToGame(19008) --邮件通知
- end
- setTimeout(delay_callback, 3)
- end
- GlobalEventSystem:Bind(EventName.GAME_START, game_start_func)
-
- --绑定获取邮件详细信息的请求
- local request_19002_fun = function(mail_id)
- self:SendFmtToGame(19002, "l", mail_id)
- end
- self.model:Bind(MailEvent.GET_MAIL_DETAIL, request_19002_fun)
-
- --绑定删除邮件的请求
- local request_19003_fun = function(mail_ids,type)
- local len = #mail_ids
- self:WriteBegin(19003)
- self:WriteFMT("h", len)
- for i, v in ipairs(mail_ids) do
- self:WriteFMT("l", v)
- end
- self:WriteFMT("c",type)
- self:SendToGame()
- end
- self.model:Bind(MailEvent.DELETE_MAIL, request_19003_fun)
-
- --绑定增加邮件的请求
- local request_19004_fun = function()
- self:SendFmtToGame(19004)
- end
- self.model:Bind(MailEvent.ADD_MAIL, request_19004_fun)
-
- --绑定收取附件的请求
- local request_19005_fun = function(mail_ids,type)
- local len = #mail_ids
- self:WriteBegin(19005)
- self:WriteFMT("h", len)
- if len > 0 then
- for i, v in ipairs(mail_ids) do
- self:WriteFMT("l", v)
- end
- end
- self:WriteFMT("c",type)
- self:SendToGame()
- end
- self.model:Bind(MailEvent.GET_MAIL_ATTACHMENT, request_19005_fun)
-
- --绑定获取邮件基本信息的请求
- local request_19007_fun = function(mail_id)
- self:SendFmtToGame(19007, "l", mail_id)
- end
- self.model:Bind(MailEvent.GET_MAIL_ITEM, request_19007_fun)
-
- --绑定获取邮件通知的请求
- local request_19008_fun = function()
- self:SendFmtToGame(19008)
- end
- self.model:Bind(MailEvent.GET_MAIL_INFORM, request_19008_fun)
-
- -- 绑定发送意见反馈的请求
- local request_19010_fun = function (content)
- self:SendFmtToGame(19010, "s", content)
- end
- self.model:Bind(MailEvent.REQUEST_19010, request_19010_fun)
- end
-
- --处理错误码
- function MailController:Handler19000()
- local scmd = SCMD19000.New(true)
- ErrorCodeShow(scmd.error_code)
- end
-
- --处理邮件基本信息列表的获取
- function MailController:Handler19001()
- local scmd = SCMD19001.New(true)
- self.model:SetAllMailList(scmd.mail_list)
- self.model:Fire(MailEvent.UPDATE_MAIL_LIST)
- self.model:Fire(MailEvent.UPDATE_TOP_BAR_RED)--刷新邮件界面topbar的红点
- end
-
- --处理邮件详细信息的获取
- function MailController:Handler19002()
- local scmd = SCMD19002.New(true)
- -- local vo = self.model:HandleMailDetail(scmd)
- self.model:Fire(MailEvent.UPDATE_MAIL_DETAIL, scmd)
- self.model:Fire(MailEvent.GET_MAIL_ITEM, scmd.mail_id)
- end
-
- --处理邮件的删除
- function MailController:Handler19003()
- local scmd = SCMD19003.New(true)
- if scmd.error_code == 1 then
- Message.show("邮件删除成功")
- self.model:DeleteMail(scmd.mail_ids)
- self.model:Fire(MailEvent.GET_MAIL_INFORM)
- self.model:Fire(MailEvent.UPDATE_TOP_BAR_RED)--刷新邮件界面topbar的红点
- self:SendFmtToGame(19001,"c",1) --获得邮件基本信息列表
- else
- ErrorCodeShow(scmd.error_code)
- end
- end
-
- --处理邮件的增加
- function MailController:Handler19004()
- local scmd = SCMD19004.New(true)
- -- if ClientConfig.alpha_mode then return end --审核状态屏蔽邮件 暂时不需要屏蔽
-
- self.model:AddMailList(scmd.mail_list)
- --增加邮件图标
- MsgManager:getInstance():Add({type=Config.ConfigMainIcon.TipType.mail})
- ------------------------------------------------------------
- end
-
- --处理邮件附件的提取
- function MailController:Handler19005()
- local scmd = SCMD19005.New(true)
- if scmd.error_code == 1 then
- Message.show("附件领取成功","award")
- else
- ErrorCodeShow(scmd.error_code)
- end
- if scmd.mail_ids and #scmd.mail_ids > 0 then
- for i, v in ipairs(scmd.mail_ids) do
- self.model:Fire(MailEvent.GET_MAIL_DETAIL, v.mail_id)
- end
- end
- self.model:Fire(MailEvent.UPDATE_TOP_BAR_RED)--刷新邮件界面topbar的红点
- end
-
- --处理邮件基本信息的获取
- function MailController:Handler19007()
- local scmd = SCMD19007.New(true)
- self.model:UpdateMailData(scmd)
- end
-
- --处理邮件的通知
- function MailController:Handler19008()
- local scmd = SCMD19008.New(true)
-
- -- if ClientConfig.alpha_mode then return end --审核状态屏蔽邮件 暂时不需要屏蔽
- -----------------屏蔽这里的邮件通知-------------------
-
-
- -- 0 - 无未读邮件,1 - 有未读邮件
- self.model.show_mail_icon = scmd.is_unread_mail == 1
- if self.model.show_mail_icon then
-
- --没有图标才增加图标
- local bool = MsgManager:getInstance():IsMsgTypeShow(Config.ConfigMainIcon.TipType.mail)
- -- if not bool then
- MsgManager:getInstance():Add({type=Config.ConfigMainIcon.TipType.mail})
- -- end
- else
- MsgManager:getInstance():Remove(Config.ConfigMainIcon.TipType.mail)
- end
- ----------------------------------------------------------
- GlobalEventSystem:Fire(EventName.REFRESH_SOCIAL_RED_DOT)
- self.model:Fire(MailEvent.UPDATE_BTN_GRAY_BY_SELECTALL)
- self.model:Fire(MailEvent.UPDATE_TOP_BAR_RED)--刷新邮件界面topbar的红点
- self.model:SortMailEffectTime()
- end
-
- -- -- 处理意见反馈的返回信息
- -- function MailController:Handler19010()
- -- local vo = SCMD19010.New(true)
- -- if vo then
- -- if vo.error_code == 1 then
- -- GlobalEventSystem:Fire(GameSettingModel.FEEDBACK_SUCCESS)
- -- else
- -- ErrorCodeShow(vo.error_code)
- -- end
- -- end
- -- end
|