Browse Source

每天重置商户交易额

lcl 10 months ago
parent
commit
80a59a6d11
1 changed files with 42 additions and 6 deletions
  1. 42 6
      AppStart/Helper/StatService.cs

+ 42 - 6
AppStart/Helper/StatService.cs

@@ -2137,19 +2137,55 @@ namespace MySystem
                 string start = date + " 00:00:00";
                 string start = date + " 00:00:00";
                 string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
                 string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
                 CustomerSqlConn.op("insert into PosMerchantTradeSummay (MerchantId,BrandId,TradeDate,TradeMonth,TradeAmount,CreateDate)  select *,now() from (select MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d') as TradeDate,DATE_FORMAT(CreateDate,'%Y%m') as TradeMonth,sum(TradeAmount) as TradeAmount from TradeRecord where Id>=13000000 and CreateDate>='" + start + "' and CreateDate<'" + end + "' and ActStatus=1 and BrandId!=14 group by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d'),TradeDate,DATE_FORMAT(CreateDate,'%Y%m') order by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d')) tb", MysqlConn.SqlConnStr);
                 CustomerSqlConn.op("insert into PosMerchantTradeSummay (MerchantId,BrandId,TradeDate,TradeMonth,TradeAmount,CreateDate)  select *,now() from (select MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d') as TradeDate,DATE_FORMAT(CreateDate,'%Y%m') as TradeMonth,sum(TradeAmount) as TradeAmount from TradeRecord where Id>=13000000 and CreateDate>='" + start + "' and CreateDate<'" + end + "' and ActStatus=1 and BrandId!=14 group by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d'),TradeDate,DATE_FORMAT(CreateDate,'%Y%m') order by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d')) tb", MysqlConn.SqlConnStr);
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户的交易额");
+            }
+
+            WebCMSEntities db = new WebCMSEntities();
+            var tran = db.Database.BeginTransaction();
+            try
+            {
                 SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
                 SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-                WebCMSEntities db = new WebCMSEntities();
-                DateTime s = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + " 00:00:00");
-                DateTime e = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
+                DateTime s = DateTime.Parse(date + " 00:00:00");
+                DateTime e = s.AddDays(1);
                 int StartId = int.Parse(function.CheckInt(function.ReadInstance("/SycnSp/TradeRecordId.txt")));
                 int StartId = int.Parse(function.CheckInt(function.ReadInstance("/SycnSp/TradeRecordId.txt")));
-                IQueryable<SpModels.TradeRecord> trades = spdb.TradeRecord.Where(m => m.Id >= StartId && m.ProductType == "23" && m.CreateDate >= s && m.Status == 1).OrderBy(m => m.CreateDate).Take(20);
+                IQueryable<SpModels.TradeRecord> trades = spdb.TradeRecord.Where(m => m.Id >= StartId && m.ProductType == "23" && m.CreateDate >= s && m.CreateDate < e).OrderBy(m => m.CreateDate);
                 foreach (SpModels.TradeRecord trade in trades.ToList())
                 foreach (SpModels.TradeRecord trade in trades.ToList())
-                {}
+                {
+                    string MerNo = trade.MerNo;
+                    string TradeDate = trade.CreateDate.Value.ToString("yyyyMMdd");
+                    string TradeMonth = TradeDate.Substring(0, 6);
+                    PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo);
+                    if(merchant != null)
+                    {
+                        PosMerchantTradeSummay stat = db.PosMerchantTradeSummay.FirstOrDefault(m => m.MerchantId == merchant.Id && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == merchant.BrandId);
+                        if (stat == null)
+                        {
+                            stat = db.PosMerchantTradeSummay.Add(new PosMerchantTradeSummay()
+                            {
+                                MerchantId = merchant.Id,
+                                TradeMonth = TradeMonth,
+                                TradeDate = TradeDate,
+                                BrandId = merchant.BrandId,
+                            }).Entity;
+                            db.SaveChanges();
+                        }
+                        stat.TradeAmount += trade.TradeAmount / 100;
+                        db.SaveChanges();
+                    }
+                }
+                spdb.Dispose();
+                tran.Commit();
             }
             }
             catch (Exception ex)
             catch (Exception ex)
             {
             {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户的交易额");
+                tran.Rollback();
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计WIFI商户的交易额");
             }
             }
+            tran.Dispose();
+            db.Dispose();
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行商户交易额日志");
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行商户交易额日志");
         }
         }