From 14ed69769c7917c00653a19030e175247533b8ef Mon Sep 17 00:00:00 2001 From: HuangZiBo <1278481331@qq.com> Date: Mon, 25 Nov 2024 09:45:47 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3=E5=88=9D?= =?UTF-8?q?=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xiaofang/Assets/Script/login/Global.cs | 135 ++++++++++- xiaofang/Assets/Script/login/login.cs | 313 +++++++++++++++++++++++-- 2 files changed, 429 insertions(+), 19 deletions(-) diff --git a/xiaofang/Assets/Script/login/Global.cs b/xiaofang/Assets/Script/login/Global.cs index e4f73f65..4bcf9d31 100644 --- a/xiaofang/Assets/Script/login/Global.cs +++ b/xiaofang/Assets/Script/login/Global.cs @@ -1,3 +1,4 @@ +using Newtonsoft.Json; using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -5,17 +6,32 @@ using UnityEngine; public class Global : Singleton { public static Global global; + public server response; - - + //// 创建请求头,使用最新的 token + //public Dictionary CreateHeaders() + //{ + + + // if (string.IsNullOrEmpty(response.data.access_token)) + // { + // Debug.LogWarning("尝试创建请求头时,token 未设置。"); + // return new Dictionary(); + // } + + // return new Dictionary + // { + // { "Authorization", response.data.access_token } + // }; + //} + } public class server : Response { - public Data data; //public string access_token; } @@ -31,5 +47,116 @@ public class Data public string companyName; public string client_id; public int expire_in;//toling剩余时间 - + public string isCreater;//是否是模板创建者,Y是则跳蓝湖预定演练01页面开始创建模板,N否则跳蓝狐回放1页面 } +//==================================================== +public class TemplateListData: Response +{ + public string[] data; +} +public class newTemplateData: Response +{ + public string data; +} +//============================================================= +// 根数据类 +public class QuerySceneData +{ + public int code { get; set; } + public string msg { get; set; } + public List data { get; set; } +} + +// 场景信息类 +public class Scene +{ + public string id { get; set; } + public string name { get; set; } + public string type { get; set; } + public string description { get; set; } + public int suitIndustry { get; set; } + public string price { get; set; } + public int companyId { get; set; } + public string status { get; set; } + public string delFlag { get; set; } + public string remark { get; set; } + public string gameName { get; set; } + public string gameType { get; set; } + public string ossId { get; set; } + public List fileList { get; set; } + public string gameStoreroom { get; set; } + public string industryName { get; set; } + public string companyName { get; set; } +} + +// 文件信息类 +public class File +{ + public string ossId { get; set; } + public string name { get; set; } + public string url { get; set; } + public string originalName { get; set; } + public string fileSuffix { get; set; } +} +//================================================================= +public class DrillSubject : Response +{ + [JsonProperty("data")] + public List data; // 确保字段名与 JSON 中的匹配 +} + +public class QueryDrillSubjectData +{ + public string id; + public string[] sceneIds; + public string sceneNames; + public string name; + public string suitVersion; + public string type; + public string description; + public string price; + public string companyId; + public string status; + public string delFlag; + public string remark; + public string gameName; + public string ossId; + public string fileList; +} +//=============================================================== + +public class RoleList +{ + public int code; // 与 JSON 中的 "code" 字段对应 + public string msg; // 与 JSON 中的 "msg" 字段对应 + public List data; // 与 JSON 中的 "data" 字段对应,包含角色的列表 +} + +public class RoleData +{ + public string id; // 与 JSON 中的 "id" 字段对应 + public string roleName; // 与 JSON 中的 "roleName" 字段对应 + public string sceneId; // 与 JSON 中的 "sceneId" 字段对应 + public int gameName; // 与 JSON 中的 "gameName" 字段对应,注意这里是 int 类型 + public string roleAttributions; // 与 JSON 中的 "roleAttributions" 字段对应 +} +//=================================================================== +public class BindPlayer:Response +{ + public string data; +} +//============================================================= +public class BindNPC : Response +{ + public string data;//++++++++++++++++++++++++++++++++++++ +} +//==================================================== +public class BindMaterial : Response +{ + public string data;//++++++++++++++++++++++++++++++++++++ +} +//=================================================== +public class SubmitTemplate : Response +{ + public string data;//++++++++++++++++++++++++++++++++++++ +} \ No newline at end of file diff --git a/xiaofang/Assets/Script/login/login.cs b/xiaofang/Assets/Script/login/login.cs index 72f23698..5ce67143 100644 --- a/xiaofang/Assets/Script/login/login.cs +++ b/xiaofang/Assets/Script/login/login.cs @@ -2,40 +2,323 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using Newtonsoft.Json; +using System.Threading.Tasks; +using UnityEditor.PackageManager; +using JetBrains.Annotations; +using System.Data; public class auth_login { public string clientId = "e5cd7e4891bf95d1d19206ce24a7b32e"; public string grantType = "password"; - public string userType = "company_user"; - public string username = "13699802230"; - public string password = "YYL2230!"; + } + +//public class TemplateList//可空 +//{ +// public string templateId=""; +// public string templateName; +// public string sceneId; +// public string subjectId; +// public string queryType; +//} +public class createTemplate +{ + public string templateName; + public string sceneId; + public string subjectId; + public string isTemplate; + public string mode; +} + + +//============================================================================================ public class login : MonoBehaviour { public string token;//登录返回的token - public void Start() + public Global Global; + auth_login auth_Login = new auth_login(); + public string clientId = "e5cd7e4891bf95d1d19206ce24a7b32e"; + + + // 创建请求头,使用最新的 token + public Dictionary CreateHeaders() { - loging(); - //createTemplate(); + + + if (string.IsNullOrEmpty(token)) + { + Debug.LogWarning("尝试创建请求头时,token 未设置。"); + return new Dictionary(); + } + + return new Dictionary + { + { "Authorization","Bearer "+token }, + {"clientId", clientId } + }; } - public async void loging() + //================================================================================================= + public async void Start() + { + await loging(); + SubmitTemplate(); + BindNPC(); + BindMaterial(); + BindPlayer(); + QueryDrillSubject(); + TemplateList(); + createTemplate(); + QueryScene(); + queryRoleList(); + } + //登录 + public async Task loging() { auth_login auth_Login = new auth_login(); Debug.Log(JsonUtility.ToJson(auth_Login)); string response = await web.SendRequest(web.URL + "/auth/login", "POST", JsonUtility.ToJson(auth_Login)); - Debug.Log(response); + Debug.Log("登录" + response); // 解析服务器返回的数据 server serverData = JsonConvert.DeserializeObject(response); - //token = serverData.token; - //Debug.Log(setverData.msg); - + token = serverData.data.access_token; + Debug.Log("===========" + serverData.data.isCreater); } + //获取模板列表 + public async void TemplateList() + { + string response = await web.SendRequest(web.URL + "/game/gameTemplate/list", "GET", "", CreateHeaders()); + Debug.Log("获取模板列表" + response); + //解析服务器返回的数据 + TemplateListData templateListData = JsonConvert.DeserializeObject(response); + Debug.Log("================" + templateListData.msg); + } + //新建模板 public async void createTemplate() { - - string response = await web.SendRequest(web.URL + "/game/gameTemplate/list", "GET"); - Debug.Log(response); - + string body = "{\"templateName\": \"11111\",\"sceneId\": \"11111\",\"subjectId\": \"111\",\"isTemplate\": \"111\",\"mode\": \"111\",\"playerList\": [{\"userId\": \"111\",\"roleId\": \"1111\",\"birthAreaId\": \"111\",\"chargeAreaId\": \"111\"}],\"npcList\": [{\"npcId\": \"111\",\"areaId\": \"111\",\"npcNum\": 0}],\"materialList\": [{\"materialId\": \"111\",\"num\": 0}]}"; + string response = await web.SendRequest(web.URL + "/game/gameTemplate/add", "POST", body, CreateHeaders()); + Debug.Log("新建模板列表" + response); + // 解析服务器返回的数据 + newTemplateData newTemplateData = JsonConvert.DeserializeObject(response); + Debug.Log(newTemplateData.data); } + //查询场景信息列表 + public async void QueryScene() + { + // 发送请求并获取返回数据 + string response = await web.SendRequest(web.URL + "/game/scene/list", "GET", "", CreateHeaders()); + Debug.Log("查询场景信息列表" + response); + + // 使用Newtonsoft.Json来反序列化JSON数据到QuerySceneData对象 + QuerySceneData serverData = JsonConvert.DeserializeObject(response); + + // 打印整体响应数据的某些属性 + if (serverData != null && serverData.data != null) + { + foreach (var scene in serverData.data) + { + Debug.Log("场景ID: " + scene.id); + Debug.Log("场景名称: " + scene.name); + Debug.Log("描述: " + scene.description); + Debug.Log("价格: " + scene.price); + Debug.Log("行业: " + scene.industryName); + + if (scene.fileList != null) + { + foreach (var file in scene.fileList) + { + Debug.Log("文件名称: " + file.name); + Debug.Log("文件URL: " + file.url); + } + } + } + } + else + { + Debug.Log("解析服务器数据失败"); + } + } + + //查询演练科目信息列表 + public async void QueryDrillSubject() + { + string response = await web.SendRequest(web.URL + "/game/subject/list", "GET", "", CreateHeaders()); + Debug.Log("查询演练科目信息列表: " + response); + + // 使用 Newtonsoft.Json 进行反序列化 + DrillSubject drillSubject = JsonConvert.DeserializeObject(response); + + // 检查反序列化结果 + if (drillSubject == null) + { + Debug.LogError("Failed to deserialize JSON. DrillSubject is null."); + return; + } + + if (drillSubject.data == null || drillSubject.data.Count == 0) + { + Debug.LogWarning("No subjects found in the returned data."); + return; + } + + // 遍历反序列化后的 data 列表 + foreach (var subject in drillSubject.data) + { + Debug.Log("ID: " + subject.id); + Debug.Log("Scene Names: " + subject.sceneNames); + Debug.Log("Name: " + subject.name); + Debug.Log("Suit Version: " + subject.suitVersion); + Debug.Log("Type: " + subject.type); + Debug.Log("Description: " + subject.description); + Debug.Log("Price: " + subject.price); + Debug.Log("Company ID: " + subject.companyId); + Debug.Log("Status: " + subject.status); + Debug.Log("Delete Flag: " + subject.delFlag); + Debug.Log("Remark: " + subject.remark); + Debug.Log("Game Name: " + subject.gameName); + Debug.Log("OSS ID: " + subject.ossId); + Debug.Log("File List: " + subject.fileList); + // 如果需要进一步处理字段,可以在这里进行 + // 比如,将价格转换为数字计算,或根据特定类型执行逻辑 + } + } + + //角色列表 + public async void queryRoleList() + { + string body = "{\"sceneId\": \"1845704588547301377\"}"; + string response = await web.SendRequest(web.URL + "/game/role/list", "GET", body, CreateHeaders()); + Debug.Log("查询角色列表: " + response); + RoleList serverData = JsonConvert.DeserializeObject(response); + + // 检查反序列化结果 + if (serverData == null) + { + Debug.LogError("Failed to deserialize JSON. RoleList is null."); + return; + } + + if (serverData.data == null || serverData.data.Count == 0) + { + Debug.LogWarning("No role data found in the returned data."); + return; + } + + // 遍历反序列化后的角色列表 + foreach (var role in serverData.data) + { + Debug.Log("Role ID: " + role.id); + Debug.Log("Role Name: " + role.roleName); + Debug.Log("Scene ID: " + role.sceneId); + Debug.Log("Game Name: " + role.gameName); + Debug.Log("Role Attributions: " + role.roleAttributions); + } + } + + //模板玩家绑定 + public async void BindPlayer() + { + string templateId = "1111"; + string userId = "1"; + string roleId = "1"; + string birthAreaId = "11"; + string chargeAreaId = "2"; + + string body = $@" + {{ + ""templateId"": ""{templateId}"", + ""playerList"": [ + {{ + ""userId"": ""{userId}"", + ""roleId"": ""{roleId}"", + ""birthAreaId"": ""{birthAreaId}"", + ""chargeAreaId"": ""{chargeAreaId}"" + }} + ] + }}"; + + string response = await web.SendRequest(web.URL + "/game/gameTemplate/player", "POST", body, CreateHeaders()); + Debug.Log("模板玩家绑定: " + response); + BindPlayer serverData = JsonConvert.DeserializeObject(response); + } + //模板NPC绑定 + public async void BindNPC() + { + string templateId = "1111"; + string npcId = "1"; + string areaId = "1"; + int npcNum = 1; + //string chargeAreaId = "2"; + + string body = $@" + {{ + ""templateId"": ""{templateId}"", + ""npcList"": [ + {{ + ""npcId"": ""{npcId}"", + ""areaId"": ""{areaId}"", + ""npcNum"": ""{npcNum}"" + }} + ] + }}"; + + string response = await web.SendRequest(web.URL + "/game/gameTemplate/npc", "POST", body, CreateHeaders()); + Debug.Log("模板NPC绑定: " + response); + BindNPC serverData = JsonConvert.DeserializeObject(response); + } + //模板设备绑定 + public async void BindMaterial() + { + string templateId = "1111"; + string materialId = "1"; + int num = 0; + //string chargeAreaId = "2"; + + string body = $@" + {{ + ""templateId"": ""{templateId}"", + ""materialList"": [ + {{ + ""materialId"": ""{materialId}"", + ""num"": ""{num}"" + }} + ] + }}"; + + string response = await web.SendRequest(web.URL + "/game/gameTemplate/material", "POST", body, CreateHeaders()); + Debug.Log("模板设备绑定: " + response); + BindMaterial serverData = JsonConvert.DeserializeObject(response); + if (serverData.data == null) + { + Debug.Log("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); + } + Debug.Log(serverData.data); + } + + //提交预定演练模板 + public async void SubmitTemplate() + { + string templateId = "1111"; + string reserveDate = "2024-11-22"; + // int num = 0; + //string chargeAreaId = "2"; + + string body = $@" + {{ + ""templateId"": ""{templateId}"", + ""reserveDate"":""{reserveDate}"" + }}"; + string response = await web.SendRequest(web.URL + "/game/gameRoom/reserve", "POST", body, CreateHeaders()); + Debug.Log("提交预定演练模板: " + response); + BindMaterial serverData = JsonConvert.DeserializeObject(response); + if (serverData.data == null) + { + Debug.Log("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); + } + Debug.Log(serverData.data); + } + } + +