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.

162 lines
6.2 KiB

1 month ago
using System.Collections.Generic;
using System.Linq;
using LitJson;
using SimpleHttpServer;
using ProtoCSStruct;
using Sog;
namespace Operation
{
[MenuMapping(refc = typeof(ServerMonitor))]
public class Website
{
[RequestMapping("常用系统设置", PermissionCode.WEBSITE_SELECT, toLog: false, isMenu = true)]
public static int OnSelectWebsiteHttpReq(string httpApiCmd, JsonData jsonData, HttpResponse rsp,
HttpRequest request, HttpQueryParams query, uint httpContextId)
{
TraceLog.Trace("Website.OnSelectWebsiteHttpReq url {0} ,param count {1} ,httpContextId {2}", request.Url,
query.Count, httpContextId);
var operationServerData = OperationServerUtils.GetOperationServerData();
jsonData["code"] = 0;
JsonData data = new JsonData();
data["chatId"] = operationServerData.m_operationWebsite.ChatId;
data["dailySendTime"] = operationServerData.m_operationWebsite.DailySendTime;
data["oldPlayerReamId"] = operationServerData.m_operationWebsite.OldPlayerRealmId;
var gmUserList = new List<long>();
var uids = operationServerData.m_operationWebsite.GmUid;
for (int i = 0; i < uids.Count; i++)
{
var uid = uids[i];
gmUserList.Add(uid);
}
data["gmUid"] = string.Join(",", gmUserList);
jsonData["data"] = data;
return 0;
}
[RequestMapping("更新系统设置", PermissionCode.WEBSITE_UPDATE, toLog: true)]
public static int OnUpdateWebsiteHttpReq(string httpApiCmd, JsonData jsonData, HttpResponse rsp,
HttpRequest request, HttpQueryParams query, uint httpContextId)
{
PlayerPresetOp.UpdateVersion();
TraceLog.Trace("Website.OnSelectWebsiteHttpReq url {0} ,param count {1} ,httpContextId {2}", request.Url,
query.Count, httpContextId);
ref var operationServerData = ref OperationServerUtils.GetOperationServerData().m_operationWebsite;
var chatId = query.GetValue("chatId").Toint32();
var dailySendTime = query.GetValue("dailySendTime").Toint32();
var oldPlayerRealmId = query.GetValue("oldPlayerRealmId").Toint32();
var gmUids = query.GetValue("gmUid");
operationServerData.ChatId = chatId;
operationServerData.DailySendTime = dailySendTime;
operationServerData.OldPlayerRealmId = oldPlayerRealmId;
var gmUIdList = gmUids.Split(",");
List<long> gmUIds = new List<long>();
foreach (var uid in gmUIdList)
{
if (string.IsNullOrEmpty(uid))
{
continue;
}
bool succ = long.TryParse(uid, out long UID);
if (!succ)
{
continue;
}
gmUIds.Add(UID);
}
operationServerData.GmUid.Clear();
foreach (var uid in gmUIds)
{
operationServerData.GmUid.Add(uid);
}
WebsiteSvc.Commit();
jsonData["code"] = 0;
return 0;
}
//关于功能的一个说明映射
private static readonly Dictionary<FeatureSwitch, string> FeatureMappings = new()
{
{ FeatureSwitch.ChatImport, "聊天入口" },
{ FeatureSwitch.CDKImport, "兑换码" },
};
[RequestMapping("功能开关", PermissionCode.FEATURE_SELECT, toLog: false, isMenu = true)]
public static int OnSelectFeatureHttpReq(string httpApiCmd, JsonData jsonData, HttpResponse rsp,
HttpRequest request, HttpQueryParams query, uint httpContextId)
{
TraceLog.Trace("Website.OnSelectFeatureHttpReq url {0} ,param count {1} ,httpContextId {2}", request.Url,
query.Count, httpContextId);
var operationServerData = OperationServerUtils.GetOperationServerData();
JsonData data = new JsonData();
var featureData = operationServerData.m_operationWebsite.FeatureSwitch;
foreach (var feature in FeatureMappings)
{
var index = -1;
for (var i = 0; i < featureData.Count; i++)
{
if (featureData[i].Id == (int)feature.Key)
{
index = i;
}
}
var value = 0;
if (index > -1)
{
value = featureData[index].Value;
}
var item = new JsonData();
item["feature"] = (int)feature.Key;
item["name"] = feature.Value;
item["status"] = value;
data.Add(item);
}
jsonData["data"] = data;
return 0;
}
[RequestMapping("更新功能开关", PermissionCode.FEATURE_UPDATE, toLog: true, isMenu = false)]
public static int OnUpdateFeatureHttpReq(string httpApiCmd, JsonData jsonData, HttpResponse rsp,
HttpRequest request, HttpQueryParams query, uint httpContextId)
{
TraceLog.Trace("Website.OnUpdateFeatureHttpReq url {0} ,param count {1} ,httpContextId {2}", request.Url,
query.Count, httpContextId);
ref var operationServerData = ref OperationServerUtils.GetOperationServerData().m_operationWebsite;
var feature = query.GetValue("feature").Toint32();
ref var featureSwitch = ref operationServerData.FeatureSwitch;
var index = -1;
for (var i = 0; i < featureSwitch.Count; i++)
{
if (featureSwitch[i].Id != feature) continue;
index = i;
break;
}
if (index > -1)
{
featureSwitch[index].Value = featureSwitch[index].Value == 0 ? 1 : 0;
}
else
{
//没有一定是打开呗
featureSwitch.Add(new IDValue32() { Id = feature, Value = 1 });
}
WebsiteSvc.Commit();
return 0;
}
}
}