TestService.cs 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  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.PxcModels;
  9. namespace MySystem
  10. {
  11. public class TestService
  12. {
  13. public readonly static TestService Instance = new TestService();
  14. private TestService()
  15. { }
  16. public void Start()
  17. {
  18. Thread th = new Thread(statTrade);
  19. th.IsBackground = true;
  20. th.Start();
  21. }
  22. public void dosomething()
  23. {
  24. string check = function.ReadInstance("/tmp/flag.txt");
  25. if (!string.IsNullOrEmpty(check))
  26. {
  27. return;
  28. }
  29. function.WritePage("/tmp/", "flag.txt", DateTime.Now.ToString());
  30. string TradeMonth = "202205";
  31. string TradeDate = "20220511";
  32. List<int> uids = new List<int>();
  33. uids = uids.OrderByDescending(m => m).ToList();
  34. foreach (int uid in uids)
  35. {
  36. RedisDbconn.Instance.Clear("TotalAmount:" + uid);
  37. RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":" + TradeMonth);
  38. RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + uid + ":" + TradeMonth);
  39. RedisDbconn.Instance.Clear("TotalPosAmount:" + uid + ":" + TradeMonth);
  40. RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":*:" + TradeMonth);
  41. RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":" + TradeDate);
  42. RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + uid + ":" + TradeDate);
  43. RedisDbconn.Instance.Clear("TotalPosAmount:" + uid + ":" + TradeDate);
  44. RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":*:" + TradeDate);
  45. RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid);
  46. RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":" + TradeMonth);
  47. RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + uid + ":" + TradeMonth);
  48. RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + uid + ":" + TradeMonth);
  49. RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":*:" + TradeMonth);
  50. RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":" + TradeDate);
  51. RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + uid + ":" + TradeDate);
  52. RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + uid + ":" + TradeDate);
  53. RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":*:" + TradeDate);
  54. function.WriteLog(uid.ToString(), "清除redis");
  55. Thread.Sleep(200);
  56. }
  57. }
  58. public void ResetTradeRecordUserId()
  59. {
  60. WebCMSEntities db = new WebCMSEntities();
  61. List<int> posids = new List<int>();
  62. posids.Add(13312);
  63. // OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
  64. foreach (int posid in posids)
  65. {
  66. PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posid);
  67. if (pos != null)
  68. {
  69. // OtherMySqlConn.op("update TradeRecord set UserId=" + pos.UserId + " where SnNo='" + pos.PosSn + "'");
  70. // function.WriteLog(DateTime.Now.ToString() + ":" + pos.UserId + "-" + pos.PosSn, "重置非商户型创客交易记录Id");
  71. RedisDbconn.Instance.AddList("TmpResetUserTradeQueue", pos.UserId + "#cut#2022-04-01 00:00:00#cut#2022-05-11 00:00:00#cut#" + pos.BrandId);
  72. }
  73. }
  74. // // OtherMySqlConn.connstr = ;
  75. db.Dispose();
  76. }
  77. public void StartReset()
  78. {
  79. Thread th = new Thread(doSomething);
  80. th.IsBackground = true;
  81. th.Start();
  82. }
  83. public void doSomething()
  84. {
  85. while (true)
  86. {
  87. string content = RedisDbconn.Instance.RPop<string>("TmpResetUserTradeQueue");
  88. if (!string.IsNullOrEmpty(content))
  89. {
  90. try
  91. {
  92. OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
  93. WebCMSEntities db = new WebCMSEntities();
  94. string[] datalist = content.Split(new string[] { "#cut#" }, StringSplitOptions.None);
  95. int UserId = int.Parse(datalist[0]);
  96. DateTime sdate = DateTime.Parse(datalist[1]);
  97. DateTime edate = DateTime.Parse(datalist[2]);
  98. int BrandId = int.Parse(datalist[3]);
  99. function.WriteLog(DateTime.Now.ToString(), "重置创客交易额");
  100. List<string> uids = new List<string>();
  101. DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id=" + UserId);
  102. if (userDt.Rows.Count > 0)
  103. {
  104. while (sdate <= edate)
  105. {
  106. string date = sdate.ToString("yyyy-MM-dd");
  107. string TradeDate = date.Replace("-", "");
  108. string TradeMonth = TradeDate.Substring(0, 6);
  109. string start = date + " 00:00:00";
  110. string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
  111. string startId = "0", endId = "9999999999";
  112. DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
  113. if (startDt.Rows.Count > 0)
  114. {
  115. startId = startDt.Rows[0][0].ToString();
  116. }
  117. DataRow userDr = userDt.Rows[0];
  118. string ParentNav = userDr["ParentNav"].ToString();
  119. function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
  120. OtherMySqlConn.op("delete from UserTradeDaySummary where UserId=" + UserId + " and BrandId=" + BrandId + " and TradeMonth='" + TradeMonth + "' and TradeDate='" + TradeDate + "' and SeoTitle='self'");
  121. DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " and BrandId=" + BrandId + " group by BrandId,BankCardType,QrPayFlag");
  122. function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
  123. foreach (DataRow selfDr in selfdt.Rows)
  124. {
  125. int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
  126. int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
  127. decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
  128. UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
  129. if (selfStat == null)
  130. {
  131. selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
  132. {
  133. UserId = UserId,
  134. TradeMonth = TradeMonth,
  135. TradeDate = TradeDate,
  136. BrandId = BrandId,
  137. QueryCount = QrPayFlag,
  138. SeoTitle = "self",
  139. }).Entity;
  140. db.SaveChanges();
  141. }
  142. if (BankCardType == 0)
  143. {
  144. selfStat.DirectDebitTradeAmt += TradeAmount;
  145. }
  146. else if (BankCardType != 0)
  147. {
  148. selfStat.DirectTradeAmt += TradeAmount;
  149. }
  150. db.SaveChanges();
  151. }
  152. // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
  153. // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
  154. // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
  155. // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
  156. // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
  157. // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
  158. // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
  159. // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
  160. // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
  161. if (!string.IsNullOrEmpty(ParentNav))
  162. {
  163. ParentNav += "," + UserId + ",";
  164. string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
  165. foreach (string NavUserIdString in ParentNavList)
  166. {
  167. if (!uids.Contains(NavUserIdString + start))
  168. {
  169. uids.Add(NavUserIdString + start);
  170. int NavUserId = int.Parse(NavUserIdString);
  171. function.WriteLog(NavUserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
  172. OtherMySqlConn.op("delete from UserTradeDaySummary where UserId=" + NavUserId + " and BrandId=" + BrandId + " and TradeMonth='" + TradeMonth + "' and TradeDate='" + TradeDate + "' and SeoTitle='team'");
  173. DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") and BrandId=" + BrandId + " group by BrandId,BankCardType,QrPayFlag");
  174. function.WriteLog(NavUserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
  175. foreach (DataRow teamDr in teamDt.Rows)
  176. {
  177. int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
  178. int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
  179. decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
  180. UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
  181. if (teamStat == null)
  182. {
  183. teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
  184. {
  185. UserId = NavUserId,
  186. TradeMonth = TradeMonth,
  187. TradeDate = TradeDate,
  188. BrandId = BrandId,
  189. QueryCount = QrPayFlag,
  190. SeoTitle = "team",
  191. }).Entity;
  192. db.SaveChanges();
  193. }
  194. if (BankCardType == 0)
  195. {
  196. teamStat.NonDirectDebitTradeAmt += TradeAmount;
  197. }
  198. else if (BankCardType != 0)
  199. {
  200. teamStat.NonDirectTradeAmt += TradeAmount;
  201. }
  202. db.SaveChanges();
  203. }
  204. // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
  205. // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
  206. // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
  207. // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
  208. // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
  209. // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
  210. // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
  211. // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
  212. // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
  213. }
  214. }
  215. }
  216. sdate = sdate.AddDays(1);
  217. Thread.Sleep(200);
  218. }
  219. }
  220. db.Dispose();
  221. function.WriteLog(DateTime.Now.ToString() + "\r\n\r\n", "重置创客交易额");
  222. }
  223. catch (Exception ex)
  224. {
  225. function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "重置创客交易额异常");
  226. }
  227. }
  228. else
  229. {
  230. Thread.Sleep(5000);
  231. }
  232. }
  233. }
  234. public void statTrade()
  235. {
  236. OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
  237. WebCMSEntities db = new WebCMSEntities();
  238. DataTable dt = OtherMySqlConn.dtable("select UserId,BrandId,MerchantId,QrPayFlag,PayType,VipFlag,DATE_FORMAT(CreateDate,'%Y%m%d'),sum(TradeAmount) from TradeRecord where Id>=574439 and UserId>0 and MerchantId in (5962,32731,14396,14,855,2586,2911,1839,6368,2598,79,47,21884,3243,3259,11637,5082,9767,5381,7091,4652,16159,24752,6183,18417,5285,17980,20862,3678,6567,11,21529,2647,10799,9024,24367,17045,14977,17249,847,3901,35077,21982,4496,5121,1383,153,12051,13036,20036,24984,21155,4720,15512,26592,4073,15241,7981,7079,9853,23689,24284,23731,4103,5959,85,31,24936,23781,9566,5658,10898,4929,26997,248,15916,9444,4760,7022,8697,9754,3482,255,793,14351,14149,3049,13390,3796,9209,27862,656,2413,9017,1649,282,8,14112,16313,15545,5639,2809,3733,16717,11541,9774,18000,20341,20273,10047,16151,28510,20193,4650,2498,2597,23242,11325,34592,12362,29281,15165,208,2196,3709,2715,6494,16034,3368,17283,4513,3309,2979,2854,6497,251,17906,7598,2327,6856,2347,2675,4,10991,138,784,350,7961,3385,29349,23533,31893,5036,15382,6934,3778,5922,24357,6222,6755,8887) and CreateDate>='2022-06-01 00:00:00' and MerHelpFlag=1 and BankCardType!=0 and CreateDate<'2022-07-01 00:00:00' group by UserId,BrandId,MerchantId,QrPayFlag,PayType,VipFlag,DATE_FORMAT(CreateDate,'%Y%m%d') order by DATE_FORMAT(CreateDate,'%Y%m%d')");
  239. List<string> IdBrands = new List<string>();
  240. if(dt.Rows.Count > 0)
  241. {
  242. foreach(DataRow dr in dt.Rows)
  243. {
  244. int UserId = int.Parse(dr["UserId"].ToString());
  245. int MerchantId = int.Parse(dr["MerchantId"].ToString());
  246. int BrandId = int.Parse(dr["BrandId"].ToString());
  247. int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString());
  248. int PayType = int.Parse(dr["PayType"].ToString());
  249. int VipFlag = int.Parse(dr["VipFlag"].ToString());
  250. string TradeDate = dr[6].ToString();
  251. decimal HelpDirectTradeAmt = decimal.Parse(dr[7].ToString());
  252. function.WriteLog("update TradeDaySummary set HelpDirectTradeAmt=HelpDirectTradeAmt-" + HelpDirectTradeAmt + ",NotHelpDirectTradeAmt=NotHelpDirectTradeAmt+" + HelpDirectTradeAmt + " where UserId=" + UserId + " and BrandId=" + BrandId + " and TradeDate='" + TradeDate + "' and QueryCount=" + QrPayFlag + " and PayType=" + PayType + " and VipFlag=" + VipFlag + " and SeoTitle='self';\n", "多余机器分润");
  253. Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
  254. string ParentNav = user.ParentNav;
  255. ParentNav += "," + UserId + ",";
  256. if (!string.IsNullOrEmpty(ParentNav))
  257. {
  258. string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
  259. foreach (string NavUserIdString in ParentNavList)
  260. {
  261. function.WriteLog("update TradeDaySummary set HelpNonDirectTradeAmt=HelpNonDirectTradeAmt-" + HelpDirectTradeAmt + ",NotHelpNonDirectTradeAmt=NotHelpNonDirectTradeAmt+" + HelpDirectTradeAmt + " where UserId=" + NavUserIdString + " and BrandId=" + BrandId + " and TradeDate='" + TradeDate + "' and QueryCount=" + QrPayFlag + " and PayType=" + PayType + " and VipFlag=" + VipFlag + " and SeoTitle='team';\n", "多余机器分润");
  262. }
  263. }
  264. List<ProfitResult> results = StartProftForPosByDate(BrandId, UserId, HelpDirectTradeAmt);
  265. foreach(ProfitResult result in results)
  266. {
  267. int DirectFlag = result.DirectFlag;
  268. function.WriteLog("update ProfitRecord set ProfitAmount=ProfitAmount-" + result.Money + " where UserId=" + result.UserId + " and SeoTitle='202206' and DirectFlag=" + DirectFlag + " and BrandId=" + BrandId + ";\n", "多余机器分润");
  269. function.WriteLog("update UserMachineData set TradeProfit=TradeProfit-" + result.Money + " where IdBrand='" + UserId + "_" + BrandId + "';\n", "多余机器分润");
  270. }
  271. if(!IdBrands.Contains(UserId+"-"+MerchantId))
  272. {
  273. IdBrands.Add(UserId + "-" + MerchantId);
  274. DataTable sub = OtherMySqlConn.dtable("select SubsidyProfit from ProfitSubsidyDetail where TradeMonth='202206' and SubsidyUserId=" + UserId + " and MerchantId=" + MerchantId + "");
  275. if(sub.Rows.Count > 0)
  276. {
  277. string SubsidyProfit = sub.Rows[0][0].ToString();
  278. function.WriteLog("delete from ProfitSubsidyDetail where TradeMonth='202206' and SubsidyUserId=" + UserId + " and MerchantId=" + MerchantId + ";\n", "多余机器分润");
  279. function.WriteLog("update UserMachineData set OtherProfit=OtherProfit-" + SubsidyProfit + " where IdBrand='" + UserId + "_" + BrandId + "';\n", "多余机器分润");
  280. }
  281. }
  282. }
  283. }
  284. db.Dispose();
  285. }
  286. public List<ProfitResult> StartProftForPosByDate(int BrandId, int UserId, decimal HelpDirectTradeAmt)
  287. {
  288. List<ProfitResult> result = new List<ProfitResult>();
  289. ProfitObjects obj = RedisDbconn.Instance.Get<ProfitObjects>("pobj" + BrandId);
  290. if (obj.Status == 1) //判断分润是否开启
  291. {
  292. WebCMSEntities dbnew = new WebCMSEntities();
  293. try
  294. {
  295. List<UserLevelSet> levels = dbnew.UserLevelSet.ToList();
  296. Users selfUser = dbnew.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
  297. int Days = int.Parse(RedisDbconn.Instance.Get<string>("pobjrule:" + BrandId + ":HelpPolicy:Days")); //天数
  298. int maxLevel = obj.MaxLevel; //最大等级
  299. decimal diffLevelProfit = 0; //等级级差
  300. int curLevel = 0; //当前层级的会员等级
  301. string ParentNav = selfUser.ParentNav;
  302. if (string.IsNullOrEmpty(ParentNav))
  303. {
  304. ParentNav = ",0,";
  305. }
  306. if (!string.IsNullOrEmpty(ParentNav))
  307. {
  308. ParentNav += "," + UserId + ",";
  309. string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
  310. Array.Reverse(ParentNavList); //反转顺序
  311. int level = 0;
  312. DateTime now = DateTime.Now;
  313. if (HelpDirectTradeAmt > 0)
  314. {
  315. foreach (string UserIdString in ParentNavList)
  316. {
  317. level += 1;
  318. int uid = int.Parse(UserIdString);
  319. Users user = dbnew.Users.FirstOrDefault(m => m.Id == uid) ?? new Users();
  320. int UserLevel = user.UserLevel; //当前会员等级
  321. UserRankWhite rank = dbnew.UserRankWhite.FirstOrDefault(m => m.Id == user.Id && m.UpdateDate > now);
  322. if (rank != null)
  323. {
  324. if (rank.Rank > UserLevel)
  325. {
  326. UserLevel = rank.Rank;
  327. }
  328. }
  329. if (curLevel == maxLevel) //判断当前创客是否有直推的激活机具,并且在活动时间内
  330. {
  331. break;
  332. }
  333. if (UserLevel <= maxLevel && UserLevel > curLevel)
  334. {
  335. int LevelKindId = ProfitHelperV2.Instance.GetLevelKindId(BrandId, 1, 1);
  336. ProfitObjectLevels objlevel = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId + ":" + UserLevel); //获取当前等级参数
  337. int LevelKindId2 = ProfitHelperV2.Instance.GetLevelKindId(BrandId, 0, 1);
  338. ProfitObjectLevels objlevel2 = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId2 + ":" + UserLevel); //获取当前等级参数
  339. if (objlevel != null && objlevel2 != null)
  340. {
  341. decimal getLevelProfit = 0; //等级分润
  342. if (objlevel.Percents > 0 && objlevel2.Percents > 0)
  343. {
  344. //获取创客分润规则,注册日开始算起,3个自然月内算扶持期
  345. getLevelProfit += HelpDirectTradeAmt * (objlevel.Percents - objlevel2.Percents);
  346. }
  347. decimal money = getLevelProfit;
  348. getLevelProfit -= diffLevelProfit;
  349. diffLevelProfit = money;
  350. if (getLevelProfit >= obj.MinProfitVal)
  351. {
  352. result.Add(new ProfitResult()
  353. {
  354. UserId = user.Id,
  355. UserNav = user.ParentNav,
  356. Money = PublicFunction.NumberFormat(getLevelProfit),
  357. ProfitRate = objlevel.Percents,
  358. Message = "交易分润",
  359. BankCardType = 1,
  360. DirectFlag = selfUser.Id == user.Id ? 1 : 0,
  361. BrandId = BrandId,
  362. IsSubsidy = 0,
  363. TradeAmount = HelpDirectTradeAmt,
  364. HelpFlag = 1,
  365. });
  366. }
  367. }
  368. }
  369. curLevel = UserLevel;
  370. }
  371. }
  372. }
  373. }
  374. catch (Exception ex)
  375. {
  376. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "每月统计分润异常");
  377. }
  378. dbnew.Dispose();
  379. }
  380. return result;
  381. }
  382. }
  383. }