--------------------------------
-- 文件名       :   ServerCommerceActPeakBettleMiddle.lua
-- 文件说明     :   巅峰战场跨服相关
-- 创建时间     :   2025/11/13
-- 创建人       :   WWF
--------------------------------

local Util = require("common.Util")
local MiddleConnect = require("middle.MiddleConnect")
local MiddleManager = require("middle.MiddleManager")
local InnerMsg = require("core.InnerMsg")
local Config = require("Config")
local CommonDB = require("common.CommonDB")
local Log = require("common.Log")
local ServerCommerceActPeakBettle = require("serverCommerce.ServerCommerceActPeakBettle")
local CommonDefine = require("common.CommonDefine")

----------------------------------- 内部操作 ---------------------------

local function PeakBettleMiddle_WriteLog(szLogText)
    Log.write(Log.LOGID_OSS_COMMON_ACT, szLogText)
end

--------------------------- 跨服请求 ------------------------------

-- 普通服请求跨服排名数据(普通->中心)
function LW_PEAK_BATTLEFIELD_QUERY_RANK_O2C(fd, msg)
    if _G.is_middle ~= true then return end
    
    print("[LW_PEAK_BATTLEFIELD_QUERY_RANK_O2C] 收到普通服请求跨服排名数据 nSrcServerID = "..msg.nSrcServerID.." nRankType = "..msg.nRankType)
    
    -- 转发到数据服（如果需要跨服排名）
    -- 这里可以根据实际需求实现跨服排名逻辑
    -- 暂时先记录日志
    PeakBettleMiddle_WriteLog("[LW_PEAK_BATTLEFIELD_QUERY_RANK_O2C] 收到跨服排名请求")
end

-- 请求跨服排名数据(中心->数据服)
function WL_PEAK_BATTLEFIELD_QUERY_RANK_C2D(fd, msg)
    print("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2D] 数据服收到跨服排名请求")
    
    -- 这里需要实现从数据库获取跨服排名数据的逻辑
    -- 暂时先记录日志
    PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2D] 数据服收到跨服排名请求")
end

-- 请求跨服排名数据(数据服->中心)
function LW_PEAK_BATTLEFIELD_QUERY_RANK_D2C(fd, msg)
    if _G.is_middle ~= true then return end
    
    print("[LW_PEAK_BATTLEFIELD_QUERY_RANK_D2C] 数据服回复跨服排名数据")
    
    -- 转发到普通服
    local nSrcFD = MiddleManager.getFDBySvrIndex(msg.nSrcServerID)
    if nSrcFD then
        local tMsgData = InnerMsg.wl.WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O
        tMsgData.nFirst = msg.nFirst
        tMsgData.nIsEnd = msg.nIsEnd
        tMsgData.tRankInfo = msg.tRankInfo
        InnerMsg.sendMsg(nSrcFD, tMsgData)
    end
end

-- 获取到跨服排名数据(中心->普通)
function WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O(fd, msg)
    print("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O] 普通服收到跨服排名数据")
    
    -- 这里可以调用 ServerCommerceActPeakBettle 的处理函数
    -- 暂时先记录日志
    PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O] 普通服收到跨服排名数据")
end

-- 普通服通知排名变化(普通->中心)
function LW_PEAK_BATTLEFIELD_RANK_CHANGE_O2C(fd, msg)
    if _G.is_middle ~= true then return end
    
    print("[LW_PEAK_BATTLEFIELD_RANK_CHANGE_O2C] 收到排名变化通知 uuid = "..msg.uuid.." nRank = "..msg.nRank)
    
    -- 转发到数据服
    -- 这里可以根据实际需求实现跨服排名更新逻辑
    PeakBettleMiddle_WriteLog("[LW_PEAK_BATTLEFIELD_RANK_CHANGE_O2C] 收到排名变化通知")
end

-- 排名变化通知(中心->数据服)
function WL_PEAK_BATTLEFIELD_RANK_CHANGE_C2D(fd, msg)
    print("[WL_PEAK_BATTLEFIELD_RANK_CHANGE_C2D] 数据服收到排名变化通知")
    
    -- 这里需要实现更新跨服排名数据的逻辑
    PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_RANK_CHANGE_C2D] 数据服收到排名变化通知")
end

-- 发送排名奖励(数据服->中心)
function LW_PEAK_BATTLEFIELD_SEND_RANK_REWARD_D2C(fd, msg)
    if _G.is_middle ~= true then return end
    
    print("[LW_PEAK_BATTLEFIELD_SEND_RANK_REWARD_D2C] 数据服发送排名奖励 uuid = "..msg.uuid.." nRank = "..msg.nRank)
    
    -- 转发到普通服
    local nSrcFD = MiddleManager.getFDBySvrIndex(msg.nServerID)
    if nSrcFD then
        local tMsgData = InnerMsg.wl.WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O
        tMsgData.uuid = msg.uuid
        tMsgData.nRank = msg.nRank
        tMsgData.tReward = msg.tReward
        InnerMsg.sendMsg(nSrcFD, tMsgData)
    end
end

-- 发送排名奖励(中心->普通)
function WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O(fd, msg)
    print("[WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O] 普通服收到排名奖励 uuid = "..msg.uuid)
    
    -- 调用 ServerCommerceActPeakBettle 的处理函数发送奖励
    -- 暂时先记录日志
    PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O] 普通服收到排名奖励")
end

