浏览代码

修复重置助利宝最大值

lichunlei 2 年之前
父节点
当前提交
ef21bd7a8c
共有 1 个文件被更改,包括 82 次插入7 次删除
  1. 82 7
      AppStart/Helper/StatHelpProfitService.cs

+ 82 - 7
AppStart/Helper/StatHelpProfitService.cs

@@ -318,7 +318,7 @@ namespace MySystem
             {
                 if (DateTime.Now.Day == 1 && DateTime.Now.Hour > 0 && DateTime.Now.Hour < 3)
                 {
-                    string TradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
+                    string TradeMonth = DateTime.Now.ToString("yyyyMM");
                     ResetMaxTradeAmountGo(TradeMonth);
                 }
                 Thread.Sleep(30000);
@@ -334,12 +334,13 @@ namespace MySystem
                     function.WritePage("/HelpProfitAmountSummary/", TradeMonth + ".txt", DateTime.Now.ToString());
                     WebCMSEntities db = new WebCMSEntities();
                     OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
-                    DataTable userlist = OtherMySqlConn.dtable("select * from HelpProfitAmountSummary where TradeMonth='" + TradeMonth + "'");
+                    DataTable userlist = OtherMySqlConn.dtable("select DISTINCT UserId from HelpProfitAmountSummary order by UserId");
+                    // DataTable userlist = OtherMySqlConn.dtable("select DISTINCT UserId from HelpProfitAmountSummary where (TradeMonth='202209' or TradeMonth='202210') and UserId not in (select UserId from HelpProfitAmountSummary where TradeMonth='202211')");
                     foreach (DataRow user in userlist.Rows)
                     {
-                        int Id = int.Parse(user["Id"].ToString());
                         int UserId = int.Parse(user["UserId"].ToString());
-                        int Month = int.Parse(user["QueryCount"].ToString());                            
+                        int MonthCount = db.HelpProfitAmountSummary.Count(m => m.UserId == UserId) + 1;
+                        int Month = MonthCount;
                         if(Month > 24)
                         {
                             Month = 24;
@@ -381,11 +382,18 @@ namespace MySystem
                             MerCount3 = MerCounts[2];
                         }
                         decimal MaxTradeAmount = MerCount1 * MonthAmount1 + MerCount2 * MonthAmount2 + MerCount3 * MonthAmount3; //当月最大交易总额
-                        HelpProfitAmountSummary selfStat = db.HelpProfitAmountSummary.FirstOrDefault(m => m.Id == Id);
-                        if(selfStat != null)
+                        HelpProfitAmountSummary selfStat = db.HelpProfitAmountSummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth);
+                        if(selfStat == null)
                         {
-                            selfStat.MaxAmount = MaxTradeAmount;
+                            selfStat = db.HelpProfitAmountSummary.Add(new HelpProfitAmountSummary()
+                            {
+                                UserId = UserId,
+                                TradeMonth = TradeMonth,
+                                QueryCount = MonthCount,
+                            }).Entity;
+                            db.SaveChanges();
                         }
+                        selfStat.MaxAmount = MaxTradeAmount;
                     }
                     db.SaveChanges();
                     db.Dispose();
@@ -398,5 +406,72 @@ namespace MySystem
         }
 
         #endregion
+    
+    
+
+
+
+        public void StatTradeTmp()
+        {
+            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "实时执行助利宝交易额日志");
+            WebCMSEntities db = new WebCMSEntities();
+            using (var tran = db.Database.BeginTransaction())
+            {
+                try
+                {
+                    DataTable idsDt = OtherMySqlConn.dtable("select Id from TradeRecord where Id>=4150000 and CreateDate>='2022-11-27 00:00:00' and CreateDate<'2022-11-28 00:00:00' and MerchantId in (select MerchantId from HelpProfitMerIds) and SeoTitle='HelpProfit' and QueryCount=3 and MerchantId in (select MerchantId from HelpProfitMerchantForUser where UserId in (144214,144213,144170,144046,143420,143294,142953,142861,142736,142642,142608,142545,142532,142484,142297,142263,141951,141878,141838,141814,141562,141469,141295,141239,141073,140952,140816,140470,140221,140220,139917,139815,139729,139639,139094,138877,138516,138173,138021,138014,137967,137870,137706,137361,136263,136181,135950,135524,135448,135373,135251,135224,135121,134915,134503,133783,133420,132996,132839,132726,132642,132488,132469,132234,131903,131845,131025,130767,130744,130334,130113,129947,129814,129111,128853,128758,128640,128513,128322,127634,127188,126802,126782,126620,126613,125981,125848,125778,125754,124875,124822,124344,123770,123747,123115,122986,121779,121749,121570,121404,121108,120998,120957,120776,120720,120663,120650,120604,110031,109906,109405,106581,105286,100934,99148,93049,91467,88519,88494,84401,80747,72018,69881,69195,68888,64167,63784,62252,60846,60561,60035,59740,59159,57366,56869,56182,56080,55049,54784,54517,52449,52265,51193,50886,49838,49145,48849,46655,46284,45892,41420,41200,40498,40282,40280,39109,38520,37033,36932,36488,35805,33055,32534,27524,24528,21108,18724,15600,15509,15506,11124,9367,7601,7487,6764,6267,4861,3885,3835,3015,1893,1797,1703,1195,1052,668,609,602,599,598,588,586,583,582,565,560,558,514,415,392,391,389,387,281,276,237,45,1))");
+                    if (idsDt.Rows.Count > 0)
+                    {
+                        string ids = "";
+                        foreach (DataRow idsDr in idsDt.Rows)
+                        {
+                            ids += idsDr["Id"].ToString() + ",";
+                        }
+                        DataTable selfDt = OtherMySqlConn.dtable("select MerchantId,DATE_FORMAT(CreateDate,'%Y%m%d'),sum(TradeAmount) from TradeRecord where Id in (" + ids.TrimEnd(',') + ") group by MerchantId,DATE_FORMAT(CreateDate,'%Y%m%d')");
+                        if (selfDt.Rows.Count > 0)
+                        {
+                            function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "实时执行助利宝交易额日志");
+                            foreach (DataRow selfDr in selfDt.Rows)
+                            {
+                                int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
+                                string TradeDate = selfDr[1].ToString();
+                                string TradeMonth = TradeDate.Substring(0, 6);
+                                decimal TradeAmount = decimal.Parse(selfDr[2].ToString());
+                                HelpProfitMerIds merIds = db.HelpProfitMerIds.FirstOrDefault(m => m.MerchantId == MerchantId) ?? new HelpProfitMerIds();
+                                bool Check = CheckAmount(db, MerchantId, merIds.UserId, TradeMonth);
+                                if (Check)
+                                {
+                                    HelpProfitMerTradeSummay selfStat = db.HelpProfitMerTradeSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate);
+                                    if (selfStat == null)
+                                    {
+                                        selfStat = db.HelpProfitMerTradeSummay.Add(new HelpProfitMerTradeSummay()
+                                        {
+                                            TradeMonth = TradeMonth,
+                                            TradeDate = TradeDate,
+                                            MerchantId = MerchantId,
+                                        }).Entity;
+                                        db.SaveChanges();
+                                    }
+                                    decimal MoreAmount = TradeAmount * 0.01M;
+                                    MoreAmount = decimal.Parse(function.CheckInt(MoreAmount.ToString().Split(".")[0]));
+                                    selfStat.TradeAmount = TradeAmount + MoreAmount;
+                                }
+                            }
+                        }
+                        db.SaveChanges();
+                    }
+                    tran.Commit();
+                }
+                catch (Exception ex)
+                {
+                    tran.Rollback();
+                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "实时执行助利宝交易额异常");
+                }
+            }
+            db.Dispose();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "实时执行助利宝交易额日志");
+        }
+    
     }
 }