using Sog; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Sog; using ProtoCSStruct; using MySql.Data.MySqlClient; namespace Operation { class PlaydataOp { public static void OnGetPlayDataOpReq(uint remoteAppID, StructPacket packet, DBOperator dbOperator) { ref var req = ref packet.GetMessage(); TraceLog.Debug("PlaydataOp.OnGetPlayDataOpReq - uid:{0}, currentId:{1}", req.Uid, req.CurrentId); var currentMaxId = dbOperator.DBSelectMaxIdPlayerOp(); if(currentMaxId == req.CurrentId) { SSPlayDataOpRes res = new SSPlayDataOpRes(); res.Uid = req.Uid; OperationServerUtils.GetPacketSender().SendToServerByID(remoteAppID, (int)SSGameMsgID.PlaydataOpRes , ref res, packet.ObjectID, packet.Header.ServerID); return; } List retList = dbOperator.DBSelectPlayOpData(req.Uid, req.CurrentId); if(retList.Count > 0) { SSPlayDataOpRes res = new SSPlayDataOpRes(); for (int i = 0; i < retList.Count; i++) { var item = retList[i]; res.Uid = req.Uid; res.MaxId = item.Id; res.OpData.Add(ref item); if ((i + 1)% res.OpData.GetMaxCount() == 0 || (i + 1) == retList.Count) { OperationServerUtils.GetPacketSender().SendToServerByID(remoteAppID, (int)SSGameMsgID.PlaydataOpRes, ref res, packet.ObjectID, packet.Header.ServerID); res.Clear(); res = new SSPlayDataOpRes(); } } } else { SSPlayDataOpRes res = new SSPlayDataOpRes(); res.Uid = req.Uid; res.MaxId = currentMaxId; OperationServerUtils.GetPacketSender().SendToServerByID(remoteAppID, (int)SSGameMsgID.PlaydataOpRes , ref res, packet.ObjectID, packet.Header.ServerID); } } } }