using System.Linq; using Sog; using LitJson; using SimpleHttpServer; using ProtoCSStruct; namespace Operation { [MenuMapping(refc = typeof(SendEmail))] public static class SelectActivity { [RequestMapping("活动排期", PermissionCode.ACTIVITY_SEARCH, toLog: false, isMenu = true)] public static int OnSelectActivityHttpReq(string httpApiCmd, JsonData jsonData, HttpResponse rsp, HttpRequest request, HttpQueryParams query, uint httpContextId) { var now = OperationServerUtils.GetTimeSecond(); var dayStartTime = AppTime.GetTodayStartTime(now); //今天开始 var dayEndTime = dayStartTime + AppTime.SECONDS_ADAY; //今天结束 var beginTime = query.GetValue("beginTime", ""); var endTime = query.GetValue("endTime", ""); var reamIds = query.GetValue("realmId", "").Split(","); //查询某个服 var uid = query.GetValue("uid", "0").Toint32(); //查询某个人 if (string.IsNullOrEmpty(beginTime)) { beginTime = AppTime.ConvertUnixTimeToString(dayStartTime, AppTime.TIME_FORMAT_STYLE_SHORT); } var startDate = AppTime.ConvertStringToDateTime(beginTime, AppTime.TIME_FORMAT_STYLE_SHORT); //查询开始时间 if (string.IsNullOrEmpty(endTime)) { endTime = AppTime.ConvertUnixTimeToString(dayEndTime, AppTime.TIME_FORMAT_STYLE_SHORT); } var endDate = AppTime.ConvertStringToDateTime(endTime, AppTime.TIME_FORMAT_STYLE_SHORT); //查询结束时间 var result = new JsonData(); foreach (var kv in ActivityDescMgr.Instance.ItemTable) { var item = new JsonData(); var desc = kv.Value; switch (desc.timeType) { case ActivityTimeType.UnlockTime: { break; } case ActivityTimeType.SeverTime: { if (reamIds.Length == 0) { break; } var mk = OperationServerUtils.GetOperationServerData().m_allRealm; foreach (var reamId in reamIds) { if (string.IsNullOrEmpty(reamId)) { break; } var m = mk[int.Parse(reamId)]; if (m == null) { break; } var openSerTime = m.openTime; var startDay = openSerTime + int.Parse(desc.fixedStartTimeStr) * AppTime.SECONDS_ADAY; var endDay = openSerTime + int.Parse(desc.fixedOverTimeStr) * AppTime.SECONDS_ADAY; var start = AppTime.ConvertUnixTimeToDateTime1(startDay); //活动开始 var end = AppTime.ConvertUnixTimeToDateTime1(endDay); if (startDate < start && end < endDate) //在查询范围之内 { item["id"] = desc.id; item["start"] = AppTime.ConvertUnixTimeToString(startDay, AppTime.TIME_FORMAT_STYLE_SHORT); item["end"] = AppTime.ConvertUnixTimeToString(endDay, AppTime.TIME_FORMAT_STYLE_SHORT); item["name"] = "活动:" + GetName(desc) + "|" + item["start"] + "至" + item["end"]; result.Add(item); } } break; } case ActivityTimeType.FixedTime: { var start = AppTime.ConvertStringToDateTime(desc.fixedStartTimeStr); //活动开始 if (desc.fixedOverTimeStr.Contains("2050")) //排除这种长时间活动,在前端显示没有意义 { break; } var end = AppTime.ConvertStringToDateTime(desc.fixedOverTimeStr); //活动结束 if (startDate < start && end < endDate) //在查询范围之内 { item["id"] = desc.id; item["name"] = "活动:" + GetName(desc) + "|" + desc.fixedStartTimeStr + "至" + desc.fixedOverTimeStr; item["start"] = desc.fixedStartTimeStr; item["end"] = desc.fixedOverTimeStr; result.Add(item); } break; } } } jsonData["data"] = result; return 0; } private static string GetName(ActivityDesc desc) { //@fixme this is not set name default value var name = ""; if (!string.IsNullOrEmpty(name)) { var language = LanguageDescMgr.Instance.GetConfig(name); return desc.id + "_" + language.ZH; } return desc.id + ""; } } }