Browse Source

更新重置交易额程序

lcl 1 năm trước cách đây
mục cha
commit
4d13a514c5
3 tập tin đã thay đổi với 119 bổ sung11 xóa
  1. 54 0
      AppStart/Helper/StatResetService.cs
  2. 64 10
      AppStart/Helper/StatResetService2.cs
  3. 1 1
      Startup.cs

+ 54 - 0
AppStart/Helper/StatResetService.cs

@@ -54,6 +54,7 @@ namespace MySystem
             string endDate = jsonObj["EndDate"].ToString();
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "重置商户交易额日志");
             WebCMSEntities db = new WebCMSEntities();
+            string conn = Library.ConfigurationManager.AppSettings["StatSqlConnStr"].ToString();
             KxsMainModels.WebCMSEntities maindb = new KxsMainModels.WebCMSEntities();
             using (var tran = db.Database.BeginTransaction())
             {
@@ -63,6 +64,15 @@ namespace MySystem
                     if (selfDt.Rows.Count > 0)
                     {
                         function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "重置商户交易额日志");
+                        var ResetDate = "";
+                        bool check = false; //重置统计表数据开关
+                        decimal NonActAmounts = 0;
+                        decimal ActAmounts = 0;
+                        decimal AliPayInFactAmounts = 0;
+                        decimal WeChatInfactAmounts = 0;
+                        int OderCounts = 0;
+                        decimal InFactAmounts = 0;
+                        decimal TradeAmounts = 0;
                         foreach (DataRow selfDr in selfDt.Rows)
                         {
                             int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
@@ -88,6 +98,50 @@ namespace MySystem
                                 }).Entity;
                                 db.SaveChanges();
                             }
+                            var LastDate = ResetDate; //上次重置时间
+                            if (ResetDate == "")
+                            {
+                                LastDate = TradeDate;
+                            }
+                            ResetDate = TradeDate; //覆盖重置时间
+                            if (LastDate == TradeDate)
+                            {
+                                OderCounts += TradeCount;
+                                TradeAmounts += TradeAmount;
+                                if (IsAct == 0) NonActAmounts += TradeAmount;
+                                if (IsAct == 1) ActAmounts += TradeAmount;
+                                if (PayMode == 1) AliPayInFactAmounts += ActualAmount;
+                                if (PayMode == 2) WeChatInfactAmounts += ActualAmount;
+                                if (IsAct == 1) InFactAmounts += TradeAmount;
+                                if (selfDt.Rows.Count == 1)
+                                {
+                                    CustomerSqlConn.op("UPDATE MerchantTradeSummary" + LastDate + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + "", conn);
+                                    CustomerSqlConn.op("UPDATE MerchantTradeSummaryList" + TradeMonth + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + " AND TradeDate='" + LastDate + "'", conn);
+                                }
+                            }
+                            else
+                            {
+                                check = true;
+                                if (check)
+                                {
+                                    if (check)
+                                    {
+                                        CustomerSqlConn.op("UPDATE MerchantTradeSummary" + LastDate + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + "", conn);
+                                        CustomerSqlConn.op("UPDATE MerchantTradeSummaryList" + TradeMonth + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + " AND TradeDate='" + LastDate + "'", conn);
+                                        check = false;
+                                    }
+                                }
+                                if (check == false)
+                                {
+                                    OderCounts = TradeCount;
+                                    TradeAmounts = TradeAmount;
+                                    if (IsAct == 0) NonActAmounts = TradeAmount;
+                                    if (IsAct == 1) ActAmounts = TradeAmount;
+                                    if (PayMode == 1) AliPayInFactAmounts = ActualAmount;
+                                    if (PayMode == 2) WeChatInfactAmounts = ActualAmount;
+                                    if (IsAct == 1) InFactAmounts = TradeAmount;
+                                }
+                            }
                             merchantStat.TradeAmount = TradeAmount;
                             merchantStat.TradeCount = TradeCount;
                             merchantStat.TotalActual = ActualAmount;

+ 64 - 10
AppStart/Helper/StatResetService2.cs

@@ -21,11 +21,11 @@ namespace MySystem
             Thread th = new Thread(StartResetMerchantDo);
             th.IsBackground = true;
             th.Start();
-            
+
             Thread thUser = new Thread(StartResetUserSelfDo);
             thUser.IsBackground = true;
             thUser.Start();
-            
+
             Thread thUserTeam = new Thread(StartResetUserTeamDo);
             thUserTeam.IsBackground = true;
             thUserTeam.Start();
@@ -39,12 +39,13 @@ namespace MySystem
             while (true)
             {
                 string content = RedisDbconn.Instance.RPop<string>("ResetMerchantStatDataQueue2");
-                if(!string.IsNullOrEmpty(content))
+                if (!string.IsNullOrEmpty(content))
                 {
                     StatResetMerchantAmount(content);
                 }
                 Thread.Sleep(10000);
             }
+            // StatResetMerchantAmount("{\"MerchantId\":\"" + 1415 + "\",\"StartDate\":\"" + 20231127 + "\",\"EndDate\":\"" + 20231127 + "\"}");
         }
         public void StatResetMerchantAmount(string content)
         {
@@ -54,6 +55,7 @@ namespace MySystem
             string endDate = jsonObj["EndDate"].ToString();
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "重置商户交易额日志");
             WebCMSEntities db = new WebCMSEntities();
+            string conn = Library.ConfigurationManager.AppSettings["StatSqlConnStr2"].ToString();
             KxsMainModels.WebCMSEntities maindb = new KxsMainModels.WebCMSEntities();
             using (var tran = db.Database.BeginTransaction())
             {
@@ -63,6 +65,15 @@ namespace MySystem
                     if (selfDt.Rows.Count > 0)
                     {
                         function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "重置商户交易额日志");
+                        var ResetDate = "";
+                        bool check = false; //重置统计表数据开关
+                        decimal NonActAmounts = 0;
+                        decimal ActAmounts = 0;
+                        decimal AliPayInFactAmounts = 0;
+                        decimal WeChatInfactAmounts = 0;
+                        int OderCounts = 0;
+                        decimal InFactAmounts = 0;
+                        decimal TradeAmounts = 0;
                         foreach (DataRow selfDr in selfDt.Rows)
                         {
                             int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
@@ -73,7 +84,6 @@ namespace MySystem
                             int TradeCount = int.Parse(selfDr[5].ToString());
                             decimal ActualAmount = decimal.Parse(selfDr[6].ToString());
                             string TradeMonth = TradeDate.Substring(0, 6);
-
                             //商户交易额
                             MerchantAmountSummay merchantStat = db.MerchantAmountSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
                             if (merchantStat == null)
@@ -88,6 +98,50 @@ namespace MySystem
                                 }).Entity;
                                 db.SaveChanges();
                             }
+                            var LastDate = ResetDate; //上次重置时间
+                            if (ResetDate == "")
+                            {
+                                LastDate = TradeDate;
+                            }
+                            ResetDate = TradeDate; //覆盖重置时间
+                            if (LastDate == TradeDate)
+                            {
+                                OderCounts += TradeCount;
+                                TradeAmounts += TradeAmount;
+                                if (IsAct == 0) NonActAmounts += TradeAmount;
+                                if (IsAct == 1) ActAmounts += TradeAmount;
+                                if (PayMode == 1) AliPayInFactAmounts += ActualAmount;
+                                if (PayMode == 2) WeChatInfactAmounts += ActualAmount;
+                                if (IsAct == 1) InFactAmounts += TradeAmount;
+                                if (selfDt.Rows.Count == 1)
+                                {
+                                    CustomerSqlConn.op("UPDATE MerchantTradeSummary" + LastDate + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + "", conn);
+                                    CustomerSqlConn.op("UPDATE MerchantTradeSummaryList" + TradeMonth + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + " AND TradeDate='" + LastDate + "'", conn);
+                                }
+                            }
+                            else
+                            {
+                                check = true;
+                                if (check)
+                                {
+                                    if (check)
+                                    {
+                                        CustomerSqlConn.op("UPDATE MerchantTradeSummary" + LastDate + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + "", conn);
+                                        CustomerSqlConn.op("UPDATE MerchantTradeSummaryList" + TradeMonth + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + " AND TradeDate='" + LastDate + "'", conn);
+                                        check = false;
+                                    }
+                                }
+                                if (check == false)
+                                {
+                                    OderCounts = TradeCount;
+                                    TradeAmounts = TradeAmount;
+                                    if (IsAct == 0) NonActAmounts = TradeAmount;
+                                    if (IsAct == 1) ActAmounts = TradeAmount;
+                                    if (PayMode == 1) AliPayInFactAmounts = ActualAmount;
+                                    if (PayMode == 2) WeChatInfactAmounts = ActualAmount;
+                                    if (IsAct == 1) InFactAmounts = TradeAmount;
+                                }
+                            }
                             merchantStat.TradeAmount = TradeAmount;
                             merchantStat.TradeCount = TradeCount;
                             merchantStat.TotalActual = ActualAmount;
@@ -112,7 +166,7 @@ namespace MySystem
             while (true)
             {
                 string content = RedisDbconn.Instance.RPop<string>("ResetSnStatDataQueue2");
-                if(!string.IsNullOrEmpty(content))
+                if (!string.IsNullOrEmpty(content))
                 {
                     StatResetSnAmount(content);
                 }
@@ -185,7 +239,7 @@ namespace MySystem
             while (true)
             {
                 string content = RedisDbconn.Instance.RPop<string>("ResetUserSelfStatDataQueue2");
-                if(!string.IsNullOrEmpty(content))
+                if (!string.IsNullOrEmpty(content))
                 {
                     StatResetUserSelfAmount(content);
                 }
@@ -240,10 +294,10 @@ namespace MySystem
                             db.SaveChanges();
 
                             string ParentNav = user.ParentNav + "," + userId + ",";
-                            if(!string.IsNullOrEmpty(ParentNav))
+                            if (!string.IsNullOrEmpty(ParentNav))
                             {
                                 string[] ParentNavList = ParentNav.Replace(",,", ",").Trim(',').Split(',');
-                                foreach(string id in ParentNavList)
+                                foreach (string id in ParentNavList)
                                 {
                                     string reqdata = "{\"UserId\":\"" + id + "\",\"StartDate\":\"" + startDate + "\",\"EndDate\":\"" + endDate + "\"}";
                                     RedisDbconn.Instance.AddList("ResetUserTeamStatDataQueue2", reqdata);
@@ -269,7 +323,7 @@ namespace MySystem
             while (true)
             {
                 string content = RedisDbconn.Instance.RPop<string>("ResetUserTeamStatDataQueue2");
-                if(!string.IsNullOrEmpty(content))
+                if (!string.IsNullOrEmpty(content))
                 {
                     StatResetUserTeamAmount(content);
                 }
@@ -291,7 +345,7 @@ namespace MySystem
                 {
                     string subUserId = "0";
                     var subusers = maindb.Users.Select(m => new { m.Id, m.ParentUserId }).Where(m => m.ParentUserId == userId).ToList();
-                    foreach(var subuser in subusers)
+                    foreach (var subuser in subusers)
                     {
                         subUserId += "," + subuser.Id;
                     }

+ 1 - 1
Startup.cs

@@ -115,7 +115,7 @@ namespace MySystem
             //老平台
             StatService.Instance.Start(); //实时统计交易额
             StatResetService.Instance.StartReset(); //重置交易额
-            StatService.Instance.StartPosActNum(); //实时统计激活数            
+            StatService.Instance.StartPosActNum(); //实时统计激活数
             StatNewService.Instance.StartMer(); //实时统计商户交易额
             StatNewService.Instance.CreateTable(); //生成新的分表