|
|
@@ -59,10 +59,9 @@ local MIDDLE_COMMON_RANK = {
|
|
|
|
|
|
}
|
|
|
|
|
|
--- 缓存战区已经处理完的全服邮件服务器
|
|
|
+-- 缓存已经要处理的战区个人邮件
|
|
|
local MIDDLE_SENDSERVER_MAIL =
|
|
|
{
|
|
|
-
|
|
|
}
|
|
|
|
|
|
-- 上榜的最小条件
|
|
|
@@ -366,7 +365,7 @@ local function MiddleCommonRank_SortAllRank(nRankType, nRankSubType, nServerKey)
|
|
|
|
|
|
table.sort(tRankData.rank2data, MiddleCommonRank_CmpRank)
|
|
|
|
|
|
- local maxRank = MiddleCommonRank_GetMaxRankLen(nRankType)
|
|
|
+ local maxRank = MiddleCommonRank_GetMaxRankLen()
|
|
|
local nNowLen = #tRankData.rank2data
|
|
|
|
|
|
-- 大于了排行榜最大缓存数据
|
|
|
@@ -479,7 +478,7 @@ local function MiddleCommonRank_GetDBDataByUid(nRankType, nRankSubType, nServerK
|
|
|
MiddleRankQueryForData.uuid = uuid
|
|
|
|
|
|
local data = {}
|
|
|
- LuaMongo.find(DB.db_middle_rank, CoomonQueryForData)
|
|
|
+ LuaMongo.find(DB.db_middle_rank, MiddleRankQueryForData)
|
|
|
return LuaMongo.next(data) and data
|
|
|
end
|
|
|
|
|
|
@@ -492,8 +491,10 @@ local function MiddleCommonRank_UpdateDBData(data)
|
|
|
MiddleRankQueryForData.nServerKey = data.nServerKey
|
|
|
MiddleRankQueryForData.uuid = data.uuid
|
|
|
LuaMongo.update(DB.db_middle_rank, MiddleRankQueryForData, data)
|
|
|
+ print("[MiddleCommonRank_UpdateDBData] 存在久数据进行更新")
|
|
|
else
|
|
|
LuaMongo.insert(DB.db_middle_rank, data)
|
|
|
+ print("[MiddleCommonRank_UpdateDBData] 不存在久数据直接进行插入")
|
|
|
end
|
|
|
end
|
|
|
|
|
|
@@ -640,7 +641,7 @@ function MiddleCommonRank_QueryRankInfo(tMsgData)
|
|
|
if not tRankCacheData or nil == _G.next(tRankCacheData) then
|
|
|
tSendMsgData.nEnd = 1
|
|
|
else
|
|
|
- for nRank, v in ipairs(tRankCacheData.sendRank2data) do
|
|
|
+ for nRank, v in pairs(tRankCacheData.sendRank2data) do
|
|
|
tSendMsgData.tRankData[0] = tSendMsgData.tRankData[0] + 1
|
|
|
tSendMsgData.tRankData[tSendMsgData.tRankData[0]] = {
|
|
|
nRank = nRank,
|
|
|
@@ -668,69 +669,86 @@ function MiddleCommonRank_QueryServerRank(msg)
|
|
|
return
|
|
|
end
|
|
|
|
|
|
+ print("[MiddleCommonRank_QueryServerRank] 请求服务器排行榜对应服务器排名 nOperate = "..msg.nOperate.." nServerUuid = "..msg.nServerUuid)
|
|
|
local tMsgData = InnerMsg.wl.WL_COMMERCE_GET_SERVERRANK_PRIZE
|
|
|
tMsgData.nOperate = msg.nOperate
|
|
|
|
|
|
local nServerKey = MiddleConnect.MiddleConnect_TrueServerID2ConfServerID(msg.nSrcServerID)
|
|
|
nServerKey = MiddleConnect.MiddleConnect_GetWarZoneServer(nServerKey)
|
|
|
|
|
|
+ print("[MiddleCommonRank_QueryServerRank] 请求服务器排行榜对应服务器排名 nServerKey = "..nServerKey)
|
|
|
+
|
|
|
local tRankCacheData = MiddleCommonRank_GetRankDataByType(CommonDefine.COMMONRANK_TYPE_SERVERCOMMERCE,
|
|
|
CommonDefine.COMMONRANK_SUB_TYPE_SERVERCOMMERCE_SERVER, nServerKey)
|
|
|
+ local nNowRank = -1
|
|
|
if not tRankCacheData then
|
|
|
- tMsgData.nRank = MiddleCommonRank_GetMaxRankLen() + 1
|
|
|
+ print("[MiddleCommonRank_QueryServerRank] 不存在缓存数据")
|
|
|
+ nNowRank = MiddleCommonRank_GetMaxRankLen() + 1
|
|
|
else
|
|
|
- for nRank, v in ipairs(tRankCacheData) do
|
|
|
- if v.uuid == msg.nServerUuid then
|
|
|
- tMsgData.nRank = nRank
|
|
|
+ print("[MiddleCommonRank_QueryServerRank] 存在缓存数据")
|
|
|
+ for nRank, v in pairs(tRankCacheData.rank2data) do
|
|
|
+ print("[MiddleCommonRank_QueryServerRank] nRank = "..nRank)
|
|
|
+ if "table"== type(v) then
|
|
|
+ print("[MiddleCommonRank_QueryServerRank] nRank = "..nRank.." uuid = "..v.uuid.." type1 = "..type(v.uuid).." type2 = "..type(msg.nServerUuid))
|
|
|
+ end
|
|
|
+
|
|
|
+ if "table"== type(v) and v.uuid == msg.nServerUuid then
|
|
|
+ print("[MiddleCommonRank_QueryServerRank] nRank = "..nRank.." uuid = "..v.uuid.." nServerUuid = "..msg.nServerUuid)
|
|
|
+ nNowRank = nRank
|
|
|
break
|
|
|
end
|
|
|
end
|
|
|
end
|
|
|
|
|
|
- if not tMsgData.nRank then
|
|
|
- tMsgData.nRank = MiddleCommonRank_GetMaxRankLen() + 1
|
|
|
+ if -1 >= nNowRank then
|
|
|
+ nNowRank = MiddleCommonRank_GetMaxRankLen() + 1
|
|
|
end
|
|
|
|
|
|
- InnerMsg.sendMsg(nSrcFD, tMsgData)
|
|
|
-end
|
|
|
-
|
|
|
--- 服务器发送全服邮件结束
|
|
|
-function MiddleCommonRank_ServerMailOk(msg)
|
|
|
- -- 先获取对应配置ID,再获取最小的ID
|
|
|
- local nConfServerID = MiddleConnect.MiddleConnect_TrueServerID2ConfServerID(msg.nSrcServerID)
|
|
|
- local nServerKey, nMaxServerID = MiddleConnect.MiddleConnect_GetWarZoneServer(nConfServerID)
|
|
|
+ tMsgData.nRank = nNowRank
|
|
|
|
|
|
- if not MIDDLE_SENDSERVER_MAIL[nServerKey] then
|
|
|
- MIDDLE_SENDSERVER_MAIL[nServerKey] = {}
|
|
|
- end
|
|
|
+ print("[MiddleCommonRank_QueryServerRank] 获取到rank = "..nNowRank.." nSrcServerID = "..msg.nSrcServerID.." nServerKey = "..nServerKey)
|
|
|
|
|
|
- MIDDLE_SENDSERVER_MAIL[nServerKey][nConfServerID] = 1
|
|
|
-
|
|
|
- local bOK = true
|
|
|
- for i = nServerKey, nMaxServerID, 1 do
|
|
|
- if not MIDDLE_SENDSERVER_MAIL[nServerKey][i] then
|
|
|
- bOK = false
|
|
|
- break
|
|
|
- end
|
|
|
- end
|
|
|
+ InnerMsg.sendMsg(nSrcFD, tMsgData)
|
|
|
+end
|
|
|
|
|
|
- -- 发送全服个人奖励
|
|
|
- if true == bOK then
|
|
|
- local tRankData = MiddleCommonRank_GetRankDataByType(CommonDefine.COMMONRANK_TYPE_SERVERCOMMERCE,
|
|
|
- CommonDefine.COMMONRANK_SUB_TYPE_SERVERCOMMERCE_HUMAN, nServerKey)
|
|
|
- if tRankData then
|
|
|
- local tMsgData = InnerMsg.wl.WL_COMMERCE_SEND_HUMAN_PRIZE
|
|
|
- for nRank, v in ipairs(tRankData) do
|
|
|
+-- 延迟发送个人奖励
|
|
|
+function MiddleCommonRank_SendHumanRankPrize(nRankType, nRankSubType, nServerKey)
|
|
|
+ print("[MiddleCommonRank_SendHumanRankPrize] 开始处理对应的个人排行榜奖励 nRankType = "..nRankType.." nRankSubType = "..nRankSubType.." nServerKey = "..nServerKey)
|
|
|
+ local tRankData = MiddleCommonRank_GetRankDataByType(nRankType, nRankSubType, nServerKey)
|
|
|
+ if tRankData then
|
|
|
+ local tMsgData = InnerMsg.wl.WL_COMMERCE_SEND_HUMAN_PRIZE
|
|
|
+ for nRank, v in ipairs(tRankData.rank2data) do
|
|
|
+ if type(v) == "table" then
|
|
|
tMsgData.nRank = nRank
|
|
|
tMsgData.uuid = v.uuid
|
|
|
local nSrcFD = MiddleManager.getFDBySvrIndex(v.nSrcServerID)
|
|
|
if nSrcFD then
|
|
|
+ print("[MiddleCommonRank_SendHumanRankPrize] nRank = "..nRank.." uuid = "..v.uuid.." nSrcServerID = "..v.nSrcServerID)
|
|
|
InnerMsg.sendMsg(nSrcFD, tMsgData)
|
|
|
else
|
|
|
- print("[MiddleCommonRank_ServerMailOk] 获取不到对应服务器的FD nSrcServerID = "..v.nSrcServerID)
|
|
|
+ print("[MiddleCommonRank_SendHumanRankPrize] 获取不到对应服务器的FD nSrcServerID = "..v.nSrcServerID)
|
|
|
end
|
|
|
end
|
|
|
end
|
|
|
+ else
|
|
|
+ print("[MiddleCommonRank_SendHumanRankPrize] 不存在对应的个人排行榜数据 nRankType = "..nRankType.." nRankSubType = "..nRankSubType.." nServerKey = "..nServerKey)
|
|
|
+ end
|
|
|
+
|
|
|
+ print("[MiddleCommonRank_SendHumanRankPrize] 开始处理对应的个人排行榜奖励完成")
|
|
|
+
|
|
|
+end
|
|
|
+
|
|
|
+-- 服务器发送全服邮件结束
|
|
|
+function MiddleCommonRank_ServerMailOk(msg)
|
|
|
+ -- 先获取对应配置ID,再获取最小的ID
|
|
|
+ local nConfServerID = MiddleConnect.MiddleConnect_TrueServerID2ConfServerID(msg.nSrcServerID)
|
|
|
+ local nServerKey, nMaxServerID = MiddleConnect.MiddleConnect_GetWarZoneServer(nConfServerID)
|
|
|
+
|
|
|
+ if not MIDDLE_SENDSERVER_MAIL[nServerKey] then
|
|
|
+ MIDDLE_SENDSERVER_MAIL[nServerKey] = 1
|
|
|
+ print("[MiddleCommonRank_ServerMailOk] 延迟处理个人邮件奖励 nServerKey = "..nServerKey)
|
|
|
+ -- 延迟处理对应个人排行榜奖励
|
|
|
+ Timer.addLater(10, MiddleCommonRank_SendHumanRankPrize, CommonDefine.COMMONRANK_TYPE_SERVERCOMMERCE, CommonDefine.COMMONRANK_SUB_TYPE_SERVERCOMMERCE_HUMAN, nServerKey)
|
|
|
end
|
|
|
end
|
|
|
|
|
|
@@ -738,18 +756,19 @@ function MiddleCommonRank_ClearRank(msg)
|
|
|
local nConfServerID = MiddleConnect.MiddleConnect_TrueServerID2ConfServerID(msg.nSrcServerID)
|
|
|
local nServerKey = MiddleConnect.MiddleConnect_GetWarZoneServer(nConfServerID)
|
|
|
|
|
|
- MiddleCommonRank_ResertCacheData(CommonDefine.COMMONRANK_TYPE_SERVERCOMMERCE, CommonDefine.COMMONRANK_SUB_TYPE_SERVERCOMMERCE_SERVER, nServerKey)
|
|
|
- MiddleCommonRank_ResertCacheData(CommonDefine.COMMONRANK_TYPE_SERVERCOMMERCE, CommonDefine.COMMONRANK_SUB_TYPE_SERVERCOMMERCE_HUMAN, nServerKey)
|
|
|
+ MiddleCommonRank_ResertCacheData(msg.nRankType, msg.nRankSubType, nServerKey)
|
|
|
+ print("[MiddleCommonRank_ClearRank] 清理排行榜开始 nRankType = "..msg.nRankType.." nRankSubType = "..msg.nRankSubType.." nServerKey = "..nServerKey)
|
|
|
+ MiddleRankQueryByRankType.nRankType = msg.nRankType
|
|
|
+ MiddleRankQueryByRankType.nRankSubType = msg.nRankSubType
|
|
|
+ MiddleRankQueryByRankType.nServerKey = nServerKey
|
|
|
|
|
|
- MiddleRankQueryForData.nRankType = CommonDefine.COMMONRANK_TYPE_SERVERCOMMERCE
|
|
|
- MiddleRankQueryForData.nRankSubType = CommonDefine.COMMONRANK_SUB_TYPE_SERVERCOMMERCE_SERVER
|
|
|
- MiddleRankQueryForData.nServerKey = nServerKey
|
|
|
-
|
|
|
- LuaMongo.find(DB.db_middle_rank, MiddleRankQueryForData)
|
|
|
- local tData = {}
|
|
|
+ LuaMongo.find(DB.db_middle_rank, MiddleRankQueryByRankType)
|
|
|
+ local tData = {}
|
|
|
if not LuaMongo.next(tData) then
|
|
|
+ print("[MiddleCommonRank_ClearRank] 不存在对应的数据")
|
|
|
return
|
|
|
end
|
|
|
|
|
|
- LuaMongo.remove(DB.db_middle_rank, MiddleRankQueryForData)
|
|
|
+ LuaMongo.remove(DB.db_middle_rank, MiddleRankQueryByRankType)
|
|
|
+ print("[MiddleCommonRank_ClearRank] 清理排行榜数据完成")
|
|
|
end
|