using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Threading; using Sog; using LitJson; using SimpleHttpServer; using ProtoCSStruct; using MySql.Data.MySqlClient; using System.Text; using System.Net; using System.IO; namespace Operation { [MenuMapping(refc = typeof(PlayerInfoOp))] public class SelectAccount { //收到回包时调用这个 public static void OnResMsg(uint id, JsonData jsondata, HttpResponse rsp, HttpRequest request, HttpQueryParams query, ref SSGmQueryUserAccountInfoRes res) { if (string.IsNullOrEmpty(res.AccountId.GetString())) { jsondata["ret"] = 1; return; } jsondata["ret"] = 0; var time = res.CreateTime; DateTime dateTime = AppTime.ConvertUnixTimeToDateTime((long)time * 1000); var timeStr = dateTime.ToString("yyyy-MM-dd HH:mm:ss"); JsonData roleList = new JsonData(); for (int i = 0; i < res.RoleList.Count; i++) { var role = res.RoleList.Get(i); JsonData roleData = new JsonData(); roleData["realmId"] = (int)role.Realm; roleData["uid"] = (int)role.Uid; roleData["nick"] = role.Nick.GetString(); roleData["icon"] = role.Icon.GetString(); roleData["level"] = role.Level; roleData["accountId"] = res.AccountId.GetString(); roleData["IpAddr"] = NetUtils.IpNumToAddr(res.CreateIpAddr); roleData["CreateTime"] = timeStr; roleData["Gender"] = res.Gender.ToString(); roleData["Channel"] = res.Channel.ToString(); roleData["ChannelId"] = res.ChannelId.ToString(); roleData["CreateDeviceId"] = res.CreateDeviceId.ToString(); roleData["LastLoginRealm"] = res.LastLoginRealm.ToString(); roleData["ExData"] = res.ExData.ToString(); roleList.Add(roleData); } jsondata["data"] = roleList; rsp.IsWaitFor = false; TraceLog.Trace("SelectAccount.OnResMsg success, uid {0} pay count {1}", id, res.Nick); return; } [RequestMapping("账号查询", PermissionCode.SELECT_ACCOUNT_INFO, true)] public static int OnSelectAccountInfoHttpReq(string httpApiCmd, JsonData jsonData, HttpResponse rsp, HttpRequest request, HttpQueryParams query, uint httpContextId) { try { TraceLog.Trace("SelectAccount.DoSelect Url{0},param count {1}", request.Url, query.Count); string Account = query.GetValue("Account"); int AccountType = query.GetValue("AccountType").Toint32(0); SSGmQueryUserAccountInfoReq req = new SSGmQueryUserAccountInfoReq(); req.Id = httpContextId; req.Account.SetString(Account); req.AccountType = AccountType; //发送消息 OperationServerUtils.SendToDBServer((int)SSGameMsgID.GmQueryUserAccountinfoReq, ref req, 0, 0); rsp.IsWaitFor = true; } catch (Exception ex) { TraceLog.Error("SelectAccount.OnSelectAccountInfoHttpReq Error Msg {0}", ex.Message); } return 0; } } }