CutePet/Assets/Scripts/BeginScene/NetMgr.cs
2024-10-25 11:10:04 +08:00

550 lines
18 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine;
using UnityEngine.Networking;
public class NetMgr
{
//单列
private static NetMgr instance=new NetMgr();
public static NetMgr Instance => instance;
private string Url= "http://192.168.2.24:8080/";
//登录获取玩家数据
private string lpginPlayerDataUrl = "http://192.168.2.24:8080/register";
//获取一个玩家模板
private string playerTempUrl = "http://192.168.2.24:8080/fh";
//改变玩家数据
private string changePlayerDataUrl = "http://192.168.2.24:8080/change_player_data";
//获取排行榜数据
private string rankPostUrl = "http://192.168.2.24:8080/get_user_Scends";
//获取总排行榜数据
private string rankAllGetUrl = "http://192.168.2.24:8080/get_allrank_Scends";
//获取所有关卡
private string allLevUrl = "http://192.168.2.24:8080/get_allLev_name";
//获取关卡萌宠信息
private string levPetInfoUrl = "http://192.168.2.24:8080/getLevDataById";
//提现记录上传
private string goldRealPostUrl = "http://192.168.2.24:8080/uploadGoldRealRecord";
//提现记录获取
private string goldRealGetUrl = "http://192.168.2.24:8080/getGoldRealRecord";
//分数上传
private string scoreUploadPostUrl = "http://192.168.2.24:8080/uploadScore";
//公告信息获取
private string noticeMsgUrl = "http://192.168.2.24:8080/getAnnouncement";
//邮件
private string mailUrl = "http://192.168.2.24:8080/claimReward";
//邀请
private string inviteUrl = "http://192.168.2.24:8080/HandleInvite";
//意见反馈
private string ideaUrl = "http://192.168.2.24:8080/get_idea_msg";
private NetMgr()
{
}
/// <summary>
/// 登录获取的玩家数据
/// </summary>
/// <returns></returns>
public IEnumerator PlayerDataPost(LoginMsg msg)
{
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
using (UnityWebRequest req = new UnityWebRequest(lpginPlayerDataUrl, "POST"))
{
// 发送请求并等待响应
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
req.downloadHandler = new DownloadHandlerBuffer();
req.SetRequestHeader("Content-Type", "application/json");
yield return req.SendWebRequest();
// 检查请求结果
if (req.result == UnityWebRequest.Result.Success)
{
// 处理服务器响应
string str = req.downloadHandler.text;
GameDataMgr.Instance.player = JsonMgr.Instance.LoadData<PlayerData>(str);
}
else
{
Debug.LogError($"Error: {req.error}"); // 打印错误信息
}
}
}
/// <summary>
/// 获取一个玩家模板
/// </summary>
/// <returns></returns>
public IEnumerator PlayerTempGet()
{
using (UnityWebRequest req = UnityWebRequest.Get(playerTempUrl))
{
// 发送请求并等待响应
req.SetRequestHeader("Content-Type", "application/json");
yield return req.SendWebRequest();
// 检查请求结果
if (req.result == UnityWebRequest.Result.Success)
{
// 处理服务器响应
string str = req.downloadHandler.text;
GameDataMgr.Instance.playerTemp = JsonMgr.Instance.LoadData<PlayerData>(str);
}
else
{
Debug.LogError($"Error: {req.error}"); // 打印错误信息
}
}
}
/// <summary>
/// 玩家数据改变发送消息
/// </summary>
/// <returns></returns>
public IEnumerator ChangeDataPost(PlayerData player)
{
string strMsg = JsonMgr.Instance.SaveData(player);
using (UnityWebRequest req = new UnityWebRequest(changePlayerDataUrl, "POST"))
{
// 发送请求并等待响应
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
req.downloadHandler = new DownloadHandlerBuffer();
req.SetRequestHeader("Content-Type", "application/json");
yield return req.SendWebRequest();
// 检查请求结果
if (req.result == UnityWebRequest.Result.Success)
{
// 处理服务器响应
string str = req.downloadHandler.text;
GameDataMgr.Instance.player = JsonMgr.Instance.LoadData<PlayerData>(str);
//金币变化
UIManager.Instance.GetPanel<GamePanel>().UpdateGold();
}
else
{
Debug.LogError($"Error: {req.error}"); // 打印错误信息
}
}
}
/// <summary>
/// 给服务器发送提现数据
/// </summary>
/// <returns></returns>
public IEnumerator GoldRealPost(GoldRealMsg msg)
{
string strMsg = JsonMgr.Instance.SaveData(msg);
using (UnityWebRequest req = new UnityWebRequest(goldRealPostUrl, "POST"))
{
// 发送请求并等待响应
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
req.downloadHandler = new DownloadHandlerBuffer();
req.SetRequestHeader("Content-Type", "application/json");
yield return req.SendWebRequest();
// 检查请求结果
if (req.result == UnityWebRequest.Result.Success)
{
}
else
{
Debug.LogError($"Error: {req.error}"); // 打印错误信息
}
}
}
/// <summary>
/// 获取提现记录
/// </summary>
/// <param name="msg"></param>
/// <returns></returns>
public IEnumerator GoldRealGet(GoldRealMsg msg)
{
string strMsg = JsonMgr.Instance.SaveData(msg);
using (UnityWebRequest req = new UnityWebRequest(goldRealGetUrl, "POST"))
{
// 发送请求并等待响应
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
req.downloadHandler = new DownloadHandlerBuffer();
req.SetRequestHeader("Content-Type", "application/json");
yield return req.SendWebRequest();
// 检查请求结果
if (req.result == UnityWebRequest.Result.Success)
{
// 处理服务器响应
string str = req.downloadHandler.text;
GameDataMgr.Instance.goldRealList = JsonMgr.Instance.LoadData<List<GoldRealMsg>>(str);
//更新面板
if (GameDataMgr.Instance.goldRealList.Count > 0)
{
UIManager.Instance.GetPanel<GoldRecordPanel>().UpdatePanel(GameDataMgr.Instance.goldRealList);
}
}
else
{
Debug.LogError($"Error: {req.error}"); // 打印错误信息
}
}
}
/// <summary>
/// 获取所有关卡
/// </summary>
/// <returns></returns>
public IEnumerator AllLevGet()
{
using (UnityWebRequest req = UnityWebRequest.Get(allLevUrl))
{
// 发送请求并等待响应
yield return req.SendWebRequest();
// 检查请求结果
if (req.result == UnityWebRequest.Result.Success)
{
// 处理服务器响应
string str = req.downloadHandler.text;
GameDataMgr.Instance.levList = JsonMgr.Instance.LoadData<List<AllLevData>>(str);
}
else
{
Debug.LogError($"Error: {req.error}"); // 打印错误信息
}
}
}
/// <summary>
/// 获取关卡萌宠信息
/// </summary>
/// <returns></returns>
public IEnumerator LevPetInfoPost(LevRankMsg msg)
{
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
using (UnityWebRequest req = new UnityWebRequest(levPetInfoUrl, "POST"))
{
// 发送请求并等待响应
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
req.downloadHandler = new DownloadHandlerBuffer();
req.SetRequestHeader("Content-Type", "application/json");
yield return req.SendWebRequest();
// 检查是否有错误
if (req.result == UnityWebRequest.Result.Success)
{
string js = req.downloadHandler.text;
GameDataMgr.Instance.levData = JsonMgr.Instance.LoadData<LevData>(js);
GameMgr.Instance.CreatePet();
//隐藏关卡状态面板
if (UIManager.Instance.GetPanel<AllLevStatePanel>()!=null)
{
UIManager.Instance.HidePanel<AllLevStatePanel>();
}
//隐藏排行榜关卡面板
if (UIManager.Instance.GetPanel<AllLevPanel>() != null)
{
UIManager.Instance.HidePanel<AllLevPanel>();
}
//隐藏通关面板1
if (UIManager.Instance.GetPanel<Pass1Panel>() != null)
{
UIManager.Instance.HidePanel<Pass1Panel>();
}
//隐藏通关面板1
if (UIManager.Instance.GetPanel<Pass2Panel>() != null)
{
UIManager.Instance.HidePanel<Pass2Panel>();
}
}
else
{
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
}
}
}
/// <summary>
/// 获取关卡排行榜信息
/// </summary>
/// <returns></returns>
public IEnumerator RankPost(LevRankMsg msg)
{
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
using (UnityWebRequest req = new UnityWebRequest(rankPostUrl, "POST"))
{
// 发送请求并等待响应
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
req.downloadHandler = new DownloadHandlerBuffer();
req.SetRequestHeader("Content-Type", "application/json");
yield return req.SendWebRequest();
// 检查是否有错误
if (req.result == UnityWebRequest.Result.Success)
{
string js = req.downloadHandler.text;
GameDataMgr.Instance.rankData = JsonMgr.Instance.LoadData<Dictionary<string, List<PlayerData>>>(js);
if (GameDataMgr.Instance.rankData==null)
{
GameDataMgr.Instance.rankData=new Dictionary<string, List<PlayerData>>();
GameDataMgr.Instance.rankData.Add("UserList",new List<PlayerData>());
}
UIManager.Instance.GetPanel<RankPanel>().UpdatePanel(GameDataMgr.Instance.rankData["UserList"]);
}
else
{
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
}
}
}
/// <summary>
/// 获取总排行榜数据
/// </summary>
/// <returns></returns>
public IEnumerator RankAllGet()
{
using (UnityWebRequest req = UnityWebRequest.Get(rankAllGetUrl))
{
// 发送请求并等待响应
yield return req.SendWebRequest();
// 检查是否有错误
if (req.result == UnityWebRequest.Result.Success)
{
string js = req.downloadHandler.text;
GameDataMgr.Instance.rankAllData = JsonMgr.Instance.LoadData<Dictionary<string, List<PlayerData>>>(js);
UIManager.Instance.ShowPanel<RankAllPanel>().UpdatePanel(GameDataMgr.Instance.rankAllData["UserList"]);
}
else
{
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
}
}
}
/// <summary>
/// 分数上传,获取关卡的排名
/// </summary>
/// <returns></returns>
public IEnumerator ScoreUploadPost(ScoreUploadMsg msg,BasePanel pass)
{
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
using (UnityWebRequest req = new UnityWebRequest(scoreUploadPostUrl, "POST"))
{
// 发送请求并等待响应
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
req.downloadHandler = new DownloadHandlerBuffer();
req.SetRequestHeader("Content-Type", "application/json");
yield return req.SendWebRequest();
// 检查是否有错误
if (req.result == UnityWebRequest.Result.Success)
{
string js = req.downloadHandler.text;
BackRankData scoreRank = JsonMgr.Instance.LoadData<BackRankData>(js,JsonType.JsonUtlity);
GamePanel gamePanel = UIManager.Instance.GetPanel<GamePanel>();
if (pass is Pass1Panel)
{
(pass as Pass1Panel).UpdatePanel(gamePanel.levInt, gamePanel.scoreInt, scoreRank.rankInt);
}
else if (pass is Pass2Panel)
{
(pass as Pass2Panel).UpdatePanel(gamePanel.levInt, gamePanel.scoreInt, scoreRank.rankInt);
}
}
else
{
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
}
}
}
/// <summary>
/// 获取公告信息
/// </summary>
/// <returns></returns>
public IEnumerator NoticeMasgGet()
{
using (UnityWebRequest req = UnityWebRequest.Get(noticeMsgUrl))
{
// 发送请求并等待响应
yield return req.SendWebRequest();
// 检查是否有错误
if (req.result == UnityWebRequest.Result.Success)
{
string js = req.downloadHandler.text;
NoticeMsg noticeMsg = JsonMgr.Instance.LoadData<NoticeMsg>(js,JsonType.JsonUtlity);
UIManager.Instance.ShowPanel<PublicPanel>().UpdatePanel(noticeMsg.content);
}
else
{
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
}
}
}
/// <summary>
/// 填写邀请
/// </summary>
/// <returns></returns>
public IEnumerator InvitePost(InviteMsg msg)
{
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
using (UnityWebRequest req = new UnityWebRequest(inviteUrl, "POST"))
{
// 发送请求并等待响应
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
req.downloadHandler = new DownloadHandlerBuffer();
req.SetRequestHeader("Content-Type", "application/json");
yield return req.SendWebRequest();
// 检查是否有错误
if (req.result == UnityWebRequest.Result.Success)
{
string js = req.downloadHandler.text;
InviteReturnMsg retMsg = JsonMgr.Instance.LoadData<InviteReturnMsg>(js,JsonType.JsonUtlity);
}
else
{
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
}
}
}
/// <summary>
/// 邮件
/// </summary>
/// <returns></returns>
public IEnumerator MailPost(CommonMsg msg)
{
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
using (UnityWebRequest req = new UnityWebRequest(mailUrl, "POST"))
{
// 发送请求并等待响应
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
req.downloadHandler = new DownloadHandlerBuffer();
req.SetRequestHeader("Content-Type", "application/json");
yield return req.SendWebRequest();
// 检查是否有错误
if (req.result == UnityWebRequest.Result.Success)
{
string js = req.downloadHandler.text;
if (js.Contains("\"openId\""))
{
CommonMsg common= JsonMgr.Instance.LoadData<CommonMsg>(js, JsonType.JsonUtlity);
}
else if (js.Contains("\"id\""))
{
MailInfo info = new MailInfo();
info.mailData = JsonMgr.Instance.LoadData<MailData>(js,JsonType.JsonUtlity);
filePath = Path.Combine(Application.persistentDataPath, GameDataMgr.Instance.player.openId);
LoadMailData();
GameDataMgr.Instance.info.Add(info);
SaveMailData(GameDataMgr.Instance.info);
}
}
else
{
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
}
}
}
/// <summary>
/// 发送意见建议
/// </summary>
/// <returns></returns>
public IEnumerator IdeaPost(IdeaMsg msg)
{
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
Debug.Log(strMsg);
using (UnityWebRequest req = new UnityWebRequest(ideaUrl, "POST"))
{
// 发送请求并等待响应
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
req.downloadHandler = new DownloadHandlerBuffer();
req.SetRequestHeader("Content-Type", "application/json");
yield return req.SendWebRequest();
// 检查是否有错误
if (req.result == UnityWebRequest.Result.Success)
{
}
else
{
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
}
}
}
private string filePath;
// 保存邮件数据到本地
public void SaveMailData(List<MailInfo> info)
{
string json = JsonMgr.Instance.SaveData(info);
File.WriteAllText(filePath, json);
}
// 加载本地邮件数据
private void LoadMailData()
{
if (File.Exists(filePath))
{
string json = File.ReadAllText(filePath);
GameDataMgr.Instance.info = JsonMgr.Instance.LoadData<List<MailInfo>>(json);
if (GameDataMgr.Instance.info == null)
{
GameDataMgr.Instance.info = new List<MailInfo>();
}
}
else
{
GameDataMgr.Instance.info = new List<MailInfo>();
}
}
}