2020-08-25 15:46:38 +08:00
|
|
|
|
MailManager = {};
|
2020-05-09 13:31:21 +08:00
|
|
|
|
local this = MailManager
|
|
|
|
|
this.mialDataList = {}
|
|
|
|
|
|
|
|
|
|
function this.Initialize()
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function this.InitMailDataList(_mialList)
|
|
|
|
|
this.mialDataList = {}
|
|
|
|
|
for i = 1, #_mialList do
|
|
|
|
|
this.UpdateMialData(_mialList[i])
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
table.sort(this.mialDataList, function(a, b)
|
|
|
|
|
if a.state == b.state then
|
|
|
|
|
return a.sendTime > b.sendTime
|
|
|
|
|
else
|
|
|
|
|
return a.state < b.state
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function this.UpdateMialData(_mial)
|
|
|
|
|
local singleMail = {}
|
|
|
|
|
--Log("添加邮件 " .. _mial.mailId)
|
|
|
|
|
singleMail.mailId = _mial.mailId--
|
|
|
|
|
singleMail.state = _mial.state--0:未读 1:已读取 2: 未领取 3 已领取
|
2021-01-26 17:08:39 +08:00
|
|
|
|
local title = string.split(_mial.head,"|")
|
|
|
|
|
singleMail.head = title[GetCurLanguage()+1] or title[1]
|
|
|
|
|
singleMail.head = this.GetStringByStringformat(singleMail.head)
|
|
|
|
|
local content = string.split(_mial.content,"|")
|
|
|
|
|
singleMail.content = content[GetCurLanguage()+1] or content[1]--详情
|
|
|
|
|
singleMail.content = this.GetStringByStringformat(singleMail.content)
|
2020-05-09 13:31:21 +08:00
|
|
|
|
singleMail.mailItem = _mial.mailItem--附件 奖励
|
|
|
|
|
singleMail.sendTime = _mial.sendTime--
|
|
|
|
|
singleMail.effectiveTime = _mial.effectiveTime--秒 0:永久有效
|
|
|
|
|
singleMail.sendName = _mial.sendName--发送者名字
|
|
|
|
|
singleMail.mailType = _mial.mailType--邮件类型 1:系统邮件 2:idip 业务邮件
|
2021-01-26 17:08:39 +08:00
|
|
|
|
|
2020-05-09 13:31:21 +08:00
|
|
|
|
table.insert(this.mialDataList, singleMail)
|
|
|
|
|
end
|
|
|
|
|
|
2021-01-26 17:08:39 +08:00
|
|
|
|
function this.GetStringByStringformat(inputStr)
|
|
|
|
|
local msgStr = string.split(inputStr,"#")
|
2021-02-23 16:52:37 +08:00
|
|
|
|
LogGreen("inputStr:"..inputStr)
|
2021-01-26 17:08:39 +08:00
|
|
|
|
for i = 2, #msgStr do
|
|
|
|
|
--1 需要翻译
|
|
|
|
|
local oneStr = string.sub(msgStr[i],1,1)
|
|
|
|
|
if tonumber(oneStr) == 1 then
|
|
|
|
|
msgStr[i] = tostring(string.sub(msgStr[i],2))
|
|
|
|
|
msgStr[i] = GetLanguageStrById(msgStr[i])
|
|
|
|
|
else
|
|
|
|
|
msgStr[i] = tostring(string.sub(msgStr[i],2))
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
local returnStr = string.format(
|
|
|
|
|
GetLanguageStrById(msgStr[1]),
|
|
|
|
|
tostring(msgStr[2]),
|
|
|
|
|
tostring(msgStr[3]),
|
|
|
|
|
tostring(msgStr[4]),
|
|
|
|
|
tostring(msgStr[5]),
|
|
|
|
|
tostring(msgStr[6])
|
|
|
|
|
)
|
|
|
|
|
LogPink("returnStr:"..returnStr)
|
|
|
|
|
return returnStr
|
|
|
|
|
end
|
|
|
|
|
|
2020-05-09 13:31:21 +08:00
|
|
|
|
--更新邮件状态
|
|
|
|
|
function this.UpdataMialIsReadState(_mailId, _state)
|
|
|
|
|
for i = 1, #this.mialDataList do
|
|
|
|
|
--Log("_mailId " .. _mailId)
|
|
|
|
|
if this.mialDataList[i].mailId == _mailId then
|
|
|
|
|
--Log("this.mialDataList[i].mailId " .. this.mialDataList[i].mailId .. " " .. _state)
|
|
|
|
|
this.mialDataList[i].state = _state
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
CheckRedPointStatus(RedPointType.Mail_Local)
|
|
|
|
|
end
|
|
|
|
|
--删除邮件状态
|
|
|
|
|
function this.DelSingleMial(_mailId)
|
|
|
|
|
local curmialDataList = {}
|
|
|
|
|
for i = 1, #this.mialDataList do
|
|
|
|
|
table.insert(curmialDataList,this.mialDataList[i])
|
|
|
|
|
end
|
|
|
|
|
for i = 1, #curmialDataList do
|
|
|
|
|
if curmialDataList[i].mailId == _mailId then
|
|
|
|
|
curmialDataList[i] = nil
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
this.mialDataList = {}
|
|
|
|
|
for i, v in pairs(curmialDataList) do
|
|
|
|
|
this.mialDataList[#this.mialDataList+1] = v
|
|
|
|
|
end
|
|
|
|
|
--CheckRedPointStatus(RedPointType.Mail_Local)
|
|
|
|
|
end
|
|
|
|
|
--检测邮件红点
|
|
|
|
|
function this.GetMailRedPointState()
|
|
|
|
|
local isShowRedPoint = false
|
|
|
|
|
for i = 1, #this.mialDataList do
|
|
|
|
|
if this.mialDataList[i].state == 0 then
|
|
|
|
|
isShowRedPoint = true
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- 无红点可显示,重置服务器邮件红点
|
|
|
|
|
if not isShowRedPoint then
|
|
|
|
|
ResetServerRedPointStatus(RedPointType.Mail_Server)
|
|
|
|
|
end
|
|
|
|
|
return isShowRedPoint
|
|
|
|
|
end
|
|
|
|
|
|
2020-06-23 18:36:24 +08:00
|
|
|
|
return this
|