Browse Source

增加每月1号统计达标商户队列

lichunlei 2 years ago
parent
commit
dfdac60f2c
3 changed files with 72 additions and 61 deletions
  1. 67 59
      AppStart/Helper/DepositReturnStatService.cs
  2. 2 2
      Controllers/HomeController.cs
  3. 3 0
      Startup.cs

+ 67 - 59
AppStart/Helper/DepositReturnStatService.cs

@@ -27,8 +27,8 @@ namespace MySystem
         {
             while(true)
             {
-                // if(DateTime.Now.Day == 1 && DateTime.Now.Hour == 1)
-                // {
+                if(DateTime.Now.Day == 1 && DateTime.Now.Hour > 0)
+                {
                     try
                     {
                         StartEverDayDo();
@@ -37,82 +37,90 @@ namespace MySystem
                     {
                         function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "每月统计押金达标数据异常");
                     }
-                // }
-                Thread.Sleep(1000);
+                }
+                Thread.Sleep(60000);
             }
         }
 
         public void StartEverDayDo()
         {
             string Month = DateTime.Now.ToString("yyyyMM");
-            // string chk = function.ReadInstance("/DepositReturn/" + Month + ".txt");
-            // if(!string.IsNullOrEmpty(chk))
-            // {
-            //     return;
-            // }
-            // function.WritePage("/DepositReturn/", Month + ".txt", DateTime.Now.ToString());
+            string chk = function.ReadInstance("/DepositReturn/" + Month + ".txt");
+            if(!string.IsNullOrEmpty(chk))
+            {
+                return;
+            }
+            function.WritePage("/DepositReturn/", Month + ".txt", DateTime.Now.ToString());
             WebCMSEntities db = new WebCMSEntities();
-            int startid = int.Parse(function.CheckInt(function.ReadInstance("/DepositReturn/MerchantId.txt")));
-            List<PosMerchantInfo> merchants = db.PosMerchantInfo.Where(m => m.Id > startid && m.StandardStatus == 0).OrderBy(m => m.Id).Take(50).ToList();
-            foreach(PosMerchantInfo merchant in merchants)
+            int startid = int.Parse(function.CheckInt(function.ReadInstance("/DepositReturn/" + Month + "MerchantId.txt")));
+            bool op = true;
+            while(op)
             {
-                if(merchant.ActiveStatus == 1)
+                List<PosMerchantInfo> merchants = db.PosMerchantInfo.Where(m => m.Id > startid && m.ActiveStatus == 1 && m.StandardStatus == 0).OrderBy(m => m.Id).Take(50).ToList();
+                if(merchants.Count > 0)
                 {
-                    string start = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
-                    int StandardMonths = merchant.StandardMonths;
-                    int StandardStatus = merchant.StandardStatus;                    
-                    DateTime ActDate = merchant.CreateDate.Value;
-                    if(merchant.MerStandardDate == null)
+                    foreach(PosMerchantInfo merchant in merchants)
                     {
-                        PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == merchant.KqSnNo && m.ActivationState == 1 && m.ActivationTime != null);
-                        if(pos != null)
+                        // string start = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
+                        int StandardMonths = merchant.StandardMonths;
+                        int StandardStatus = merchant.StandardStatus;                    
+                        DateTime ActDate = merchant.CreateDate.Value;
+                        if(merchant.MerStandardDate == null)
                         {
-                            ActDate = pos.ActivationTime.Value;
-                        }
-                    }
-                    else
-                    {
-                        ActDate = merchant.MerStandardDate.Value;
-                    }
-                    int MonthNum = StandardMonths;
-                    for (int i = StandardMonths + 1; i <= 10; i++)
-                    {
-                        string TradeMonth = ActDate.AddMonths(i).ToString("yyyyMM");
-                        if(int.Parse(TradeMonth) < int.Parse(DateTime.Now.ToString("yyyyMM")))
-                        {
-                            decimal TradeAmount = 0;
-                            bool CheckAmount = db.PosMerchantTradeSummay.Any(m => m.MerchantId == merchant.Id && m.TradeMonth == TradeMonth);
-                            if(CheckAmount)
+                            PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == merchant.KqSnNo && m.ActivationState == 1 && m.ActivationTime != null);
+                            if(pos != null)
                             {
-                                TradeAmount = db.PosMerchantTradeSummay.Where(m => m.MerchantId == merchant.Id && m.TradeMonth == TradeMonth).Sum(m => m.TradeAmount);
+                                ActDate = pos.ActivationTime.Value;
                             }
-                            if(TradeAmount >= 10000)
-                            {
-                                MonthNum = i;
-                            }
-                            else
+                        }
+                        else
+                        {
+                            ActDate = merchant.MerStandardDate.Value;
+                        }
+                        int MonthNum = StandardMonths;
+                        for (int i = StandardMonths + 1; i <= 10; i++)
+                        {
+                            string TradeMonth = ActDate.AddMonths(i).ToString("yyyyMM");
+                            if(int.Parse(TradeMonth) < int.Parse(DateTime.Now.ToString("yyyyMM")))
                             {
-                                StandardStatus = -1;
-                                break;
+                                decimal TradeAmount = 0;
+                                bool CheckAmount = db.PosMerchantTradeSummay.Any(m => m.MerchantId == merchant.Id && m.TradeMonth == TradeMonth);
+                                if(CheckAmount)
+                                {
+                                    TradeAmount = db.PosMerchantTradeSummay.Where(m => m.MerchantId == merchant.Id && m.TradeMonth == TradeMonth).Sum(m => m.TradeAmount);
+                                }
+                                if(TradeAmount >= 10000)
+                                {
+                                    MonthNum = i;
+                                }
+                                else
+                                {
+                                    StandardStatus = -1;
+                                    break;
+                                }
                             }
                         }
+                        if(MonthNum >= 10)
+                        {
+                            StandardStatus = 4;
+                        }
+                        PosMerchantInfo edit = db.PosMerchantInfo.FirstOrDefault(m => m.Id == merchant.Id);
+                        if(edit != null)
+                        {
+                            edit.StandardMonths = MonthNum;
+                            edit.StandardStatus = StandardStatus;
+                            db.SaveChanges();
+                        }
+                        // string end = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
+                        startid = merchant.Id;
                     }
-                    if(MonthNum >= 10)
-                    {
-                        StandardStatus = 4;
-                    }
-                    PosMerchantInfo edit = db.PosMerchantInfo.FirstOrDefault(m => m.Id == merchant.Id);
-                    if(edit != null)
-                    {
-                        edit.StandardMonths = MonthNum;
-                        edit.StandardStatus = StandardStatus;
-                        db.SaveChanges();
-                    }
-                    string end = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
                 }
-                startid = merchant.Id;
+                else
+                {
+                    op = false;
+                }
+                function.WritePage("/DepositReturn/", Month + "MerchantId.txt", startid.ToString());
             }
-            function.WritePage("/DepositReturn/", "MerchantId.txt", startid.ToString());
             db.Dispose();
         }
     }

+ 2 - 2
Controllers/HomeController.cs

@@ -1134,8 +1134,8 @@ namespace MySystem.Controllers
         public string test3()
         {
             WebCMSEntities db = new WebCMSEntities();
-            // StoreApplyHelper.Instance.DoSomething(db, 89);
-            AlipayPayBack2Service.Instance.DoOrderV2(db, 139620);
+            StoreApplyHelper.Instance.DoSomething(db, 152335);
+            // AlipayPayBack2Service.Instance.DoOrderV2(db, 139620);
             // PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == sn);
             // if(pos != null)
             // {

+ 3 - 0
Startup.cs

@@ -143,6 +143,7 @@ namespace MySystem
                 app.UseHsts();
                 Library.ConfigurationManager.EnvironmentFlag = 2;
             }
+            // Library.ConfigurationManager.EnvironmentFlag = 2;
             Library.function.WritePage("/", "WebRootPath.txt", env.WebRootPath);
             // app.UseStatusCodePagesWithReExecute("/public/errpage/pc/{0}.html");
 
@@ -230,6 +231,8 @@ namespace MySystem
             // PosExpiredHelper.Instance.Start(); //过期机具提醒
             PosExpiredHelper.Instance.StartPay(); //过期机具扣费
 
+            DepositReturnStatService.Instance.Start(); //每月1号统计达标商户(退押需要的)
+
             // StatService.Instance.StartPosActNum(); //实时统计激活数
             // StatService.Instance.StartNewUserNum(); //实时统计新增创客数
             // StatService.Instance.StatProfit(); //实时统计创客收益