TaskController.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. using molilian.core;
  2. using dodohold.core;
  3. using Microsoft.AspNetCore.Mvc;
  4. using Org.BouncyCastle.Ocsp;
  5. using System.Text.Json;
  6. using System.Runtime.InteropServices;
  7. using System.Net;
  8. namespace molilian.api.Controllers
  9. {
  10. [ApiController]
  11. [Route("[controller]/[action]")]
  12. public class TaskController : ControllerBase
  13. {
  14. protected IHttpContextAccessor _accessor;
  15. public TaskController(IHttpContextAccessor accessor)
  16. {
  17. _accessor = accessor;
  18. }
  19. [HttpGet]
  20. public ActionResult BatchInsertLogDB()
  21. {
  22. TkLogCore.BatchInsertLogDB();
  23. return new APIResult(new { success = true, message = "ok" });
  24. }
  25. [HttpGet]
  26. public async Task<ActionResult> GetHistoryOrders(int id, int sleep = 2000)
  27. {
  28. var list = TkPoolCore.List();
  29. if (list == null) return new APIResult(new { success = false, message = "没有有效账号", });
  30. if (id == 0) return new APIResult(new { success = false, message = "没有有效账号", });
  31. string message = string.Empty;
  32. int total = 0;
  33. foreach (var account in list)
  34. {
  35. if (id != account.id) continue;
  36. try
  37. {
  38. var alimama = new AlimamaPlus(account);
  39. total += alimama.GetHistoryOrders(sleep);
  40. }
  41. catch (Exception ex)
  42. {
  43. message = $"【订单接口异常】\t{account.name}\n{ex.Message}\n{ex.StackTrace}";
  44. NotifyCore.Notify(new NifyMessage
  45. {
  46. message = message,
  47. priority = NifyMessagePriority.high,
  48. tags = ["red_circle"]
  49. });
  50. continue;
  51. }
  52. }
  53. return new APIResult(new { success = true, message = "ok", total });
  54. }
  55. [HttpGet]
  56. public async Task<ActionResult> GetIncyOrders(int sleep = 2000)
  57. {
  58. var list = TkPoolCore.List();
  59. if (list == null) return new APIResult(new { success = false, message = "没有有效账号", });
  60. string message = string.Empty;
  61. int total = 0;
  62. foreach (var account in list)
  63. {
  64. #if DEBUG
  65. if (account.id != 13) continue;
  66. #endif
  67. try
  68. {
  69. var alimama = new AlimamaPlus(account);
  70. total += alimama.GetIncyOrders(sleep);
  71. }
  72. catch (Exception ex)
  73. {
  74. message = $"【订单接口异常】\t{account.name}\n{ex.Message}\n{ex.StackTrace}";
  75. NotifyCore.Notify(new NifyMessage
  76. {
  77. message = message,
  78. priority = NifyMessagePriority.high,
  79. tags = ["red_circle"]
  80. });
  81. continue;
  82. }
  83. }
  84. return new APIResult(new { success = true, message = "ok", total });
  85. }
  86. [HttpGet]
  87. public async Task<ActionResult> GetViolationuWarning()
  88. {
  89. var list = TkPoolCore.List();
  90. if (list == null) return new APIResult(new { success = false, message = "没有有效账号", });
  91. string message = string.Empty;
  92. foreach (var account in list)
  93. {
  94. try
  95. {
  96. var alimama = new AlimamaPlus(account);
  97. alimama.GetViolationuWarning();
  98. }
  99. catch (Exception ex)
  100. {
  101. message = $"【报表接口异常】FastReport\n{ex.Message}\n{ex.StackTrace}";
  102. NotifyCore.Notify(new NifyMessage
  103. {
  104. message = message,
  105. priority = NifyMessagePriority.high,
  106. tags = ["red_circle"]
  107. });
  108. continue;
  109. }
  110. }
  111. return new APIResult(new { success = true, message = "ok" });
  112. }
  113. [HttpGet]
  114. public async Task<ActionResult> DailyLogs(int intervalDay = 1)
  115. {
  116. try
  117. {
  118. AlimamaPlus.DailyLogs(intervalDay);
  119. }
  120. catch (Exception ex)
  121. {
  122. string message = $"【报表接口异常】DailyLogs\n{ex.Message}\n{ex.StackTrace}";
  123. NotifyCore.Notify(new NifyMessage
  124. {
  125. message = message,
  126. priority = NifyMessagePriority.high,
  127. tags = ["red_circle"]
  128. });
  129. }
  130. return new APIResult(new { success = true, message = "ok" });
  131. }
  132. [HttpGet]
  133. public async Task<ActionResult> GetDrawBalance()
  134. {
  135. var list = TkPoolCore.List();
  136. if (list == null) return new APIResult(new { success = false, message = "没有有效账号", });
  137. string message = string.Empty;
  138. foreach (var account in list)
  139. {
  140. try
  141. {
  142. var alimama = new AlimamaPlus(account);
  143. alimama.GetDrawBalance();
  144. }
  145. catch (Exception ex)
  146. {
  147. message = $"【报表接口异常】GetDrawBalance\n{ex.Message}\n{ex.StackTrace}";
  148. NotifyCore.Notify(new NifyMessage
  149. {
  150. message = message,
  151. priority = NifyMessagePriority.high,
  152. tags = ["red_circle"]
  153. });
  154. continue;
  155. }
  156. }
  157. return new APIResult(new { success = true, message = "ok" });
  158. }
  159. [HttpGet]
  160. public ActionResult FastReport()
  161. {
  162. var list = TkPoolCore.List();
  163. if (list == null) return new APIResult(new { success = false, message = "没有有效账号", });
  164. string message = string.Empty;
  165. foreach (var account in list)
  166. {
  167. try
  168. {
  169. var alimama = new AlimamaPlus(account);
  170. alimama.SaveReportOverview();
  171. }
  172. catch (Exception ex)
  173. {
  174. message = $"【报表接口异常】FastReport\n{ex.Message}\n{ex.StackTrace}";
  175. NotifyCore.Notify(new NifyMessage
  176. {
  177. message = message,
  178. priority = NifyMessagePriority.high,
  179. tags = ["red_circle"]
  180. });
  181. continue;
  182. }
  183. }
  184. return new APIResult(new { success = true, message = "ok" });
  185. }
  186. [HttpGet]
  187. public async Task<ActionResult> SaveReport()
  188. {
  189. var list = TkPoolCore.List();
  190. if (list == null) return new APIResult(new { success = false, message = "没有有效账号", });
  191. string message = string.Empty;
  192. foreach (var account in list)
  193. {
  194. try
  195. {
  196. var alimama = new AlimamaPlus(account);
  197. alimama.SaveReportHourtrend(DateTime.Now.AddDays(-1));
  198. alimama.SaveReportHourtrend(DateTime.Now);
  199. if (DateTime.Now.Hour >= 12 && DateTime.Now.Hour < 16)
  200. {
  201. DateTime date = DateTime.Now.AddDays(-1);
  202. alimama.FixReport(date);
  203. }
  204. }
  205. catch (Exception ex)
  206. {
  207. message = $"【报表接口异常】SaveReport\n{ex.Message}\n{ex.StackTrace}";
  208. NotifyCore.Notify(new NifyMessage
  209. {
  210. message = message,
  211. priority = NifyMessagePriority.high,
  212. tags = ["red_circle"]
  213. });
  214. continue;
  215. }
  216. }
  217. return new APIResult(new { success = true, message = "ok" });
  218. }
  219. [HttpGet]
  220. public async Task<ActionResult> FixReport(string dt)
  221. {
  222. if (!DateTime.TryParse(dt, out DateTime date))
  223. {
  224. return new APIResult(new { success = false, message = "日期错误", });
  225. }
  226. var list = TkPoolCore.List();
  227. if (list == null) return new APIResult(new { success = false, message = "没有有效账号", });
  228. string message = string.Empty;
  229. foreach (var account in list)
  230. {
  231. try
  232. {
  233. var alimama = new AlimamaPlus(account);
  234. while (date.Date < DateTime.Now.Date)
  235. {
  236. alimama.SaveReportHourtrend(date);
  237. alimama.FixReport(date);
  238. date = date.AddDays(1);
  239. }
  240. }
  241. catch (Exception ex)
  242. {
  243. message = $"【报表接口异常】SaveReport\n{ex.Message}\n{ex.StackTrace}";
  244. NotifyCore.Notify(new NifyMessage
  245. {
  246. message = message,
  247. priority = NifyMessagePriority.high,
  248. tags = ["red_circle"]
  249. });
  250. continue;
  251. }
  252. }
  253. return new APIResult(new { success = true, message = "ok" });
  254. }
  255. [HttpGet]
  256. public ActionResult RenewCookie(string name)
  257. {
  258. var account = new DBContext.Table("tk_pool").Get<TkPoolDTO>("name=@name", new { name });
  259. if (account == null) return new APIResult(new { success = false, message = "没有有效账号", });
  260. var alimama = new AlimamaPlus(account);
  261. (bool success, string message) = alimama.RenewCookie();
  262. return new APIResult(new { success, message });
  263. }
  264. }
  265. }