You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

155 lines
5.3 KiB

1 month ago
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Sog;
using ProtoCSStruct;
namespace GameDB
{
public static class RankOp
{
public static void OnQueryRankReq(uint remoteAppID, StructPacket packet, GameDBOperator dbOperator)
{
ref SSQueryRankDbReq req = ref packet.GetMessage<SSQueryRankDbReq>();
TraceLog.Trace("RankOp.OnQueryRankReq rankId {0} RealmId {1} groupId {2}"
, req.RankId, req.RealmId, req.GroupId);
var res = new SSQueryRankDbRes
{
RankId = req.RankId,
RealmId = req.RealmId,
GroupId = req.GroupId,
BeginTime = req.BeginTime,
};
bool ret = dbOperator.QueryGameDbRank(req.RankId, req.RealmId, req.GroupId, (int)req.BeginTime, ref res.Data);
if (ret == false)
{
TraceLog.Error("RankOp.OnQueryRankReq failed, rankId {0} realmId {1} groupId {2}"
, req.RankId, req.RealmId, req.GroupId);
return;
}
TraceLog.Trace("RankOp.OnQueryRankReq succ, rankId {0} realmId {1} groupId {2}"
, req.RankId, req.RealmId, req.GroupId);
GameDBServerUtils.GetPacketSender()
.SendToServerByID(remoteAppID, (int)SSGameMsgID.QueryRankDbRes, ref res, 0);
}
public static void OnSaveRankReq(uint remoteAppID, StructPacket packet, GameDBOperator dbOperator)
{
ref SSSaveRankDbReq req = ref packet.GetMessage<SSSaveRankDbReq>();
TraceLog.Trace("RankOp.OnSaveRankReq rankId {0} RealmId {1} groupId {2}"
, req.RankId, req.RealmId, req.GroupId);
var res = new SSSaveRankDbRes
{
RankId = req.RankId,
RealmId = req.RealmId,
GroupId = req.GroupId,
DataSeq = req.DataSeq,
BeginTime = req.BeginTime,
Ret = 0,
};
bool ret = dbOperator.ReplaceGameRank(req.RankId, req.RealmId, req.GroupId, (int)req.BeginTime, ref req.Data);
if (!ret)
{
res.Ret = -1;
TraceLog.Error("RankOp.OnSaveRankReq failed, rankId {0} realmId {1} groupId {2}"
, req.RankId, req.RealmId, req.GroupId);
}
else
{
TraceLog.Trace("RankOp.OnSaveRankReq succ, rankId {0} realmId {1} groupId {2}"
, req.RankId, req.RealmId, req.GroupId);
}
GameDBServerUtils.GetPacketSender()
.SendToServerByID(remoteAppID, (int)SSGameMsgID.SaveRankDbRes, ref res, 0);
}
/// <summary>
///
/// </summary>
/// <param name="remoteAppID"></param>
/// <param name="packet"></param>
/// <param name="dbOperator"></param>
public static void OnQueryActRankDbReq(uint remoteAppID, StructPacket packet, GameDBOperator dbOperator)
{
ref SSQueryActRankDbReq req = ref packet.GetMessage<SSQueryActRankDbReq>();
TraceLog.Trace("RankOp.OnQueryActRankDbReq rankId {0} RealmId {1} "
, req.ActRankId, req.RealmId);
var res = new SSQueryActRankDbRes()
{
RealmId = req.RealmId,
ActRankId = req.ActRankId
};
var ret = dbOperator.QueryActRank(ref req, ref res);
res.Ret = ret;
if (ret < 0)
{
TraceLog.Error("RankOp.OnQueryActRankDbReq failed, rankId {0} realmId {1}"
, req.ActRankId, req.RealmId);
return;
}
TraceLog.Trace("RankOp.OnQueryActRankDbReq succ, rankId {0} realmId {1}"
, req.ActRankId, req.RealmId);
GameDBServerUtils.GetPacketSender()
.SendToServerByID(remoteAppID, (int)SSGameMsgID.QueryActRankDbRes, ref res, 0);
}
/// <summary>
///
/// </summary>
/// <param name="remoteAppID"></param>
/// <param name="packet"></param>
/// <param name="dbOperator"></param>
public static void OnSaveActRankDataReq(uint remoteAppID, StructPacket packet, GameDBOperator dbOperator)
{
ref SSSaveActRankDataReq req = ref packet.GetMessage<SSSaveActRankDataReq>();
TraceLog.Trace("RankOp.OnSaveActRankDataReq rankId {0} RealmId {1}"
, req.ActRankId, req.RealmId);
var res = new SSSaveActRankDataRes
{
ActRankId = req.ActRankId,
RealmId = req.RealmId,
};
bool ret = dbOperator.ReplaceActRank(ref req);
if (!ret)
{
TraceLog.Error("RankOp.OnSaveActRankDataReq failed, rankId {0} realmId {1} "
, req.ActRankId, req.RealmId);
}
else
{
res.SuccessDataSeq = req.DataSeq;
TraceLog.Trace("RankOp.OnSaveActRankDataReq succ, rankId {0} realmId {1} "
, req.ActRankId, req.RealmId);
}
GameDBServerUtils.GetPacketSender()
.SendToServerByID(remoteAppID, (int)SSGameMsgID.SaveActRankDataRes, ref res, 0);
}
}
}