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(); 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 gmUIds = new List(); 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 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; } } }