Browse Source

去掉统计程序事务

lcl 1 year ago
parent
commit
4212e2f3e9
1 changed files with 114 additions and 119 deletions
  1. 114 119
      AppStart/Helper/StatService.cs

+ 114 - 119
AppStart/Helper/StatService.cs

@@ -41,151 +41,146 @@ namespace MySystem
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "统计商户和创客交易额日志");
             WebCMSEntities db = new WebCMSEntities();
             KxsMainModels.WebCMSEntities maindb = new KxsMainModels.WebCMSEntities();
-            using (var tran = db.Database.BeginTransaction())
+            try
             {
-                try
+                string start = DateTime.Now.AddDays(-10).ToString("yyyy-MM-dd HH:mm:ss");
+                DataTable idsDt = OtherMySqlConn.dtable("select Id from ConsumerOrders where CreateDate>='" + start + "' and Status>0 and Version=0 order by Id limit 50");
+                if(idsDt.Rows.Count > 0)
                 {
-                    string start = DateTime.Now.AddDays(-10).ToString("yyyy-MM-dd HH:mm:ss");
-                    DataTable idsDt = OtherMySqlConn.dtable("select Id from ConsumerOrders where CreateDate>='" + start + "' and Status>0 and Version=0 order by Id limit 50");
-                    if(idsDt.Rows.Count > 0)
+                    string ids = "";
+                    foreach (DataRow idsDr in idsDt.Rows)
                     {
-                        string ids = "";
-                        foreach (DataRow idsDr in idsDt.Rows)
-                        {
-                            ids += idsDr["Id"].ToString() + ",";
-                        }
-                        DataTable selfDt = OtherMySqlConn.dtable("select UserId,MerchantId,SnNo,PayMode,IsAct,DATE_FORMAT(CreateDate,'%Y%m%d'),sum(PayMoney),count(Id),sum(MaxDivi),sum(MerchantActualAmount) from ConsumerOrders where Id in (" + ids.TrimEnd(',') + ") group by UserId,MerchantId,SnNo,PayMode,IsAct,DATE_FORMAT(CreateDate,'%Y%m%d')");
-                        if (selfDt.Rows.Count > 0)
+                        ids += idsDr["Id"].ToString() + ",";
+                    }
+                    DataTable selfDt = OtherMySqlConn.dtable("select UserId,MerchantId,SnNo,PayMode,IsAct,DATE_FORMAT(CreateDate,'%Y%m%d'),sum(PayMoney),count(Id),sum(MaxDivi),sum(MerchantActualAmount) from ConsumerOrders where Id in (" + ids.TrimEnd(',') + ") group by UserId,MerchantId,SnNo,PayMode,IsAct,DATE_FORMAT(CreateDate,'%Y%m%d')");
+                    if (selfDt.Rows.Count > 0)
+                    {
+                        function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "统计商户和创客交易额日志");
+                        foreach (DataRow selfDr in selfDt.Rows)
                         {
-                            function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "统计商户和创客交易额日志");
-                            foreach (DataRow selfDr in selfDt.Rows)
-                            {
-                                int UserId = int.Parse(selfDr["UserId"].ToString());
-                                KxsMainModels.Users user = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new KxsMainModels.Users();
-                                string ParentNav = user.ParentNav;
-                                int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
-                                int PayMode = int.Parse(selfDr["PayMode"].ToString());
-                                int IsAct = int.Parse(selfDr["IsAct"].ToString());
-                                string SnNo = selfDr["SnNo"].ToString();
-                                string TradeDate = selfDr[5].ToString();
-                                decimal TradeAmount = decimal.Parse(selfDr[6].ToString());
-                                int TradeCount = int.Parse(selfDr[7].ToString());
-                                decimal MaxDivi = decimal.Parse(selfDr[8].ToString());
-                                decimal ActualAmount = decimal.Parse(selfDr[9].ToString());
-                                string TradeMonth = TradeDate.Substring(0, 6);
+                            int UserId = int.Parse(selfDr["UserId"].ToString());
+                            KxsMainModels.Users user = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new KxsMainModels.Users();
+                            string ParentNav = user.ParentNav;
+                            int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
+                            int PayMode = int.Parse(selfDr["PayMode"].ToString());
+                            int IsAct = int.Parse(selfDr["IsAct"].ToString());
+                            string SnNo = selfDr["SnNo"].ToString();
+                            string TradeDate = selfDr[5].ToString();
+                            decimal TradeAmount = decimal.Parse(selfDr[6].ToString());
+                            int TradeCount = int.Parse(selfDr[7].ToString());
+                            decimal MaxDivi = decimal.Parse(selfDr[8].ToString());
+                            decimal ActualAmount = decimal.Parse(selfDr[9].ToString());
+                            string TradeMonth = TradeDate.Substring(0, 6);
 
-                                //创客交易额
-                                UserAmountSummary selfStat = db.UserAmountSummary.FirstOrDefault(m => m.UserId == UserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "self");
-                                if (selfStat == null)
+                            //创客交易额
+                            UserAmountSummary selfStat = db.UserAmountSummary.FirstOrDefault(m => m.UserId == UserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "self");
+                            if (selfStat == null)
+                            {
+                                selfStat = db.UserAmountSummary.Add(new UserAmountSummary()
                                 {
-                                    selfStat = db.UserAmountSummary.Add(new UserAmountSummary()
-                                    {
-                                        UserId = UserId,
-                                        TradeMonth = TradeMonth,
-                                        TradeDate = TradeDate,
-                                        PayMode = PayMode,
-                                        IsAct = IsAct,
-                                        SeoTitle = "self",
-                                    }).Entity;
-                                    db.SaveChanges();
-                                }
-                                selfStat.TotalAmount += TradeAmount;
-                                selfStat.TradeCount += TradeCount;
-                                ParentNav += "," + UserId + ",";
-                                if (!string.IsNullOrEmpty(ParentNav))
+                                    UserId = UserId,
+                                    TradeMonth = TradeMonth,
+                                    TradeDate = TradeDate,
+                                    PayMode = PayMode,
+                                    IsAct = IsAct,
+                                    SeoTitle = "self",
+                                }).Entity;
+                                db.SaveChanges();
+                            }
+                            selfStat.TotalAmount += TradeAmount;
+                            selfStat.TradeCount += TradeCount;
+                            ParentNav += "," + UserId + ",";
+                            if (!string.IsNullOrEmpty(ParentNav))
+                            {
+                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                                foreach (string NavUserIdString in ParentNavList)
                                 {
-                                    string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                    foreach (string NavUserIdString in ParentNavList)
+                                    int NavUserId = int.Parse(NavUserIdString);
+                                    UserAmountSummary teamStat = db.UserAmountSummary.FirstOrDefault(m => m.UserId == NavUserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "team");
+                                    if (teamStat == null)
                                     {
-                                        int NavUserId = int.Parse(NavUserIdString);
-                                        UserAmountSummary teamStat = db.UserAmountSummary.FirstOrDefault(m => m.UserId == NavUserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "team");
-                                        if (teamStat == null)
+                                        teamStat = db.UserAmountSummary.Add(new UserAmountSummary()
                                         {
-                                            teamStat = db.UserAmountSummary.Add(new UserAmountSummary()
-                                            {
-                                                UserId = NavUserId,
-                                                TradeMonth = TradeMonth,
-                                                TradeDate = TradeDate,
-                                                PayMode = PayMode,
-                                                IsAct = IsAct,
-                                                SeoTitle = "team",
-                                            }).Entity;
-                                            db.SaveChanges();
-                                        }
-                                        teamStat.TotalAmount += TradeAmount;
-                                        teamStat.TradeCount += TradeCount;
+                                            UserId = NavUserId,
+                                            TradeMonth = TradeMonth,
+                                            TradeDate = TradeDate,
+                                            PayMode = PayMode,
+                                            IsAct = IsAct,
+                                            SeoTitle = "team",
+                                        }).Entity;
+                                        db.SaveChanges();
                                     }
+                                    teamStat.TotalAmount += TradeAmount;
+                                    teamStat.TradeCount += TradeCount;
                                 }
-                                db.SaveChanges();
+                            }
+                            db.SaveChanges();
 
-                                //商户交易额
-                                MerchantAmountSummay merchantStat = db.MerchantAmountSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
-                                if (merchantStat == null)
+                            //商户交易额
+                            MerchantAmountSummay merchantStat = db.MerchantAmountSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
+                            if (merchantStat == null)
+                            {
+                                merchantStat = db.MerchantAmountSummay.Add(new MerchantAmountSummay()
                                 {
-                                    merchantStat = db.MerchantAmountSummay.Add(new MerchantAmountSummay()
-                                    {
-                                        MerchantId = MerchantId,
-                                        TradeMonth = TradeMonth,
-                                        TradeDate = TradeDate,
-                                        PayMode = PayMode,
-                                        IsAct = IsAct,
-                                    }).Entity;
-                                    db.SaveChanges();
-                                }
-                                merchantStat.TradeAmount += TradeAmount;
-                                merchantStat.TradeCount += TradeCount;
-                                merchantStat.TotalActual += ActualAmount;
+                                    MerchantId = MerchantId,
+                                    TradeMonth = TradeMonth,
+                                    TradeDate = TradeDate,
+                                    PayMode = PayMode,
+                                    IsAct = IsAct,
+                                }).Entity;
+                                db.SaveChanges();
+                            }
+                            merchantStat.TradeAmount += TradeAmount;
+                            merchantStat.TradeCount += TradeCount;
+                            merchantStat.TotalActual += ActualAmount;
 
-                                MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == MerchantId);
-                                if(merchant != null)
+                            MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == MerchantId);
+                            if(merchant != null)
+                            {
+                                merchant.TotalAmount += TradeAmount;
+                                merchant.TotalConsumeCount += TradeCount;
+                                merchant.TotalActual += ActualAmount;
+                                if(IsAct == 1)
                                 {
-                                    merchant.TotalAmount += TradeAmount;
-                                    merchant.TotalConsumeCount += TradeCount;
-                                    merchant.TotalActual += ActualAmount;
-                                    if(IsAct == 1)
+                                    merchant.TotalActAmount += TradeAmount;
+                                    merchant.TotalActActual += ActualAmount;
+                                    if(merchant.ActivationStatus == 0 && merchant.TotalActAmount >= 10000M)
                                     {
-                                        merchant.TotalActAmount += TradeAmount;
-                                        merchant.TotalActActual += ActualAmount;
-                                        if(merchant.ActivationStatus == 0 && merchant.TotalActAmount >= 10000M)
-                                        {
-                                            RedisDbconn.Instance.AddList("ActProfitQueue", MerchantId.ToString());
-                                            merchant.ActivationStatus = 1;
-                                            merchant.ActivationDate = DateTime.Now;
-                                        }
+                                        RedisDbconn.Instance.AddList("ActProfitQueue", MerchantId.ToString());
+                                        merchant.ActivationStatus = 1;
+                                        merchant.ActivationDate = DateTime.Now;
                                     }
                                 }
-                                db.SaveChanges();
+                            }
+                            db.SaveChanges();
 
-                                //码牌交易额
-                                QrCodeAmountSummay qrcode = db.QrCodeAmountSummay.FirstOrDefault(m => m.SnNo == SnNo && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
-                                if (qrcode == null)
+                            //码牌交易额
+                            QrCodeAmountSummay qrcode = db.QrCodeAmountSummay.FirstOrDefault(m => m.SnNo == SnNo && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
+                            if (qrcode == null)
+                            {
+                                qrcode = db.QrCodeAmountSummay.Add(new QrCodeAmountSummay()
                                 {
-                                    qrcode = db.QrCodeAmountSummay.Add(new QrCodeAmountSummay()
-                                    {
-                                        SnNo = SnNo,
-                                        TradeMonth = TradeMonth,
-                                        TradeDate = TradeDate,
-                                        PayMode = PayMode,
-                                        IsAct = IsAct,
-                                    }).Entity;
-                                    db.SaveChanges();
-                                }
-                                qrcode.TradeAmount += TradeAmount;
-                                qrcode.TradeCount += TradeCount;
-                                qrcode.TotalActual += ActualAmount;
+                                    SnNo = SnNo,
+                                    TradeMonth = TradeMonth,
+                                    TradeDate = TradeDate,
+                                    PayMode = PayMode,
+                                    IsAct = IsAct,
+                                }).Entity;
                                 db.SaveChanges();
                             }
-                            OtherMySqlConn.op("update ConsumerOrders set Version=1 where Id in (" + ids.TrimEnd(',') + ")");
+                            qrcode.TradeAmount += TradeAmount;
+                            qrcode.TradeCount += TradeCount;
+                            qrcode.TotalActual += ActualAmount;
+                            db.SaveChanges();
                         }
+                        OtherMySqlConn.op("update ConsumerOrders set Version=1 where Id in (" + ids.TrimEnd(',') + ")");
                     }
-                    tran.Commit();
-                }
-                catch (Exception ex)
-                {
-                    tran.Rollback();
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户和创客交易额异常");
                 }
             }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户和创客交易额异常");
+            }
             db.Dispose();
             maindb.Dispose();
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "统计商户和创客交易额日志");