StatNew2.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520
  1. using System;
  2. using System.Collections.Generic;
  3. using Library;
  4. using LitJson;
  5. using System.Linq;
  6. using System.Data;
  7. using System.Threading;
  8. using MySystem.PxcModels2;
  9. namespace MySystem
  10. {
  11. public class StatNew2
  12. {
  13. public readonly static StatNew2 Instance = new StatNew2();
  14. private StatNew2()
  15. { }
  16. // 统计交易额V2
  17. public void Start()
  18. {
  19. Thread th = new Thread(StartDo);
  20. th.IsBackground = true;
  21. th.Start();
  22. }
  23. public void StartDo()
  24. {
  25. while (true)
  26. {
  27. if(DateTime.Now.Hour > 10 && DateTime.Now.Hour < 13)
  28. {
  29. string date = DateTime.Now.ToString("yyyyMMdd");
  30. string check = function.ReadInstance("/ResetTrade/" + date + ".txt");
  31. if(string.IsNullOrEmpty(check))
  32. {
  33. function.WritePage("/ResetTrade/", date + ".txt", DateTime.Now.ToString());
  34. StatTradeAmount(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"));
  35. }
  36. }
  37. if(DateTime.Now.Hour >= 3 && RedisDbconn.Instance.Get<string>("StatServerStatus") == "1")
  38. {
  39. StatTradeAmount(DateTime.Now.ToString("yyyy-MM-dd"));
  40. }
  41. Thread.Sleep(900000);
  42. }
  43. }
  44. public void StartReset()
  45. {
  46. Thread th = new Thread(StartResetDo);
  47. th.IsBackground = true;
  48. th.Start();
  49. }
  50. public void StartResetDo()
  51. {
  52. while (true)
  53. {
  54. string date = RedisDbconn.Instance.RPop<string>("StatNew2Queue");
  55. if(!string.IsNullOrEmpty(date))
  56. {
  57. StatTradeAmount(date);
  58. Thread.Sleep(2000);
  59. }
  60. else
  61. {
  62. Thread.Sleep(60000);
  63. }
  64. }
  65. }
  66. public void StatTradeAmount(string today)
  67. {
  68. string date = today.Replace("-", "");
  69. WebCMSEntities db = new WebCMSEntities();
  70. KxsMainModels.WebCMSEntities maindb = new KxsMainModels.WebCMSEntities();
  71. List<UserAmountSummary> userstat = new List<UserAmountSummary>();
  72. List<MerchantAmountSummay> merstat = new List<MerchantAmountSummay>();
  73. List<QrCodeAmountSummay> snstat = new List<QrCodeAmountSummay>();
  74. try
  75. {
  76. string start = today + " 00:00:00";
  77. string end = today + " 23:59:59";
  78. function.WriteLog("开始时间:" + start, "统计商户和创客交易额日志2");
  79. DataTable idsDt = CustomerSqlConn.dtable("select distinct UserId from ConsumerOrders where CreateDate>='" + start + "' and CreateDate<='" + end + "' and Status>0", AppConfig.Base.SqlConn2);
  80. function.WriteLog("查询条数:" + idsDt.Rows.Count, "统计商户和创客交易额日志2");
  81. function.WriteLog("1--" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "统计商户和创客交易额日志2");
  82. if(idsDt.Rows.Count > 0)
  83. {
  84. List<int> idlist = new List<int>();
  85. foreach (DataRow idsDr in idsDt.Rows)
  86. {
  87. idlist.Add(int.Parse(function.CheckInt(idsDr["UserId"].ToString())));
  88. }
  89. List<KxsMainModels.Users> users = maindb.Users.Where(m => idlist.Contains(m.Id)).ToList();
  90. DataTable selfDt = CustomerSqlConn.dtable("select UserId,MerchantId,SnNo,PayMode,IsAct,DATE_FORMAT(CreateDate,'%Y%m%d'),sum(PayMoney),count(Id),sum(MaxDivi),sum(MerchantActualAmount),Sort from ConsumerOrders where CreateDate>='" + start + "' and CreateDate<='" + end + "' and Status>0 group by UserId,MerchantId,SnNo,PayMode,IsAct,DATE_FORMAT(CreateDate,'%Y%m%d'),Sort", AppConfig.Base.SqlConn2);
  91. if (selfDt.Rows.Count > 0)
  92. {
  93. foreach (DataRow selfDr in selfDt.Rows)
  94. {
  95. int UserId = int.Parse(selfDr["UserId"].ToString());
  96. KxsMainModels.Users user = users.FirstOrDefault(m => m.Id == UserId) ?? new KxsMainModels.Users();
  97. string ParentNav = user.ParentNav;
  98. int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
  99. int PayMode = int.Parse(selfDr["PayMode"].ToString());
  100. int IsAct = int.Parse(selfDr["IsAct"].ToString());
  101. string SnNo = selfDr["SnNo"].ToString();
  102. string TradeDate = selfDr[5].ToString();
  103. decimal TradeAmount = decimal.Parse(selfDr[6].ToString());
  104. int TradeCount = int.Parse(selfDr[7].ToString());
  105. decimal MaxDivi = decimal.Parse(selfDr[8].ToString());
  106. decimal ActualAmount = decimal.Parse(selfDr[9].ToString());
  107. string TradeMonth = TradeDate.Substring(0, 6);
  108. int Sort = int.Parse(selfDr["Sort"].ToString());
  109. //创客交易额
  110. UserAmountSummary selfStat = userstat.FirstOrDefault(m => m.UserId == UserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "self" && m.Sort == Sort);
  111. if (selfStat == null)
  112. {
  113. userstat.Add(new UserAmountSummary()
  114. {
  115. UserId = UserId,
  116. TradeMonth = TradeMonth,
  117. TradeDate = TradeDate,
  118. PayMode = PayMode,
  119. IsAct = IsAct,
  120. SeoTitle = "self",
  121. Sort = Sort,
  122. TotalAmount = TradeAmount,
  123. TradeCount = TradeCount,
  124. });
  125. }
  126. else
  127. {
  128. selfStat.TotalAmount += TradeAmount;
  129. selfStat.TradeCount += TradeCount;
  130. }
  131. ParentNav += "," + UserId + ",";
  132. if (!string.IsNullOrEmpty(ParentNav))
  133. {
  134. string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
  135. foreach (string NavUserIdString in ParentNavList)
  136. {
  137. int NavUserId = int.Parse(NavUserIdString);
  138. UserAmountSummary teamStat = userstat.FirstOrDefault(m => m.UserId == NavUserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "team" && m.Sort == Sort);
  139. if (teamStat == null)
  140. {
  141. userstat.Add(new UserAmountSummary()
  142. {
  143. UserId = NavUserId,
  144. TradeMonth = TradeMonth,
  145. TradeDate = TradeDate,
  146. PayMode = PayMode,
  147. IsAct = IsAct,
  148. SeoTitle = "team",
  149. Sort = Sort,
  150. TotalAmount = TradeAmount,
  151. TradeCount = TradeCount,
  152. });
  153. }
  154. else
  155. {
  156. teamStat.TotalAmount += TradeAmount;
  157. teamStat.TradeCount += TradeCount;
  158. }
  159. }
  160. }
  161. //商户交易额
  162. MerchantAmountSummay merchantStat = merstat.FirstOrDefault(m => m.MerchantId == MerchantId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
  163. if (merchantStat == null)
  164. {
  165. merstat.Add(new MerchantAmountSummay()
  166. {
  167. MerchantId = MerchantId,
  168. TradeMonth = TradeMonth,
  169. TradeDate = TradeDate,
  170. PayMode = PayMode,
  171. IsAct = IsAct,
  172. TradeAmount = TradeAmount,
  173. TradeCount = TradeCount,
  174. TotalActual = ActualAmount,
  175. });
  176. }
  177. else
  178. {
  179. merchantStat.TradeAmount += TradeAmount;
  180. merchantStat.TradeCount += TradeCount;
  181. merchantStat.TotalActual += ActualAmount;
  182. }
  183. //码牌交易额
  184. QrCodeAmountSummay qrcode = snstat.FirstOrDefault(m => m.SnNo == SnNo && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
  185. if (qrcode == null)
  186. {
  187. snstat.Add(new QrCodeAmountSummay()
  188. {
  189. SnNo = SnNo,
  190. TradeMonth = TradeMonth,
  191. TradeDate = TradeDate,
  192. PayMode = PayMode,
  193. IsAct = IsAct,
  194. TradeAmount = TradeAmount,
  195. TradeCount = TradeCount,
  196. TotalActual = ActualAmount,
  197. });
  198. }
  199. else
  200. {
  201. qrcode.TradeAmount += TradeAmount;
  202. qrcode.TradeCount += TradeCount;
  203. qrcode.TotalActual += ActualAmount;
  204. }
  205. }
  206. }
  207. }
  208. }
  209. catch (Exception ex)
  210. {
  211. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户和创客交易额异常");
  212. }
  213. using (var tran = db.Database.BeginTransaction())
  214. {
  215. try
  216. {
  217. List<UserAmountSummary> userlist = db.UserAmountSummary.Where(m => m.TradeDate == date).ToList();
  218. List<MerchantAmountSummay> merlist = db.MerchantAmountSummay.Where(m => m.TradeDate == date).ToList();
  219. List<QrCodeAmountSummay> snlist = db.QrCodeAmountSummay.Where(m => m.TradeDate == date).ToList();
  220. foreach(UserAmountSummary substat in userstat)
  221. {
  222. function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(substat));
  223. UserAmountSummary selfStat = userlist.FirstOrDefault(m => m.UserId == substat.UserId && m.IsAct == substat.IsAct && m.TradeMonth == substat.TradeMonth && m.TradeDate == substat.TradeDate && m.PayMode == substat.PayMode && m.SeoTitle == substat.SeoTitle && m.Sort == substat.Sort);
  224. if (selfStat == null)
  225. {
  226. db.UserAmountSummary.Add(new UserAmountSummary()
  227. {
  228. UserId = substat.UserId,
  229. TradeMonth = substat.TradeMonth,
  230. TradeDate = substat.TradeDate,
  231. PayMode = substat.PayMode,
  232. IsAct = substat.IsAct,
  233. SeoTitle = substat.SeoTitle,
  234. Sort = substat.Sort,
  235. TotalAmount = substat.TotalAmount,
  236. TradeCount = substat.TradeCount,
  237. });
  238. }
  239. else
  240. {
  241. UserAmountSummary edit = db.UserAmountSummary.FirstOrDefault(m => m.Id == selfStat.Id);
  242. if(edit != null)
  243. {
  244. edit.TotalAmount = substat.TotalAmount;
  245. edit.TradeCount = substat.TradeCount;
  246. }
  247. }
  248. }
  249. db.SaveChanges();
  250. foreach(MerchantAmountSummay substat in merstat)
  251. {
  252. function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(substat));
  253. MerchantAmountSummay merchantStat = merlist.FirstOrDefault(m => m.MerchantId == substat.MerchantId && m.IsAct == substat.IsAct && m.TradeMonth == substat.TradeMonth && m.TradeDate == substat.TradeDate && m.PayMode == substat.PayMode);
  254. if (merchantStat == null)
  255. {
  256. db.MerchantAmountSummay.Add(new MerchantAmountSummay()
  257. {
  258. MerchantId = substat.MerchantId,
  259. TradeMonth = substat.TradeMonth,
  260. TradeDate = substat.TradeDate,
  261. PayMode = substat.PayMode,
  262. IsAct = substat.IsAct,
  263. TradeAmount = substat.TradeAmount,
  264. TradeCount = substat.TradeCount,
  265. TotalActual = substat.TotalActual,
  266. });
  267. }
  268. else
  269. {
  270. MerchantAmountSummay edit = db.MerchantAmountSummay.FirstOrDefault(m => m.Id == merchantStat.Id);
  271. if(edit != null)
  272. {
  273. edit.TradeAmount = substat.TradeAmount;
  274. edit.TradeCount = substat.TradeCount;
  275. edit.TotalActual = substat.TotalActual;
  276. }
  277. }
  278. }
  279. db.SaveChanges();
  280. foreach(QrCodeAmountSummay substat in snstat)
  281. {
  282. function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(substat));
  283. QrCodeAmountSummay qrcode = snlist.FirstOrDefault(m => m.SnNo == substat.SnNo && m.IsAct == substat.IsAct && m.TradeMonth == substat.TradeMonth && m.TradeDate == substat.TradeDate && m.PayMode == substat.PayMode);
  284. if (qrcode == null)
  285. {
  286. db.QrCodeAmountSummay.Add(new QrCodeAmountSummay()
  287. {
  288. SnNo = substat.SnNo,
  289. TradeMonth = substat.TradeMonth,
  290. TradeDate = substat.TradeDate,
  291. PayMode = substat.PayMode,
  292. IsAct = substat.IsAct,
  293. TradeAmount = substat.TradeAmount,
  294. TradeCount = substat.TradeCount,
  295. TotalActual = substat.TotalActual,
  296. });
  297. }
  298. else
  299. {
  300. QrCodeAmountSummay edit = db.QrCodeAmountSummay.FirstOrDefault(m => m.Id == qrcode.Id);
  301. if(edit != null)
  302. {
  303. edit.TradeAmount = substat.TradeAmount;
  304. edit.TradeCount = substat.TradeCount;
  305. edit.TotalActual = substat.TotalActual;
  306. }
  307. }
  308. }
  309. db.SaveChanges();
  310. tran.Commit();
  311. }
  312. catch (Exception ex)
  313. {
  314. tran.Rollback();
  315. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户和创客交易额入库异常");
  316. }
  317. }
  318. db.Dispose();
  319. maindb.Dispose();
  320. function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "统计商户和创客交易额日志2");
  321. }
  322. // 统计创客激活数
  323. public void StartPosActNum()
  324. {
  325. Thread th = new Thread(StartPosActNumFor);
  326. th.IsBackground = true;
  327. th.Start();
  328. }
  329. public void StartPosActNumFor()
  330. {
  331. while (true)
  332. {
  333. if(DateTime.Now.Hour >= 3 && RedisDbconn.Instance.Get<string>("StatServerStatus") == "1")
  334. {
  335. StartPosActNumEverTime();
  336. }
  337. Thread.Sleep(20000);
  338. }
  339. }
  340. public void StartPosActNumEverTime()
  341. {
  342. function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "实时执行创客激活数日志");
  343. WebCMSEntities db = new WebCMSEntities();
  344. KxsMainModels.WebCMSEntities maindb = new KxsMainModels.WebCMSEntities();
  345. try
  346. {
  347. DataTable idsDt = CustomerSqlConn.dtable("select Id from MerchantInfo where ActStat=0 and (Status=2 or QueryCount=2) and BrandId=0 and UserId>0 and UpdateDate is not null limit 50", AppConfig.Base.SqlConn2);
  348. if(idsDt.Rows.Count > 0)
  349. {
  350. string ids = "";
  351. foreach (DataRow idsDr in idsDt.Rows)
  352. {
  353. ids += idsDr["Id"].ToString() + ",";
  354. }
  355. DataTable userDt = CustomerSqlConn.dtable("select UserId,DATE_FORMAT(UpdateDate,'%Y%m%d'),count(Id) from MerchantInfo where Id in (" + ids.TrimEnd(',') + ") group by UserId,DATE_FORMAT(UpdateDate,'%Y%m%d')", AppConfig.Base.SqlConn2);
  356. if (userDt.Rows.Count > 0)
  357. {
  358. function.WriteLog("人数:" + userDt.Rows.Count + "\n\n", "实时执行创客激活数日志");
  359. foreach (DataRow userDr in userDt.Rows)
  360. {
  361. int UserId = int.Parse(userDr["UserId"].ToString());
  362. string TradeDate = userDr[1].ToString();
  363. int ActCount = int.Parse(function.CheckInt(userDr[2].ToString()));
  364. string TradeMonth = TradeDate.Substring(0, 6);
  365. string date = TradeDate.Substring(0, 4) + "-" + TradeDate.Substring(4, 2) + "-" + TradeDate.Substring(6, 2);
  366. string start = date + " 00:00:00";
  367. string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
  368. KxsMainModels.Users user = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new KxsMainModels.Users();
  369. string ParentNav = user.ParentNav;
  370. UserTradeMonthSummary selfStat = db.UserTradeMonthSummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.SeoKeyword == TradeDate && m.SeoTitle == "self");
  371. if (selfStat == null)
  372. {
  373. selfStat = db.UserTradeMonthSummary.Add(new UserTradeMonthSummary()
  374. {
  375. UserId = UserId,
  376. TradeMonth = TradeMonth,
  377. SeoKeyword = TradeDate,
  378. SeoTitle = "self",
  379. }).Entity;
  380. db.SaveChanges();
  381. }
  382. selfStat.ActiveBuddyMerStatus += ActCount;
  383. ParentNav += "," + UserId + ",";
  384. if (!string.IsNullOrEmpty(ParentNav))
  385. {
  386. string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
  387. foreach (string NavUserIdString in ParentNavList)
  388. {
  389. int NavUserId = int.Parse(NavUserIdString);
  390. UserTradeMonthSummary teamStat = db.UserTradeMonthSummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.SeoKeyword == TradeDate && m.SeoTitle == "team");
  391. if (teamStat == null)
  392. {
  393. teamStat = db.UserTradeMonthSummary.Add(new UserTradeMonthSummary()
  394. {
  395. UserId = NavUserId,
  396. TradeMonth = TradeMonth,
  397. SeoKeyword = TradeDate,
  398. SeoTitle = "team",
  399. }).Entity;
  400. db.SaveChanges();
  401. }
  402. teamStat.ActiveBuddyMerStatus += ActCount;
  403. }
  404. }
  405. }
  406. db.SaveChanges();
  407. CustomerSqlConn.op("update MerchantInfo set ActStat=1 where Id in (" + ids.TrimEnd(',') + ")", AppConfig.Base.SqlConn2);
  408. }
  409. }
  410. }
  411. catch (Exception ex)
  412. {
  413. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "实时执行创客激活数异常");
  414. }
  415. db.Dispose();
  416. maindb.Dispose();
  417. function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "实时执行创客激活数日志");
  418. }
  419. public void test()
  420. {
  421. function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "实时执行创客激活数日志");
  422. WebCMSEntities db = new WebCMSEntities();
  423. KxsMainModels.WebCMSEntities maindb = new KxsMainModels.WebCMSEntities();
  424. try
  425. {
  426. DataTable idsDt = CustomerSqlConn.dtable("select 646 Id", AppConfig.Base.SqlConn2);
  427. if(idsDt.Rows.Count > 0)
  428. {
  429. string ids = "";
  430. foreach (DataRow idsDr in idsDt.Rows)
  431. {
  432. ids += idsDr["Id"].ToString() + ",";
  433. }
  434. DataTable userDt = CustomerSqlConn.dtable("select UserId,DATE_FORMAT(SignDate,'%Y%m%d'),count(Id) from MerchantInfo where Id in (" + ids.TrimEnd(',') + ") group by UserId,DATE_FORMAT(SignDate,'%Y%m%d')", AppConfig.Base.SqlConn2);
  435. if (userDt.Rows.Count > 0)
  436. {
  437. function.WriteLog("人数:" + userDt.Rows.Count + "\n\n", "实时执行创客激活数日志");
  438. foreach (DataRow userDr in userDt.Rows)
  439. {
  440. int UserId = int.Parse(userDr["UserId"].ToString());
  441. string TradeDate = userDr[1].ToString();
  442. int ActCount = int.Parse(function.CheckInt(userDr[2].ToString()));
  443. string TradeMonth = TradeDate.Substring(0, 6);
  444. string date = TradeDate.Substring(0, 4) + "-" + TradeDate.Substring(4, 2) + "-" + TradeDate.Substring(6, 2);
  445. string start = date + " 00:00:00";
  446. string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
  447. KxsMainModels.Users user = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new KxsMainModels.Users();
  448. string ParentNav = user.ParentNav;
  449. UserTradeMonthSummary selfStat = db.UserTradeMonthSummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.SeoKeyword == TradeDate && m.SeoTitle == "self");
  450. if (selfStat == null)
  451. {
  452. selfStat = db.UserTradeMonthSummary.Add(new UserTradeMonthSummary()
  453. {
  454. UserId = UserId,
  455. TradeMonth = TradeMonth,
  456. SeoKeyword = TradeDate,
  457. SeoTitle = "self",
  458. }).Entity;
  459. db.SaveChanges();
  460. }
  461. selfStat.ActiveBuddyMerStatus += ActCount;
  462. ParentNav += "," + UserId + ",";
  463. if (!string.IsNullOrEmpty(ParentNav))
  464. {
  465. string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
  466. foreach (string NavUserIdString in ParentNavList)
  467. {
  468. int NavUserId = int.Parse(NavUserIdString);
  469. UserTradeMonthSummary teamStat = db.UserTradeMonthSummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.SeoKeyword == TradeDate && m.SeoTitle == "team");
  470. if (teamStat == null)
  471. {
  472. teamStat = db.UserTradeMonthSummary.Add(new UserTradeMonthSummary()
  473. {
  474. UserId = NavUserId,
  475. TradeMonth = TradeMonth,
  476. SeoKeyword = TradeDate,
  477. SeoTitle = "team",
  478. }).Entity;
  479. db.SaveChanges();
  480. }
  481. teamStat.ActiveBuddyMerStatus += ActCount;
  482. }
  483. }
  484. }
  485. db.SaveChanges();
  486. CustomerSqlConn.op("update MerchantInfo set ActStat=1 where Id in (" + ids.TrimEnd(',') + ")", AppConfig.Base.SqlConn2);
  487. }
  488. }
  489. }
  490. catch (Exception ex)
  491. {
  492. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "实时执行创客激活数异常");
  493. }
  494. db.Dispose();
  495. maindb.Dispose();
  496. function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "实时执行创客激活数日志");
  497. }
  498. }
  499. }