Browse Source

自动取消超时订单(15分钟)

lichunlei 2 years ago
parent
commit
83dbaddf12
2 changed files with 73 additions and 0 deletions
  1. 72 0
      AppStart/Helper/AutoOpOrderService.cs
  2. 1 0
      Startup.cs

+ 72 - 0
AppStart/Helper/AutoOpOrderService.cs

@@ -0,0 +1,72 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Data;
+using System.Threading;
+using MySystem.Models;
+using Library;
+using LitJson;
+
+namespace MySystem
+{
+    public class AutoOpOrderService
+    {
+        public readonly static AutoOpOrderService Instance = new AutoOpOrderService();
+        private AutoOpOrderService()
+        { }
+
+        public void StartOrderCancel()
+        {
+            Thread th = new Thread(StartOrderCancelDo);
+            th.IsBackground = true;
+            th.Start();
+        }
+        
+        private void StartOrderCancelDo()
+        { 
+            while (true)
+            {
+                try
+                {
+                    string conn = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+                    string checkDate = DateTime.Now.AddMinutes(-15).ToString("yyyy-MM-dd HH:mm:ss");
+                    CustomerSqlConn.op("update Orders set Status=-1 where Status=0 and CreateDate<'" + checkDate + "'", conn);
+                    Thread.Sleep(60000);
+                }
+                catch (Exception ex)
+                {
+                    function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "定时取消未支付订单异常");
+                }
+            }
+        }
+
+
+
+
+        public void StartOrderConfirm()
+        {
+            Thread th = new Thread(StartOrderConfirmDo);
+            th.IsBackground = true;
+            th.Start();
+        }
+        
+        private void StartOrderConfirmDo()
+        { 
+            while (true)
+            {
+                try
+                {
+                    string conn = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+                    string checkDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd HH:mm:ss");
+                    CustomerSqlConn.op("update Orders set Status=-1 where Status=2 and SendDate<'" + checkDate + "'", conn);
+                    Thread.Sleep(3600000);
+                }
+                catch (Exception ex)
+                {
+                    function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "定时自动确认收货异常");
+                }
+            }
+        }
+
+    }
+}

+ 1 - 0
Startup.cs

@@ -232,6 +232,7 @@ namespace MySystem
             PosExpiredHelper.Instance.StartPay(); //过期机具扣费
 
             DepositReturnStatService.Instance.Start(); //每月1号统计达标商户(退押需要的)
+            AutoOpOrderService.Instance.StartOrderCancel(); //自动取消超时订单(15分钟)
 
             // StatService.Instance.StartPosActNum(); //实时统计激活数
             // StatService.Instance.StartNewUserNum(); //实时统计新增创客数