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
|