Kq3Controller.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using Microsoft.Extensions.Logging;
  6. using Microsoft.Extensions.Options;
  7. using Microsoft.AspNetCore.Mvc;
  8. using Microsoft.AspNetCore.Http;
  9. using System.IO;
  10. using Library;
  11. using LitJson;
  12. using System.Threading.Tasks;
  13. using System.Reflection.Metadata.Ecma335;
  14. namespace MySystem.Areas.Api.Controllers
  15. {
  16. [Area("Api")]
  17. [Route("Api/v1/[controller]/[action]")]
  18. public class Kq3Controller : Admin.Controllers.BaseController
  19. {
  20. public Kq3Controller(IHttpContextAccessor accessor, ILogger<Admin.Controllers.BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
  21. {
  22. }
  23. #region 接收统一地址通知
  24. [HttpPost]
  25. [Route("/kxs3/notice/{BrandId:int}")]
  26. public string Notice(IFormCollection form, int BrandId = 1)
  27. {
  28. string requestMes = "{";
  29. LogHelper.Instance.WriteLog(DateTime.Now.ToString(), "接收统一地址通知");
  30. foreach (string key in form.Keys)
  31. {
  32. LogHelper.Instance.WriteLog(key + ":" + form[key].ToString(), "接收统一地址通知");
  33. if (key == "dataJson" || key == "extData")
  34. {
  35. requestMes += "\"" + key + "\":" + form[key].ToString() + ",";
  36. }
  37. else
  38. {
  39. requestMes += "\"" + key + "\":\"" + form[key].ToString() + "\",";
  40. }
  41. }
  42. requestMes = requestMes.TrimEnd(',');
  43. LogHelper.Instance.WriteLog("\n\n", "接收统一地址通知");
  44. requestMes += "}";
  45. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes + "#cut#" + BrandId;
  46. RedisDbconn.Instance.AddList("SpSingleNotice", content);
  47. return "SUCCESS";
  48. }
  49. #endregion
  50. #region 接收统一地址通知
  51. [HttpPost]
  52. [Route("/kxs/lkb/{Path}")]
  53. public Dictionary<string, object> publicnotice(string Path)
  54. {
  55. StreamReader sr = new StreamReader(Request.Body);
  56. string requestMes = sr.ReadToEnd();
  57. if (string.IsNullOrEmpty(requestMes))
  58. {
  59. return new Dictionary<string, object>();
  60. }
  61. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  62. LogHelper.Instance.WriteLog(content, "接收来客吧L版-" + Path + "通知");
  63. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  64. if(Path == "terminal-bind")
  65. {
  66. RedisDbconn.Instance.AddList("kxs_bind_list_27", content + "#cut#" + fileName);
  67. // function.WritePage("/redis/kxs_bind_list_27/", fileName + ".txt", content);
  68. }
  69. else if(Path == "trade")
  70. {
  71. RedisDbconn.Instance.AddList("kxs_trade_list_27", content + "#cut#" + fileName);
  72. // function.WritePage("/redis/kxs_trade_list_27/", fileName + ".txt", content);
  73. }
  74. else if(Path == "rebate")
  75. {
  76. RedisDbconn.Instance.AddList("kxs_rebate_list_27", content + "#cut#" + fileName);
  77. // function.WritePage("/redis/kxs_rebate_list_27/", fileName + ".txt", content);
  78. }
  79. string sign = "";
  80. Dictionary<string, object> back = PublicImportDataService.Instance.LkbCallBack(out sign);
  81. Response.Headers.Add("Content-Type", "application/json");
  82. Response.Headers.Add("X-Sign", sign);
  83. return back;
  84. }
  85. #endregion
  86. #region 接收统一地址通知
  87. [HttpPost]
  88. [Route("/wifi/{Path}")]
  89. public Dictionary<string, object> wifinotice(string Path)
  90. {
  91. StreamReader sr = new StreamReader(Request.Body);
  92. string requestMes = sr.ReadToEnd();
  93. if (string.IsNullOrEmpty(requestMes))
  94. {
  95. return new Dictionary<string, object>();
  96. }
  97. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  98. // LogHelper.Instance.WriteLog(content, "接收WIFI数据-" + Path + "通知");
  99. function.WriteLog(content, "接收WIFI数据-" + Path + "通知");
  100. RedisDbconn.Instance.AddList("wifi_data_list", Path + "#cut#" + requestMes);
  101. Dictionary<string, object> dic = new Dictionary<string, object>();
  102. dic.Add("code", 200);
  103. dic.Add("msg", "ok");
  104. return dic;
  105. }
  106. #endregion
  107. #region 接收联动掌中宝推送数据
  108. [HttpPost]
  109. [Route("/kxs3/notice/ld")]
  110. public string NoticeLd()
  111. {
  112. StreamReader sr = new StreamReader(Request.Body);
  113. string requestMes = sr.ReadToEnd();
  114. if (string.IsNullOrEmpty(requestMes))
  115. {
  116. return "FAIL";
  117. }
  118. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  119. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "联动掌中宝推送数据", "34");
  120. // function.WriteLog(DateTime.Now.ToString() + content, "联动掌中宝推送数据");
  121. JsonData jsonObj = JsonMapper.ToObject(requestMes);
  122. string serviceType = jsonObj["serviceType"].ToString();
  123. if(serviceType == "MATERIAL_BIND_STATUS_NOTIFY") RedisDbconn.Instance.AddList("kxs_bind_list_34", content);
  124. else if(serviceType == "PAY_ORDER_NOTIFY") RedisDbconn.Instance.AddList("kxs_trade_list_34", content);
  125. else if(serviceType == "CUSTOMER_INFO_REGISTER_NOTIFY") RedisDbconn.Instance.AddList("kxs_merchant_list_34", content);
  126. else if(serviceType == "MATERIALS_ACTIVATION_NOTIFY") RedisDbconn.Instance.AddList("kxs_active_list_34", content);
  127. else if(serviceType == "CUSTOMER_LAST_RATE_NOTIFY") RedisDbconn.Instance.AddList("kxs_rate_list_34", content);
  128. else RedisDbconn.Instance.AddList("kxs_ld_zzb_list", content);
  129. return "OK";
  130. }
  131. #endregion
  132. }
  133. }