RuralPowerCompetition_yizhe.../RuralPowerCompetition_yizheng1/Assets/Zion/Scripts/Request/Request.cs

307 lines
11 KiB
C#

using Newtonsoft.Json.Linq;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using RuralPower;
using Newtonsoft.Json;
public class Request
{
public static RuralPowerAPI api = new RuralPowerAPI();
/// <summary>
/// 上传选择的台区数据
/// </summary>
/// <param name="details"></param>
public static void SendAreaData(string data)
{
string UserId = ScenesRecorder.user.user_id;
string ExamId = ScenesRecorder.user.ExamId;
string url = ScenesRecorder._Ip;
string result = api.SelectPlatformArea(url, ExamId, UserId, data);
Debug.Log("发送台区数据:" + data);
}
/// <summary>
/// 上传围栏数据
/// </summary>
/// <param name="details"></param>
public static void SendEnsureData(string reason)
{
string UserId = ScenesRecorder.user.user_id;
string ExamId = ScenesRecorder.user.ExamId;
string url = ScenesRecorder._Ip;
string result = api.UpdateEnclosure(url, ExamId, UserId);
Debug.Log("接受围栏数据:" + result);
}
/// <summary>
/// 上传场景小物体数据
/// </summary>
/// <param name="details"></param>
public static void UpLoadSmallPartsMsg(RestoreSceneMsg rsm)
{
string UserId = ScenesRecorder.user.user_id;
string ExamId = ScenesRecorder.user.ExamId;
string url = ScenesRecorder._Ip;
string msg = JsonConvert.SerializeObject(rsm);
string result = api.UpdateRestoreSceneMsg(url, UserId, ExamId, msg);
Debug.Log("接收场景小物体数据:" + result);
}
/// <summary>
/// 上传未验电数据
/// </summary>
/// <param name="details"></param>
public static void SendElectricityData(string data)
{
string UserId = ScenesRecorder.user.user_id;
string ExamId = ScenesRecorder.user.ExamId;
string url = ScenesRecorder._Ip;
string result = api.UpdateElectricity(url, ExamId, UserId, data);
Debug.Log("发送未验电数据:" + result);
}
/// <summary>
/// 上传巡检阶段带电爬杆数据
/// </summary>
/// <param name="details"></param>
public static void SendClimbPoleWithElectricity()
{
string UserId = ScenesRecorder.user.user_id;
string ExamId = ScenesRecorder.user.ExamId;
string url = ScenesRecorder._Ip;
string result = api.UpdateClimbrod(url, ExamId, UserId);
Debug.Log("发送巡检爬杆事故:" + result);
}
/// <summary>
/// 上传带电插拔熔芯否决项
/// </summary>
/// <param name="details"></param>
public static void SendOperaFuseInElectric()
{
string UserId = ScenesRecorder.user.user_id;
string ExamId = ScenesRecorder.user.ExamId;
string url = ScenesRecorder._Ip;
string result = api.UpdateFusibleCore(url, ExamId, UserId);
Debug.Log("未分闸状态取熔芯:" + result);
}
/// <summary>
/// 上传断路器数据
/// </summary>
/// <param name="details"></param>
public static void SendCircuitBreakerData(AttrData data)
{
data.UserId = ScenesRecorder.user.user_id;
data.ExamId = ScenesRecorder.user.ExamId;
string msg = JsonConvert.SerializeObject(data);
string url = ScenesRecorder._Ip;
string result = "";
if (ScenesRecorder.IsOn_SiteInspection)
{
result = "巡检" + api.AddUserFaultRecord(url, msg);
}
else
{
result = api.AddFaultOperation(url, msg);
}
Debug.Log("发送断路器数据:"+msg);
Debug.Log("接受断路器数据:"+ result);
}
/// <summary>
/// 上传普通故障处理结果
/// </summary>
/// <param name="details"></param>
public static void SendFaultData(AttrData data/*DefectDetails details*/,string faultName)
{
if (data == null)
return;
data.UserId = ScenesRecorder.user.user_id;
data.ExamId = ScenesRecorder.user.ExamId;
string msg = JsonConvert.SerializeObject(data);
string url = ScenesRecorder._Ip;
string result = api.AddFaultOperation(url, msg);
Debug.Log("发送故障处理数据:" + msg);
Debug.Log("接受故障处理数据:" + result);
}
/// <summary>
/// 结束故障处理
/// </summary>
/// <param name="details"></param>
public static void StopFault()
{
string UserId = ScenesRecorder.user.user_id;
string ExamId = ScenesRecorder.user.ExamId;
string url = ScenesRecorder._Ip;
string result = api.EndFaultOperation(url, ExamId, UserId);
Debug.Log("结束故障记录:" + result);
}
/// <summary>
/// 发送选择了什么工器具
/// </summary>
/// <param name="toolDict"></param>
/// <returns></returns>
public static bool SendToolsData(List<api_tool_data_request> toolDict)
{
//foreach (var item in toolDict)
//{
// //Debug.Log("上传工具数据:" + item.ToolName + " " + item.Quantity);
//}
add_user_tool_request data = new add_user_tool_request();
data.UserId = ScenesRecorder.user.user_id;
data.ExamId = ScenesRecorder.user.ExamId;
if (ScenesRecorder.OperationPhase.Equals(OperationPhase.On_SiteInspection))
{
data.Purpose = "巡线";
}
else
{
data.Purpose = "排故";
}
data.Tool = toolDict;
// 发送
string url = ScenesRecorder._Ip;
string content = JsonConvert.SerializeObject(data);
Debug.Log(content);
string result = api.AddUserTool(url, content);
if (string.IsNullOrEmpty(result))
{
return false;
}
else
{
return true;
}
}
/// <summary>
/// 上传操作票选择结果
/// </summary>
/// <param name="details"></param>
public static void SendOperationTickData(List<OperationTicketData> tmpList, string type)
{
string msg = JsonConvert.SerializeObject(
//new
//{
// ExamId = ScenesRecorder.user.ExamId,ceshi
// Type = type,
// UserId = ScenesRecorder.user.user_id,
tmpList
//}
);
string result = api.WriteTicket(ScenesRecorder._Ip, ScenesRecorder.user.ExamId, ScenesRecorder.user.user_id, type, msg);
Debug.Log("已上传:操作票:" + msg + " 接口:" + result);
}
/// <summary>
/// 上传操作票操作结果
/// </summary>
/// <param name="details"></param>
public static void SendOperationTickHandleData(OperationTicketStep tmp)
{
string url = ScenesRecorder._Ip;
string ExamId = ScenesRecorder.user.ExamId;
string UserId = ScenesRecorder.user.user_id;
string result = api.WriteTicketProc(url, ExamId, UserId, tmp.Type, tmp.OperationTicketId, tmp.Score, tmp.ScoreReason);
Debug.Log("操作步骤得分:" + tmp.Type.ToString() + " " + tmp.Score);
Debug.Log("已上传处理操作票" + tmp + "结果" + result);
}
/// <summary>
/// 上传操作票操作处理完成
/// </summary>
/// <param name="details"></param>
public static void SendOperationTickHandleFinish(string type)
{
string url = ScenesRecorder._Ip;
string ExamId = ScenesRecorder.user.ExamId;
string UserId = ScenesRecorder.user.user_id;
string result = api.StopTicketProc(url, ExamId, UserId, type);
Debug.Log("已上传处理操作票处理完成" + "结果" + type + result);
}
public static IEnumerator Get(string url, System.Action<bool, string> action)
{
UnityWebRequest webRequest = UnityWebRequest.Get(url);
yield return webRequest.SendWebRequest();
if (webRequest.result== UnityWebRequest.Result.ProtocolError || webRequest.result == UnityWebRequest.Result.ConnectionError)
{
Debug.Log(webRequest.error);
action.Invoke(false, string.Empty);
}
else
{
//string msg = webRequest.downloadHandler.text;
//Debug.Log(msg);
//JObject JO = JObject.Parse(msg);
//if (JO["state"].ToString().Equals("true") || JO["state"].ToString().Equals("True"))
//{
// action.Invoke(true, JO["data"].ToString());
//}
//else
//{
// action.Invoke(false, string.Empty);
//}
}
}
public static IEnumerator Post(string url, Dictionary<string, string> keyValuePairs, System.Action<bool, string> action)
{
WWWForm form = new WWWForm();
foreach (var item in keyValuePairs)
{
form.AddField(item.Key, item.Value);
}
UnityWebRequest webRequest = UnityWebRequest.Post(url, form);
yield return webRequest.SendWebRequest();
if (webRequest.result == UnityWebRequest.Result.ProtocolError || webRequest.result == UnityWebRequest.Result.ConnectionError)
{
Debug.Log(webRequest.error);
action.Invoke(false, string.Empty);
}
else
{
string msg = webRequest.downloadHandler.text;
Debug.Log(msg);
JObject JO = JObject.Parse(msg);
if (JO["state"].ToString().Equals("true") || JO["state"].ToString().Equals("True"))
{
action.Invoke(true, JO["data"].ToString());
}
else
{
action.Invoke(false, string.Empty);
}
}
}
public static IEnumerator Post_Video(string url, Dictionary<string, string> keyValuePairs, byte[] b, System.Action<bool, string> action)
{
WWWForm form = new WWWForm();
foreach (var item in keyValuePairs)
{
form.AddField(item.Key, item.Value);
}
form.AddBinaryData("Files", b,"test.mp4");
UnityWebRequest webRequest = UnityWebRequest.Post(url, form);
Debug.Log("上传了吗");
yield return webRequest.SendWebRequest();
if (webRequest.result == UnityWebRequest.Result.ProtocolError || webRequest.result == UnityWebRequest.Result.ConnectionError)
{
Debug.Log(webRequest.error);
action.Invoke(false, string.Empty);
}
else
{
string msg = webRequest.downloadHandler.text;
Debug.Log(msg);
JObject JO = JObject.Parse(msg);
if (JO["state"].ToString().Equals("true") || JO["state"].ToString().Equals("True"))
{
action.Invoke(true, JO["data"].ToString());
}
else
{
action.Invoke(false, string.Empty);
}
}
}
}