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.
222 lines
8.6 KiB
222 lines
8.6 KiB
using System;
|
|
using LitJson;
|
|
using ProtoCSStruct;
|
|
using SimpleHttpServer;
|
|
using Sog;
|
|
|
|
namespace Operation
|
|
{
|
|
[MenuMapping(refc = typeof(PlayerInfoOp))]
|
|
public static class PlayerPresetOp
|
|
{
|
|
public static int Version = new Random().Next();
|
|
|
|
[RequestMapping("添加初始化数据", PermissionCode.UPDATE_PLAYER_PRESET, toLog = true)]
|
|
public static int OnInsertPresetHttpReq(string httpApiCmd, JsonData builder, HttpResponse rsp,
|
|
HttpRequest request, HttpQueryParams query, uint httpContextId)
|
|
{
|
|
TraceLog.Trace("PlayerPresetOp.OnInsertPresetHttpReq url {0} ,param count {1} ,httpContextId {2}",
|
|
request.Url, query.Count, httpContextId);
|
|
|
|
string account = OperationServerUtils.GetAccount(query.GetValue("token"));
|
|
string id = query.GetValue("id") ?? "0";
|
|
string realmIds = query.GetValue("realmlist");
|
|
string itemStr = query.GetValue("itemstr");
|
|
string startTime = query.GetValue("start");
|
|
string endTime = query.GetValue("end");
|
|
RepeatedFixedStructString128_10 data = new RepeatedFixedStructString128_10();
|
|
data.Add(id);
|
|
data.Add(account);
|
|
data.Add(realmIds);
|
|
data.Add(itemStr);
|
|
data.Add(startTime);
|
|
data.Add(endTime);
|
|
HttpApiRootHandler.FillHttpApiDbReq2MessageTaskDistributor(httpApiCmd, httpContextId, ref data);
|
|
|
|
rsp.IsWaitFor = true;
|
|
|
|
return 0;
|
|
}
|
|
|
|
public static int DoInsertPreset(string httpApiCmd, SSHttpApiDbReq req, DBOperator dbOperator)
|
|
{
|
|
TraceLog.Trace("PlayerPresetOp.DoInsertPreset HttpContextId {0}", req.HttpContextId);
|
|
|
|
HttpRequestInfo m_request = null;
|
|
LitJson.JsonData builder = new LitJson.JsonData();
|
|
|
|
try
|
|
{
|
|
var httpContextId = req.HttpContextId;
|
|
m_request = OperationServer.m_httpService.m_requestList.Find(f => f.Http.id == httpContextId);
|
|
|
|
if (req.Data.Count < 5)
|
|
{
|
|
TraceLog.Error("PlayerPresetOp.DoInsertPreset param error");
|
|
builder["ret"] = 2;
|
|
builder["msg"] = "参数错误";
|
|
}
|
|
else
|
|
{
|
|
var data = req.Data;
|
|
dbOperator.InsertPreset(int.Parse(data[0].ToString()), data[1].ToString(), data[2].ToString(),
|
|
data[3].ToString(), data[4].ToString(), data[5].ToString());
|
|
builder["ret"] = 0;
|
|
builder["msg"] = "操作成功,等待游戏内处理!";
|
|
UpdateVersion();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
TraceLog.Error("PlayerPresetOp.DoInsertPreset Error Msg {0}", ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (m_request != null)
|
|
{
|
|
m_request.Http.httpResponse.ContentAsUTF8 = builder.ToJson();
|
|
m_request.ProcessEnd = true;
|
|
}
|
|
}
|
|
|
|
TraceLog.Trace("PlayerPresetOp.DoInsertPreset success httpContextId {0}", req.HttpContextId);
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
[RequestMapping("玩家预设信息", PermissionCode.SELECT_PLAYER_PRESET, true)]
|
|
public static int OnSelectPresetHttpReq(string httpApiCmd, JsonData builder, HttpResponse rsp,
|
|
HttpRequest request, HttpQueryParams query, uint httpContextId)
|
|
{
|
|
RepeatedFixedStructString128_10 data = new RepeatedFixedStructString128_10();
|
|
|
|
var id = query.GetValue("id") ?? "0";
|
|
data.Add(id);
|
|
HttpApiRootHandler.FillHttpApiDbReq2MessageTaskDistributor(httpApiCmd, httpContextId, ref data);
|
|
rsp.IsWaitFor = true;
|
|
|
|
return 0;
|
|
}
|
|
|
|
public static int DoSelectPreset(string httpApiCmd, SSHttpApiDbReq req, DBOperator dbOperator)
|
|
{
|
|
TraceLog.Trace("PlayerPresetOp.DoSelectPreset HttpContextId {0}", req.HttpContextId);
|
|
|
|
HttpRequestInfo m_request = null;
|
|
LitJson.JsonData builder = new LitJson.JsonData();
|
|
|
|
try
|
|
{
|
|
var httpContextId = req.HttpContextId;
|
|
m_request = OperationServer.m_httpService.m_requestList.Find(f => f.Http.id == httpContextId);
|
|
builder["ret"] = 0;
|
|
builder["code"] = 0;
|
|
var id = long.Parse(req.Data[0].ToString());
|
|
|
|
builder["data"] = dbOperator.FindAllPreset(id);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
TraceLog.Error("PlayerPresetOp.DoSelectPreset Error Msg {0}", ex.Message);
|
|
}
|
|
|
|
finally
|
|
{
|
|
if (m_request != null)
|
|
{
|
|
m_request.Http.httpResponse.ContentAsUTF8 = builder.ToJson();
|
|
m_request.ProcessEnd = true;
|
|
}
|
|
}
|
|
|
|
TraceLog.Trace("PlayerPresetOp.DoSelectPreset success httpContextId {0}", req.HttpContextId);
|
|
return 0;
|
|
}
|
|
|
|
|
|
[RequestMapping("删除初始化数据", PermissionCode.DELETE_PLAYER_PRESET, toLog = true)]
|
|
public static int OnDeletePresetHttpReq(string httpApiCmd, JsonData builder, HttpResponse rsp,
|
|
HttpRequest request, HttpQueryParams query, uint httpContextId)
|
|
{
|
|
RepeatedFixedStructString128_10 data = new RepeatedFixedStructString128_10();
|
|
var id = query.GetValue("id").Tolong(0);
|
|
if (id == 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
data.Add(id.ToString());
|
|
HttpApiRootHandler.FillHttpApiDbReq2MessageTaskDistributor(httpApiCmd, httpContextId, ref data);
|
|
return 0;
|
|
}
|
|
|
|
public static int DoDeletePreset(string httpApiCmd, SSHttpApiDbReq req, DBOperator dbOperator)
|
|
{
|
|
TraceLog.Trace("PlayerPresetOp.DoSelectPreset HttpContextId {0}", req.HttpContextId);
|
|
|
|
HttpRequestInfo m_request = null;
|
|
LitJson.JsonData builder = new LitJson.JsonData();
|
|
|
|
try
|
|
{
|
|
var httpContextId = req.HttpContextId;
|
|
m_request = OperationServer.m_httpService.m_requestList.Find(f => f.Http.id == httpContextId);
|
|
dbOperator.DeletePreSet(long.Parse(req.Data[0].ToString()));
|
|
UpdateVersion();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
TraceLog.Error("PlayerPresetOp.DoSelectPreset Error Msg {0}", ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (m_request != null)
|
|
{
|
|
m_request.Http.httpResponse.ContentAsUTF8 = builder.ToJson();
|
|
m_request.ProcessEnd = true;
|
|
}
|
|
}
|
|
|
|
TraceLog.Trace("PlayerPresetOp.DoSelectPreset success httpContextId {0}", req.HttpContextId);
|
|
return 0;
|
|
}
|
|
|
|
|
|
public static void OnGetPresetWithRuleReq(uint remoteAppID, StructPacket packet, DBOperator dbOperator)
|
|
{
|
|
ref var req = ref packet.GetMessage<SSSyncPresetDataReq>();
|
|
TraceLog.Debug("MailOp.OnGetPresetWithRuleReq - version:{0}", req.ReqVersion);
|
|
|
|
SSSyncPresetDataRes res = new SSSyncPresetDataRes();
|
|
int reqVersion = req.ReqVersion;
|
|
res.GId = req.GId;
|
|
ref var website = ref OperationServerUtils.GetOperationServerData().m_operationWebsite;
|
|
|
|
res.PresetData.Settings.DelayQuestion = website.DailySendTime;
|
|
res.PresetData.Settings.OldPlayerReamId = website.OldPlayerRealmId;
|
|
res.PresetData.Settings.GmUid = website.GmUid;
|
|
if (reqVersion == Version)
|
|
{
|
|
res.ResVersion = Version;
|
|
res.PresetData.Req = Version;
|
|
OperationServerUtils.GetPacketSender().SendToServerByID(remoteAppID,
|
|
(int)SSGameMsgID.SyncPresetRes, ref res, packet.ObjectID, 0);
|
|
return;
|
|
}
|
|
|
|
PresetData presetData = dbOperator.OnGetPresetWithRule(reqVersion);
|
|
res.ResVersion = Version;
|
|
res.PresetData = presetData;
|
|
res.PresetData.Settings.DelayQuestion = website.DailySendTime;
|
|
res.PresetData.Settings.OldPlayerReamId = website.OldPlayerRealmId;
|
|
res.PresetData.Settings.GmUid = website.GmUid;
|
|
OperationServerUtils.GetPacketSender().SendToServerByID(remoteAppID, (int)SSGameMsgID.SyncPresetRes, ref res, packet.ObjectID, 0);
|
|
}
|
|
|
|
public static void UpdateVersion()
|
|
{
|
|
Version = (int)AppTime.GetNowSysMs();
|
|
}
|
|
}
|
|
}
|