using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using LitJson; public class OperationLogCollect : Singleton { // const string url = "http://xssgcenter.secondworld.net.cn:11000/event_receiver?"; // public void RecordLauchEvent(int _step) // { // return; // #if !UNITY_EDITOR // if (VersionConfig.Get().versionAuthority == VersionAuthority.Release) // { // var tables = new Dictionary(); // tables["OperatorID"] = VersionConfig.Get().appId; // tables["RegionName"] = "data"; // tables["EventID"] = 9001.ToString(); // tables["ProductID"] = VersionConfig.Get().gameId; // tables["Device"] = SystemInfo.deviceName; // tables["DeviceFlag"] = ynmbxxjUtil.Instance.Device.uniqueID; // tables["IP"] = DeviceUtility.GetIp(); // tables["DeviceFlag"] = DeviceUtility.GetDeviceUniquenessIdentify(); // tables["Flag"] = "1001"; // tables["Time"] = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // tables["Step"] = _step.ToString(); // HttpRequest.Instance.RequestHttpGet(StringUtility.Concat(url, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType); // } // #endif // } // public void RecordEvent(int _step, uint coin = 0) // { // return; // #if !UNITY_EDITOR // if (VersionConfig.Get().versionAuthority == VersionAuthority.Release) // { // var tables = new Dictionary(); // tables["OperatorID"] = VersionConfig.Get().appId; // tables["RegionName"] = "data"; // tables["AccountID"] = ynmbxxjUtil.Instance.FreePlatformInfo == null ? "" : ynmbxxjUtil.Instance.FreePlatformInfo.account; // tables["EventID"] = 9001.ToString(); // tables["ProductID"] = VersionConfig.Get().gameId; // tables["Device"] = SystemInfo.deviceName; // tables["IP"] = DeviceUtility.GetIp(); // tables["DeviceFlag"] = ynmbxxjUtil.Instance.Device.uniqueID; // tables["Flag"] = VersionConfig.Get().clientPackageFlag; // tables["Time"] = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // tables["Step"] = _step.ToString(); // if (coin != 0) // { // tables["Level"] = coin.ToString(); // } // string _content = StringUtility.Concat(url, HttpRequest.HashtablaToString(tables)); // HttpRequest.Instance.RequestHttpGet(_content, HttpRequest.defaultHttpContentType); // } // #endif // } // bool recordedDeviceDetail = false; // public void RecordDeviceDetails() // { // return; // #if !UNITY_EDITOR // if (VersionConfig.Get().versionAuthority != VersionAuthority.Release) // { // return; // } // if (!recordedDeviceDetail) // { // var tables = new Dictionary(); // tables["OperatorID"] = VersionConfig.Get().appId; // tables["RegionName"] = StringUtility.Concat("s" + ServerListCenter.Instance.currentServer.region_flag); // tables["EventID"] = 1102.ToString(); // tables["ProductID"] = VersionConfig.Get().gameId; // tables["Time"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // tables["IP"] = DeviceUtility.GetIp(); // tables["AccountID"] = ModelCenter.Instance.GetModel().sdkLoginResult.account; // tables["SessionID"] = ""; // var device = new Dictionary(); // device["IMEI"] = DeviceUtility.GetDeviceUniquenessIdentify(); // device["DeviceFlag"] = ynmbxxjUtil.Instance.Device.uniqueID; // #if UNITY_ANDROID // device["IMEI2"] = ynmbxxjUtil.Instance.Device.uniqueID; // #endif // device["Brand"] = DeviceUtility.GetDeviceName(); // device["MI5"] = DeviceUtility.GetDeviceModel(); // tables["Device"] = JsonMapper.ToJson(device); // var runtime = new Dictionary(); // runtime["os_version"] = DeviceUtility.GetDeviceOSLevel(); // tables["Runtime"] = JsonMapper.ToJson(runtime); // tables["Version"] = StringUtility.Concat(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex); // HttpRequest.Instance.RequestHttpGet(StringUtility.Concat(url, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType); // } // recordedDeviceDetail = true; // #endif // } const string bugReportUrl = "http://xssgcenter.secondworld.net.cn:11000/center/eventreport.php?"; public void BugReport(string _title, string _content) { var tables = new Dictionary(); tables["OperatorID"] = VersionConfig.Get().appId; tables["RegionName"] = "data"; tables["RegionID"] = ServerListCenter.Instance.currentServer.region_flag.ToString(); tables["EventID"] = 9002.ToString(); tables["ProductID"] = VersionConfig.Get().gameId; tables["Time"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); tables["IP"] = DeviceUtility.GetIp(); tables["AccountID"] = LoginManager.Instance.sdkLoginResult.account; tables["Level"] = PlayerDatas.Instance.baseData.LV.ToString(); tables["RoleID"] = PlayerDatas.Instance.baseData.PlayerName; tables["VIPLevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString(); tables["DeviceFlag"] = SDKUtils.Instance.Device.uniqueID; var contentPrefix = StringUtility.Concat("IMEI:", DeviceUtility.GetDeviceUniquenessIdentify(), ";"); contentPrefix = StringUtility.Concat(contentPrefix, "Version:", StringUtility.Concat(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex.ToString(), "-", LoginManager.Instance.hotVersion), Language.Id, ";"); contentPrefix = StringUtility.Concat(contentPrefix, "Brand:", DeviceUtility.GetDeviceName(), ";"); contentPrefix = StringUtility.Concat(contentPrefix, "MI5:", DeviceUtility.GetDeviceModel(), ";"); contentPrefix = StringUtility.Concat(contentPrefix, "os_version:", DeviceUtility.GetDeviceOSLevel(), ";"); tables["Title"] = _title; tables["Content"] = _content; tables["ClientInfo"] = contentPrefix; HttpRequest.Instance.RequestHttpGet(StringUtility.Concat(bugReportUrl, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType); } public void BugReportSys( string _content) { try { var tables = new Dictionary(); tables["OperatorID"] = VersionConfig.Get().appId; tables["RegionName"] = "data"; tables["RegionID"] = "10000"; tables["EventID"] = 9002.ToString(); tables["ProductID"] = VersionConfig.Get().gameId; tables["Time"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); tables["IP"] = DeviceUtility.GetIp(); tables["AccountID"] = "system"; tables["Level"] = "1"; tables["RoleID"] = "system"; tables["VIPLevel"] = "1"; tables["DeviceFlag"] = SDKUtils.Instance.Device.uniqueID; var contentPrefix = StringUtility.Concat("IMEI:", DeviceUtility.GetDeviceUniquenessIdentify(), ";"); contentPrefix = StringUtility.Concat(contentPrefix, "Version:", StringUtility.Concat(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex.ToString(), "-", LoginManager.Instance.hotVersion), Language.Id, ";"); contentPrefix = StringUtility.Concat(contentPrefix, "Brand:", DeviceUtility.GetDeviceName(), ";"); contentPrefix = StringUtility.Concat(contentPrefix, "MI5:", DeviceUtility.GetDeviceModel(), ";"); contentPrefix = StringUtility.Concat(contentPrefix, "os_version:", DeviceUtility.GetDeviceOSLevel(), ";"); tables["Title"] = "system"; _content = _content.Replace("0000", ""); if (ConfigManager.Instance.isLoadFinished && DTC0102_tagCDBPlayer.playerIdBuf != 0 && LoginManager.Instance.sdkLoginResult != null && !string.IsNullOrEmpty(LoginManager.Instance.sdkLoginResult.account)) { _content = StringUtility.Concat(LoginManager.Instance.sdkLoginResult.account, "@", ServerListCenter.Instance.currentServer.region_flag.ToString(), " ", _content); } tables["Content"] = _content.Substring(0, Math.Min(800, _content.Length)); tables["ClientInfo"] = contentPrefix; HttpRequest.Instance.RequestHttpGet(StringUtility.Concat(bugReportUrl, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType); } catch (System.Exception ex) { Debug.LogError("BugReportSys error" + ex); } } const string chatReportUrl = "http://xssgcenter.secondworld.net.cn:11000/center/eventreport.php?"; public void ChatReport(string content, string channelName, string toPlayer, int chatType) { #if !UNITY_EDITOR bool isFairy = chatType == 3; var tables = new Dictionary(); tables["ProductID"] = VersionConfig.Get().gameId; tables["OperatorID"] = VersionConfig.Get().appId; tables["OperatorName"] = string.Empty; tables["RegionName"] = StringUtility.Concat("s", ServerListCenter.Instance.currentServer.region_flag.ToString()); tables["RegionID"] = ServerListCenter.Instance.currentServer.region_flag.ToString(); tables["EventID"] = 9003.ToString(); tables["Time"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); tables["IP"] = DeviceUtility.GetIp(); tables["ChatChannel"] = channelName; var sdkLoginResult = LoginManager.Instance.sdkLoginResult; tables["AccountID"] = sdkLoginResult == null ? LoginManager.Instance.accountBuf : sdkLoginResult.account; tables["RoleID"] = StringUtility.Concat(isFairy ? UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.FamilyName) : string.Empty, isFairy ? "-" : string.Empty, UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName)); tables["ToRoleID"] = UIHelper.ServerStringTrim(toPlayer); tables["Level"] = PlayerDatas.Instance.baseData.LV.ToString(); tables["VIPLevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString(); tables["Content"] = UrlEncode(UIHelper.TrimContentToServer(content)); tables["DeviceFlag"] = SDKUtils.Instance.Device == null ? string.Empty : SDKUtils.Instance.Device.uniqueID; var chatStr = StringUtility.Concat(chatReportUrl, HttpRequest.HashtablaToString(tables)); HttpRequest.Instance.RequestHttpGet(chatStr, HttpRequest.defaultHttpContentType); #endif } /// /// 自定义 URL 编码函数(防止 AOT 裁剪) /// public string UrlEncode(string value) { if (string.IsNullOrEmpty(value)) return string.Empty; System.Text.StringBuilder result = new System.Text.StringBuilder(); foreach (char c in value) { // 不需要编码的字符 if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '-' || c == '_' || c == '.' || c == '~') { result.Append(c); } else if (c == ' ') { // 空格替换为 + result.Append('+'); } else { // 其他字符编码为 %XX 格式 byte[] bytes = System.Text.Encoding.UTF8.GetBytes(c.ToString()); foreach (byte b in bytes) { result.Append('%'); result.Append(b.ToString("X2")); } } } return result.ToString(); } }