using LitJson; using ProtoCSStruct; using Sog; using System; using SimpleHttpServer; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Operation { internal class GMReward { [RequestMapping("reward测试", PermissionCode.PERMISSION_NONE, isMenu: false, toLog: false,ignored: true)] public static int OnReward(string httpApiCmd, JsonData jsonData, HttpResponse rsp, HttpRequest request, HttpQueryParams query, uint httpContextId) { TraceLog.Trace("GMReward.OnReward Url{0},param count {1}, httpContextId {2}", request.Url, query.Count, httpContextId); string rewardId = query.GetValue("rewardId"); string times = query.GetValue("times"); string rid = query.GetValue("rid"); long objectId = 0; rsp.IsWaitFor = true; SSGMReward req = new SSGMReward(); req.Id = httpContextId; req.Reward.SetString(rewardId); req.Times = int.Parse(times); req.Rid = long.Parse(rid); objectId = req.Rid; OperationServerUtils.SendToWorld((int)SSGameMsgID.Reward, ref req, objectId, 0, ""); return 0; } public static void OnRewardRes(uint serverId, StructPacket packet) { HttpRequestInfo m_request = null; try { ref var res = ref packet.GetMessage(); var id = res.Id; TraceLog.Debug("GMReward.OnRewardRes uid {0} ", id); m_request = OperationServer.m_httpService.m_requestList.Find(f => f.Http.id == id); LitJson.JsonData builder = new LitJson.JsonData(); HttpQueryParams queryParams = new HttpQueryParams(m_request.Http.httpRequest.Url); //OnServerMonitorMsg(id, builder, m_request.Http.httpResponse, m_request.Http.httpRequest, queryParams, // ref res); m_request.Http.httpResponse.ContentAsUTF8 = res.Json.GetString(); } catch (Exception ex) { TraceLog.Error("GMReward.OnRewardRes Error Msg {0}", ex.Message); } finally { if (m_request != null) { m_request.ProcessEnd = true; } } } public static void OnServerMonitorMsg(uint id, JsonData payload, HttpResponse rsp, HttpRequest request, HttpQueryParams query, ref SSGMRewardRes res) { rsp.IsWaitFor = false; payload["type"] = 0; // 0标准json 显示。1:类Json显示,3:表格显示 payload["code"] = 0; payload["rewardId"] = res.Reward.GetString(); payload["times"] = res.Times; payload["rid"] = res.Rid; payload["res"] = res.Json.GetString(); } } }