HttpCom.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using WS;
  5. public static class HttpCom
  6. {
  7. public static Dictionary<string, string> comData = new Dictionary<string, string>();
  8. /// <summary>VR课程授权</summary>
  9. public static void GetCommandLine()
  10. {
  11. return;
  12. string CommandLine = Environment.CommandLine;
  13. //CommandLine = "copro://taskId=&courseId=91&course=B737-300 H Training&model=T&token=fySg1CSYMzUy020dSM%2BY14slnijap9XDcM340dYICrw%3D";
  14. string data = CommandLine.Replace("copro://", "");
  15. string[] keyValuePairs = data.Split('&');
  16. foreach (string pair in keyValuePairs)
  17. {
  18. string[] parts = pair.Split('=');
  19. if (parts.Length == 2)
  20. {
  21. string key = parts[0];
  22. string value = parts[1];
  23. comData[key] = value;
  24. //Debug.Log(key + " " + value);
  25. }
  26. }
  27. Debug.Log(DateTime.Now.ToString());
  28. RequestComponent.Get<string>(GameManager.Instance.Data.httpBase + "?token=" + comData["token"], VRRoot);
  29. }
  30. private static void VRRoot(ResponseOutput<string> arg0)
  31. {
  32. if (arg0.code == 0)
  33. {
  34. GameManager.Instance.Data.User.UserName = arg0.um;
  35. }
  36. else
  37. {
  38. Debug.LogError($"code:{arg0.code} {arg0.msg}");
  39. //Application.Quit();
  40. }
  41. }
  42. public static void UploadGrades()
  43. {
  44. return;
  45. var grades = new Grades();
  46. grades.m = "api";
  47. grades.md = comData["model"];
  48. grades.course = int.Parse(comData["comData"]);
  49. grades.branch = 1;
  50. grades.data = new CourseResultData();
  51. grades.data.ST = GameManager.Instance.ProcessManager.ST.ToString();
  52. grades.data.ET = GameManager.Instance.ProcessManager.ET.ToString();
  53. TimeSpan timeDifference = GameManager.Instance.ProcessManager.ET - GameManager.Instance.ProcessManager.ST;
  54. long millisecondsDifference = (long)timeDifference.TotalMilliseconds;
  55. grades.data.TT = millisecondsDifference.ToString();
  56. grades.token = comData["token"];
  57. if (grades.md == "E")
  58. {
  59. var taskData = GameManager.Instance.ProcessManager.GetAllVTaskRecord();
  60. float score = 0;
  61. for (int i = 0; i < taskData.Count; i++)
  62. {
  63. if (!taskData[i].IsError)
  64. {
  65. if (i == 0)
  66. {
  67. grades.data.detail = taskData[i].Score.ToString();
  68. }
  69. else if (i == taskData.Count - 1)
  70. {
  71. grades.data.detail += taskData[i].Score.ToString();
  72. }
  73. else
  74. {
  75. grades.data.detail += taskData[i].Score.ToString() + "/";
  76. }
  77. score += taskData[i].Score;
  78. }
  79. else
  80. {
  81. if (i == 0)
  82. {
  83. grades.data.detail = "0";
  84. }
  85. else if (i == taskData.Count - 1)
  86. {
  87. grades.data.detail += "0";
  88. }
  89. else
  90. {
  91. grades.data.detail += "0" + "/";
  92. }
  93. }
  94. }
  95. grades.data.score = score.ToString();
  96. }
  97. RequestComponent.Post<string>(GameManager.Instance.Data.httpBase + "?XXXX", LitJson.JsonMapper.ToJson(grades), UpdataGradesResult);
  98. }
  99. private static void UpdataGradesResult(ResponseOutput<string> arg0)
  100. {
  101. if (arg0.code == 0)
  102. {
  103. Debug.Log(arg0.msg);
  104. }
  105. else if(arg0.code == 1000)
  106. {
  107. Debug.LogError(arg0.msg);
  108. }
  109. else if (arg0.code == 2000)
  110. {
  111. Debug.LogError(arg0.msg);
  112. UploadGrades();
  113. }
  114. }
  115. }
  116. public class Grades
  117. {
  118. public string m { get; set; }
  119. public string md { get; set; }
  120. public int course { get; set; }
  121. public int branch { get; set; }
  122. public CourseResultData data { get; set; }
  123. public string token { get; set; }
  124. }
  125. public class CourseResultData
  126. {
  127. public string ST { get; set; }
  128. public string ET { get; set; }
  129. public string TT { get; set; }
  130. public string score { get; set; }
  131. public string detail { get; set; }
  132. }