wangguan
2020-12-04 7663d2a2fe0dd97e1933354553827d29d66f3b45
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
using System;
using System.Collections;
using System.Collections.Generic;
using KTGMGemClient;
using LitJson;
using UnityEngine;
 
public class FinalHttp : MonoBehaviour
{
    Action<List<HttpGetInfo>, int, HttpGetInfo> callBack;
    int _limit;
    public void Init(Action<List<HttpGetInfo>, int, HttpGetInfo> ac, int limit)
    {
        isSending = false;
        callBack = ac;
        _limit = limit;
    }
    private JsonData loginData;
    private bool isSending = false;
    void LoadImei()
    {
        if (Application.platform == RuntimePlatform.Android)
        {
            //GetetDeviceIMEI();//获取安卓手机IMEI
 
            GameConfig.Imei = TDAA_SDKManager.Ins.GetDeviceId();//使用设备ID
        }
        else if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer)
        {
            //为了方便测试
            GameConfig.Imei = PlayerPrefs.GetString("GemBattlePlayerNickName");
            Debug.Log("这里是电脑版,直接设置Imei为昵称" + GameConfig.Imei);
        }
 
        Debug.Log("设置imei0:" + GameConfig.Imei);
    }
 
 
    /// <summary>
    /// 
    /// </summary>
    /// <param name="nickname"></param>
    /// <param name="score"></param>
    /// <param name="level"></param>
    public void SendPost(string nickname, int score, int level, string waveInfo)
    {
        LoadImei();
        Debug.Log("开始Post" + nickname);
 
        string url = "http://9377-big-data.sbk-h5.com:8600/users/addrank";
        Dictionary<string, object> keyValues = new Dictionary<string, object>();
        keyValues.Add("username", GameConfig.Imei);
        keyValues.Add("nickname", nickname);
        keyValues.Add("score", score);
        keyValues.Add("level", level);
 
        keyValues.Add("extra", waveInfo);
 
        HttpHelper.Request(this, url, HttpHelper.MethodType.POST, keyValues, delegate (object value)
        {
            if (value != null)
                LoadPostTxt(value.ToString());
            else
            {
                Debug.LogError("连接错误");
                callBack?.Invoke(null, 0, null);
            }
 
        }, HttpHelper.DownloadHanlderType.kHttpTEXT);
 
    }
 
    private void LoadPostTxt(string value)
    {
        Debug.Log(value);
        loginData = JsonMapper.ToObject(value);
        if (loginData["error"].ToString() != "0")
        {
            Debug.Log("失败了");
        }
        else if (loginData["msg"].ToString() == "OK")
        {
            Debug.Log("成功了");
            SendGet();
        }
    }
 
    /// <summary>
    /// 下载排行榜
    /// </summary>
    private void SendGet()
    {
        string url = "http://9377-big-data.sbk-h5.com:8600/users/getrank";//9377-big-data.sbk-h5.com:8600/users/getrank?username=0001&limit=100
        Dictionary<string, object> keyValues = new Dictionary<string, object>();
        keyValues.Add("username", GameConfig.Imei);
        keyValues.Add("limit", _limit);
 
        HttpHelper.Request(this, url, HttpHelper.MethodType.GET, keyValues, delegate (object value)
        {
            if (value != null)
                LoadGetTxt(value.ToString());
            else
            {
                Debug.LogError("连接错误");
                callBack?.Invoke(null, 0, null);
            }
        }, HttpHelper.DownloadHanlderType.kHttpTEXT);
 
    }
 
    private void LoadGetTxt(string value)
    {
        JsonData getData = JsonMapper.ToObject(value);
        int myrank = int.Parse(getData["myrank"].ToString());
        Debug.Log("当前排名:" + myrank);
 
        JsonData mydata = getData["mydata"];
        HttpGetInfo mydataHttpInfo = new HttpGetInfo(mydata);
 
        JsonData rank = getData["rank"];
        List<HttpGetInfo> allHttpGetInfoLis = new List<HttpGetInfo>();
        HttpGetInfo info;
        //string tmpStr;
        foreach (JsonData item in rank)
        {
            info = new HttpGetInfo(item);
            // info.id = int.Parse(item["id"].ToString());
            // info.username = item["username"].ToString();
            // info.nickname = item["nickname"].ToString();
            // info.score = int.Parse(item["score"].ToString());
            // info.level = int.Parse(item["level"].ToString());
 
            // tmpStr = item["extra"].ToString();
            // tmpStr = tmpStr.Remove(0, 1);
            // tmpStr = tmpStr.Remove(tmpStr.Length - 1, 1);
 
            // info.waveInfo = tmpStr;
            // info.create_time = int.Parse(item["create_time"].ToString());
            allHttpGetInfoLis.Add(info);
        }
 
        if (callBack != null)
        {
            callBack(allHttpGetInfoLis, myrank, mydataHttpInfo);
        }
    }
 
}
 
public class HttpGetInfo
{
    public int id;
    public string username;
    public string nickname;
    public int score;
    public int level;
    public JsonData extra;
    public string waveInfo;
    public int create_time;
 
    public HttpGetInfo(JsonData data)
    {
        string tmpStr;
        id = int.Parse(data["id"].ToString());
        username = data["username"].ToString();
        nickname = data["nickname"].ToString();
        score = int.Parse(data["score"].ToString());
        level = int.Parse(data["level"].ToString());
 
        tmpStr = data["extra"].ToString();
        tmpStr = tmpStr.Remove(0, 1);
        tmpStr = tmpStr.Remove(tmpStr.Length - 1, 1);
 
        waveInfo = tmpStr;
        create_time = int.Parse(data["create_time"].ToString());
    }
}