crawler.cs 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544
  1. using Microsoft.AspNetCore.Http;
  2. using Microsoft.AspNetCore.Mvc.Controllers;
  3. using Microsoft.AspNetCore.Mvc.Filters;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using dodohold.core;
  9. using Dataoke;
  10. using System.Text.RegularExpressions;
  11. using Org.BouncyCastle.Ocsp;
  12. using System.Diagnostics;
  13. using TencentCloud.Fmu.V20191213.Models;
  14. using Microsoft.VisualBasic;
  15. using System.Text.Json;
  16. using static System.Runtime.InteropServices.JavaScript.JSType;
  17. using TencentCloud.Cdn.V20180606.Models;
  18. using System.Net;
  19. using TencentCloud.Teo.V20220901.Models;
  20. using MySqlX.XDevAPI;
  21. namespace molilian.core
  22. {
  23. public partial class AlimamaPlus
  24. {
  25. /// <summary>
  26. /// 更新API调用日志(1天一次)
  27. /// </summary>
  28. /// <param name="intervalDay"></param>
  29. public static void DailyLogs(int intervalDay)
  30. {
  31. DateTime log_date = DateTime.Now.AddDays(-intervalDay).Date;
  32. var accounts = TkPoolCore.List();
  33. foreach (var account in accounts)
  34. {
  35. int accountId = account.id;
  36. string accountName = $"{account.id}";
  37. int total_count = RedisHelper.Get<int>($":total:{accountName}:{log_date:yyyyMMdd}");
  38. if (total_count == 0) accountName = account.name;
  39. total_count = RedisHelper.Get<int>($":total:{accountName}:{log_date:yyyyMMdd}");
  40. if (total_count == 0) continue;
  41. var success_count = RedisHelper.Get<int>($":total:{accountName}:success:{log_date:yyyyMMdd}");
  42. var abandon_count = RedisHelper.Get<int>($":total:{accountName}:放弃转链:{log_date:yyyyMMdd}");
  43. string success_percentage = string.Empty;
  44. string abandon_percentage = string.Empty;
  45. if (total_count > 0)
  46. {
  47. success_percentage = $"{success_count / (double)total_count * 100:f2}%";
  48. abandon_percentage = $"{abandon_count / (double)total_count * 100:f2}%";
  49. }
  50. var exist = new DBContext.Table("daily_logs")
  51. .Fields("id,log_date")
  52. .Get<dynamic>("log_date=@log_date AND accountId=@accountId", new { log_date, accountId });
  53. var createArgs = new DBContext.Table("daily_logs")
  54. .Add("total_count", total_count)
  55. .Add("abandon_count", abandon_count)
  56. .Add("abandon_percentage", abandon_percentage)
  57. .Add("success_count", success_count)
  58. .Add("success_percentage", success_percentage)
  59. .Add("last_time", DateTime.Now);
  60. if (exist == null)
  61. {
  62. createArgs.Add("channel", 0)
  63. .Add("accountId", accountId)
  64. .Add("accountName", account.company)
  65. .Add("log_date", log_date)
  66. .Add("create_time", DateTime.Now)
  67. .Create();
  68. }
  69. else
  70. {
  71. createArgs.Where("id=@id", new { exist.id }).Update();
  72. }
  73. }
  74. int all_total_count = RedisHelper.Get<int>($":total:all:{log_date:yyyyMMdd}");
  75. var all_success_count = RedisHelper.Get<int>($":total:all:success:{log_date:yyyyMMdd}");
  76. var all_abandon_count = RedisHelper.Get<int>($":total:all:放弃转链:{log_date:yyyyMMdd}");
  77. string all_success_percentage = string.Empty;
  78. string all_abandon_percentage = string.Empty;
  79. if (all_total_count > 0)
  80. {
  81. all_success_percentage = $"{all_success_count / (double)all_total_count * 100:f2}%";
  82. all_abandon_percentage = $"{all_abandon_count / (double)all_total_count * 100:f2}%";
  83. }
  84. var exist2 = new DBContext.Table("daily_logs")
  85. .Fields("id,log_date")
  86. .Get<dynamic>("log_date=@log_date AND accountId=@accountId", new { log_date, accountId=0 });
  87. var createArgs2 = new DBContext.Table("daily_logs")
  88. .Add("total_count", all_total_count)
  89. .Add("abandon_count", all_abandon_count)
  90. .Add("abandon_percentage", all_abandon_percentage)
  91. .Add("success_count", all_success_count)
  92. .Add("success_percentage", all_success_percentage)
  93. .Add("last_time", DateTime.Now);
  94. if (exist2 == null)
  95. {
  96. createArgs2.Add("channel", 0)
  97. .Add("accountId", 0)
  98. .Add("accountName", "all")
  99. .Add("log_date", log_date)
  100. .Add("create_time", DateTime.Now)
  101. .Create();
  102. }
  103. else
  104. {
  105. createArgs2.Where("id=@id", new { exist2.id }).Update();
  106. }
  107. string sql = @$"
  108. INSERT INTO daily_logs (channel, accountId, accountName, log_date, total_count, abandon_count, abandon_percentage, success_count, success_percentage, create_time, last_time)
  109. SELECT
  110. 0 AS channel, 0 AS accountId, 'all' AS accountName,
  111. DATE_SUB(CURDATE(), INTERVAL {intervalDay} DAY) AS log_date,
  112. COUNT(*) AS total_count,
  113. COALESCE(SUM(CASE WHEN message = '放弃转链' THEN 1 ELSE 0 END), 0) AS abandon_count,
  114. COALESCE(CONCAT(ROUND((SUM(CASE WHEN message = '放弃转链' THEN 1 ELSE 0 END) / COUNT(*)) * 100, 2), '%'), 0) AS abandon_percentage,
  115. COALESCE(SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END), 0) AS success_count,
  116. COALESCE(CONCAT(ROUND((SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) / COUNT(*)) * 100, 2), '%'), 0) AS success_percentage,
  117. NOW() AS create_time,
  118. NOW() AS last_time
  119. FROM tk_logs
  120. WHERE DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL {intervalDay} DAY)
  121. ON DUPLICATE KEY UPDATE
  122. log_date = VALUES(log_date),
  123. total_count = VALUES(total_count),
  124. abandon_count = VALUES(abandon_count),
  125. abandon_percentage = VALUES(abandon_percentage),
  126. success_count = VALUES(success_count),
  127. success_percentage = VALUES(success_percentage),
  128. last_time = NOW();
  129. ";
  130. string sql2 = @$"
  131. INSERT INTO daily_logs (channel, accountId, accountName, log_date, total_count, abandon_count, abandon_percentage, success_count, success_percentage, create_time, last_time)
  132. SELECT
  133. channel, accountId, accountName, DATE_SUB(CURDATE(), INTERVAL {intervalDay} DAY) AS log_date,
  134. COUNT(*) AS total_count,
  135. COALESCE(SUM(CASE WHEN message = '放弃转链' THEN 1 ELSE 0 END), 0) AS abandon_count,
  136. COALESCE(CONCAT(ROUND((SUM(CASE WHEN message = '放弃转链' THEN 1 ELSE 0 END) / COUNT(*)) * 100, 2), '%'), 0) AS abandon_percentage,
  137. COALESCE(SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END), 0) AS success_count,
  138. COALESCE(CONCAT(ROUND((SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) / COUNT(*)) * 100, 2), '%'), 0) AS success_percentage,
  139. NOW() AS create_time,
  140. NOW() AS last_time
  141. FROM tk_logs
  142. WHERE DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL {intervalDay} DAY)
  143. GROUP BY channel, accountId, accountName
  144. ON DUPLICATE KEY UPDATE
  145. log_date = VALUES(log_date),
  146. total_count = VALUES(total_count),
  147. abandon_count = VALUES(abandon_count),
  148. abandon_percentage = VALUES(abandon_percentage),
  149. success_count = VALUES(success_count),
  150. success_percentage = VALUES(success_percentage),
  151. last_time = NOW();
  152. ";
  153. //DBContext.Execute(sql, new { });
  154. //DBContext.Execute(sql2, new { });
  155. }
  156. /// <summary>
  157. /// 事实动态接口(5分钟一次)
  158. /// </summary>
  159. /// <param name="date"></param>
  160. public void SaveReportOverview()
  161. {
  162. DateTime date = DateTime.Now;
  163. TkReportDTO result = new TkReportDTO();
  164. try
  165. {
  166. string t = $"{date.Convert2UnixTimestamp(true)}";
  167. string dt = date.ToString("yyyy-MM-dd");
  168. string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/data.lens.report.overview.json?" +
  169. $"t={t}&_tb_token_={_tb_token}&ruleEnum=pub_overview&startDate={dt}&endDate={dt}&fixPeriod=1d";
  170. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  171. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  172. .AddHeaders("Cookie", _cookies);
  173. client.Proxy = _proxy;
  174. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  175. var response = client.Request(url);
  176. var body = response.Body();
  177. var root = body.Convert2JsonElement();
  178. int resultCode = root.Read<int>("resultCode", 0);
  179. bool success = root.Read("success", false);
  180. if (!success)
  181. {
  182. new LoggerLibrary("report", "error")
  183. .Info(url, body)
  184. .Save();
  185. throw new Exception(body);
  186. }
  187. var data = root.ElementRead("data").ElementRead("data");
  188. result.eff_ord_num = data.Read<int>("eff_ord_num", 0);
  189. result.eff_ord_amt = data.Read<decimal>("eff_ord_amt", 0);
  190. result.eff_tk_disp_tfee = data.Read<decimal>("eff_tk_disp_tfee", 0);
  191. result.uclk_uv_56 = data.Read<int>("uclk_uv_56", 0);
  192. result.uclk_pv_56 = data.Read<int>("uclk_pv_56", 0);
  193. result.uclt_uv_56 = data.Read<int>("uclt_uv_56", 0);
  194. result.ucart_uv_56 = data.Read<int>("ucart_uv_56", 0);
  195. result.dep_ord_num_56 = data.Read<int>("dep_ord_num_56", 0);
  196. result.dep_ord_dep_amt_56 = data.Read<decimal>("dep_ord_dep_amt_56", 0);
  197. result.pay_ord_num_56 = data.Read<int>("pay_ord_num_56", 0);
  198. result.pay_ord_amt_56 = data.Read<decimal>("pay_ord_amt_56", 0);
  199. result.pay_tk_disp_tfee_56 = data.Read<decimal>("pay_tk_disp_tfee_56", 0);
  200. result.pay_ord_uv_56 = data.Read<int>("pay_ord_uv_56", 0);
  201. result.sett_ord_num_56 = data.Read<int>("sett_ord_num_56", 0);
  202. result.sett_ord_amt_56 = data.Read<decimal>("sett_ord_amt_56", 0);
  203. result.sett_tk_disp_tfee_56 = data.Read<decimal>("sett_tk_disp_tfee_56", 0);
  204. result.eff_tk_disp_tfee = data.Read<decimal>("eff_tk_disp_tfee", 0);
  205. result.eff_tk_disp_tfee = data.Read<decimal>("eff_tk_disp_tfee", 0);
  206. result.eff_tk_disp_tfee = data.Read<decimal>("eff_tk_disp_tfee", 0);
  207. result.eff_tk_disp_tfee = data.Read<decimal>("eff_tk_disp_tfee", 0);
  208. result.eff_tk_disp_tfee = data.Read<decimal>("eff_tk_disp_tfee", 0);
  209. result.eff_tk_disp_tfee = data.Read<decimal>("eff_tk_disp_tfee", 0);
  210. DateTime report_date = date.Date;
  211. if (report_date == DateTime.Now.Date)
  212. {
  213. TkPoolCore.SaveIncomeAmt(_accountId.ToString(), result.eff_tk_disp_tfee);
  214. TkPoolCore.SaveIncomeAmt(_accountName, result.eff_tk_disp_tfee);
  215. EachSaveReportOverview(report_date.AddHours(DateTime.Now.Hour), "tk_report_hourtrend", result);
  216. EachSaveReportOverview(report_date, "tk_report", result);
  217. }
  218. }
  219. catch (Exception ex) { }
  220. }
  221. private void EachSaveReportOverview(DateTime report_date, string tableName, TkReportDTO data)
  222. {
  223. var exist = new DBContext.Table(tableName)
  224. .Fields("id,report_date")
  225. .Get<dynamic>("report_date=@report_date AND accountId=@accountId",
  226. new { report_date, accountId = _accountId });
  227. var createArgs = new DBContext.Table(tableName)
  228. .Add("uclk_uv_56", data.uclk_uv_56)
  229. .Add("uclk_pv_56", data.uclk_pv_56)
  230. .Add("uclt_uv_56", data.uclt_uv_56)
  231. .Add("ucart_uv_56", data.ucart_uv_56)
  232. .Add("dep_ord_num_56", data.dep_ord_num_56)
  233. .Add("dep_ord_dep_amt_56", data.dep_ord_dep_amt_56)
  234. .Add("pay_ord_num_56", data.pay_ord_num_56)
  235. .Add("pay_ord_amt_56", data.pay_ord_amt_56)
  236. .Add("pay_tk_disp_tfee_56", data.pay_tk_disp_tfee_56)
  237. .Add("pay_ord_uv_56", data.pay_ord_uv_56)
  238. .Add("sett_ord_num_56", data.sett_ord_num_56)
  239. .Add("sett_ord_amt_56", data.sett_ord_amt_56)
  240. .Add("sett_tk_disp_tfee_56", data.sett_tk_disp_tfee_56)
  241. .Add("eff_ord_num", data.eff_ord_num)
  242. .Add("eff_ord_amt", data.eff_ord_amt)
  243. .Add("eff_tk_disp_tfee", data.eff_tk_disp_tfee);
  244. if (exist == null)
  245. {
  246. createArgs.Add("accountId", _accountId)
  247. .Add("accountName", _company)
  248. .Add("report_date", report_date)
  249. .Add("create_time", DateTime.Now)
  250. .Add("last_time", DateTime.Now)
  251. .Create();
  252. }
  253. else
  254. {
  255. createArgs.Add("last_time", DateTime.Now)
  256. .Where("id=@id", new { exist.id })
  257. .Update();
  258. }
  259. }
  260. /// <summary>
  261. /// 修正点击数
  262. /// </summary>
  263. public void FixReport(DateTime date)
  264. {
  265. TkReportDTO result = new TkReportDTO();
  266. try
  267. {
  268. string t = $"{date.Convert2UnixTimestamp(true)}";
  269. string dt = date.ToString("yyyy-MM-dd");
  270. string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/data.lens.report.overview.json?" +
  271. $"t={t}&_tb_token_={_tb_token}&ruleEnum=pub_overview&startDate={dt}&endDate={dt}&fixPeriod=1d";
  272. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  273. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  274. .AddHeaders("Cookie", _cookies);
  275. client.Proxy = _proxy;
  276. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  277. var response = client.Request(url);
  278. var body = response.Body();
  279. var root = body.Convert2JsonElement();
  280. int resultCode = root.Read<int>("resultCode", 0);
  281. bool success = root.Read("success", false);
  282. if (!success)
  283. {
  284. new LoggerLibrary("report", "error")
  285. .Info(url, body)
  286. .Save();
  287. throw new Exception(body);
  288. }
  289. var data = root.ElementRead("data").ElementRead("data");
  290. result.fix_uclk_pv_56 = data.Read<int>("uclk_pv_56", 0);
  291. DateTime report_date = date.Date;
  292. var exist = new DBContext.Table("tk_report")
  293. .Fields("id,report_date")
  294. .Get<dynamic>("report_date=@report_date AND accountId=@accountId",
  295. new { report_date, accountId = _accountId });
  296. var createArgs = new DBContext.Table("tk_report")
  297. .Add("fix_uclk_pv_56", result.fix_uclk_pv_56);
  298. if (exist == null)
  299. {
  300. createArgs.Add("accountId", _accountId)
  301. .Add("accountName", _company)
  302. .Add("report_date", report_date)
  303. .Add("create_time", DateTime.Now)
  304. .Add("last_time", DateTime.Now)
  305. .Create();
  306. }
  307. else
  308. {
  309. createArgs.Add("last_time", DateTime.Now)
  310. .Where("id=@id", new { exist.id })
  311. .Update();
  312. }
  313. }
  314. catch (Exception ex) { }
  315. }
  316. /// <summary>
  317. /// 1小时更新一次
  318. /// </summary>
  319. public void SaveReportHourtrend(DateTime date)
  320. {
  321. string t = $"{DateTime.Now.Convert2UnixTimestamp(true)}";
  322. string dt = date.ToString("yyyy-MM-dd");
  323. string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/data.lens.report.hourtrend.dod.json?" +
  324. $"t={t}&_tb_token_={_tb_token}&ruleEnum=pub_homepage&startDate={dt}&endDate={dt}&fixPeriod=realTime";
  325. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  326. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  327. .AddHeaders("Cookie", _cookies);
  328. client.Proxy = _proxy;
  329. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  330. var response = client.Request(url);
  331. var body = response.Body();
  332. var root = body.Convert2JsonElement();
  333. int resultCode = root.Read<int>("resultCode", 0);
  334. bool success = root.Read("success", false);
  335. if (!success)
  336. {
  337. new LoggerLibrary("report", "error")
  338. .Info(url, body)
  339. .Save();
  340. throw new Exception(body);
  341. }
  342. var data_list = root.ElementRead("data").ElementRead("data");
  343. foreach (var data in data_list.EnumerateArray())
  344. {
  345. string xAxis = data.Read<string>("xAxis");
  346. string _report_date = $"{dt} {xAxis}";
  347. EachSaveReport(_report_date, "tk_report_hourtrend", data);
  348. if ("23:00".Equals(xAxis))
  349. {
  350. EachSaveReport(dt, "tk_report", data);
  351. }
  352. }
  353. }
  354. private void EachSaveReport(string _report_date, string tableName, JsonElement data)
  355. {
  356. _ = DateTime.TryParse(_report_date, out DateTime report_date);
  357. var exist = new DBContext.Table(tableName)
  358. .Fields("id,report_date")
  359. .Get<dynamic>("report_date=@report_date AND accountId=@accountId",
  360. new { report_date, accountId = _accountId });
  361. if (exist == null)
  362. {
  363. new DBContext.Table(tableName)
  364. .Fill(data)
  365. .Loader<int>("uclk_uv_56", 0)
  366. .Loader<int>("uclk_pv_56", 0)
  367. .Loader<int>("uclt_uv_56", 0)
  368. .Loader<int>("ucart_uv_56", 0)
  369. .Loader<int>("dep_ord_num_56", 0)
  370. .Loader<decimal>("dep_ord_dep_amt_56", 0)
  371. .Loader<int>("pay_ord_num_56", 0)
  372. .Loader<decimal>("pay_ord_amt_56", 0)
  373. .Loader<decimal>("pay_tk_disp_tfee_56", 0)
  374. .Loader<int>("pay_ord_uv_56", 0)
  375. .Loader<int>("sett_ord_num_56", 0)
  376. .Loader<decimal>("sett_ord_amt_56", 0)
  377. .Loader<decimal>("sett_tk_disp_tfee_56", 0)
  378. .Add("accountId", _accountId)
  379. .Add("accountName", _company)
  380. .Add("report_date", report_date)
  381. .Add("create_time", DateTime.Now)
  382. .Add("last_time", DateTime.Now)
  383. .Create();
  384. }
  385. else
  386. {
  387. new DBContext.Table(tableName)
  388. .Fill(data)
  389. .Loader<int>("uclk_uv_56", 0)
  390. .Loader<int>("uclk_pv_56", 0)
  391. .Loader<int>("uclt_uv_56", 0)
  392. .Loader<int>("ucart_uv_56", 0)
  393. .Loader<int>("dep_ord_num_56", 0)
  394. .Loader<decimal>("dep_ord_dep_amt_56", 0)
  395. .Loader<int>("pay_ord_num_56", 0)
  396. .Loader<decimal>("pay_ord_amt_56", 0)
  397. .Loader<decimal>("pay_tk_disp_tfee_56", 0)
  398. .Loader<int>("pay_ord_uv_56", 0)
  399. .Loader<int>("sett_ord_num_56", 0)
  400. .Loader<decimal>("sett_ord_amt_56", 0)
  401. .Loader<decimal>("sett_tk_disp_tfee_56", 0)
  402. .Add("last_time", DateTime.Now)
  403. .Where("id=@id", new { exist.id })
  404. .Update();
  405. }
  406. }
  407. /// <summary>
  408. /// 警告消息
  409. /// </summary>
  410. public void GetViolationuWarning()
  411. {
  412. try
  413. {
  414. string url = "https://media.alimama.com/violationu2/warning_instance_page_v2.json?r=mx_208&toPage=1&pageSize=40&params=";
  415. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  416. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  417. .AddHeaders("Cookie", _cookies);
  418. client.Proxy = _proxy;
  419. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  420. var response = client.Request(url);
  421. var body = response.Body();
  422. var root = body.Convert2JsonElement();
  423. int resultCode = root.Read<int>("resultCode", 0);
  424. int totalCount = root.PathRead<int>("data.totalCount", 0);
  425. bool success = root.Read("success", false);
  426. if (!success)
  427. {
  428. new LoggerLibrary("violationu", "warning_error")
  429. .Info(url, body)
  430. .Save();
  431. throw new Exception(body);
  432. }
  433. if (totalCount == 0) return;
  434. new LoggerLibrary("violationu", "warning").Info(url, body).Save();
  435. var list = root.ElementRead("data").ElementRead("result").EnumerateArray();
  436. foreach (var data in list)
  437. {
  438. var violation_commission = data.PathRead<decimal>("mediaInfo.订单虚假交易违规佣金", 0);
  439. new DBContext.Table("alimama_warning")
  440. .Fill(data)
  441. .Loader<int>("filterRuleId", 0)
  442. .Loader<long>("gmtCreate", 0)
  443. .Loader<long>("id", 0, "ali_id")
  444. .Loader<string>("idStr", string.Empty)
  445. .Loader<int>("mediaDimension", 0)
  446. .Loader<long>("mediaId", 0)
  447. .Loader<int>("mediaInfo.abn_cnt", 0, "abn_cnt")
  448. .Add("violation_commission", violation_commission)
  449. .Loader<int>("mediaInfo.warning_cnt", 0, "warning_cnt")
  450. .Loader<string>("mediaName", string.Empty)
  451. .Loader<long>("memberId", 0)
  452. .Loader<string>("noticeCategory", string.Empty)
  453. .Loader<int>("noticeTemplateId", 0)
  454. .Loader<string>("noticeTemplateName", string.Empty)
  455. .Loader<string>("orderFile", string.Empty)
  456. .Loader<string>("pid", string.Empty)
  457. .Loader<int>("punishRuleId", 0)
  458. .Loader<string>("riskType", string.Empty)
  459. .Loader<string>("roleName", string.Empty)
  460. .Loader<string>("ruleLink", string.Empty)
  461. .Loader<bool>("showOrderDetail", false)
  462. .Loader<int>("status", 0, "ali_status")
  463. .Loader<string>("warningText", string.Empty)
  464. .Add("accountName", _company)
  465. .Add("status", true)
  466. .Add("create_time", DateTime.Now)
  467. .Add("last_time", DateTime.Now)
  468. .Create(DBContext.InsertType.REPLACE);
  469. }
  470. }
  471. catch (Exception ex) { }
  472. }
  473. }
  474. }