Prechádzať zdrojové kódy

添加给商户单独推送订单信息队列

lcl 6 mesiacov pred
rodič
commit
8285b4303d
3 zmenil súbory, kde vykonal 79 pridanie a 0 odobranie
  1. 2 0
      Startup.cs
  2. 4 0
      Util/HaoDa/WeChatPayBackService.cs
  3. 73 0
      Util/OrderPushHelper.cs

+ 2 - 0
Startup.cs

@@ -178,6 +178,8 @@ namespace MySystem
                 
                 // GetHaoDaFTPInfoService.Instance.Start(); // 获取好哒FTP交易数据
                 GetTencentAddressInfoService.Instance.Start(); // 获取腾讯地图地址
+
+                OrderPushHelper.Instance.Start(); //给商户单独推送订单信息
             }
             // GetHaoDaFTPInfoService.Instance.GetFTPDataInfoYesterday();
         }

+ 4 - 0
Util/HaoDa/WeChatPayBackService.cs

@@ -138,6 +138,10 @@ namespace MySystem
 
                     //发送订单到客小爽MQ
                     OrderMessageHelper.SendOrderMsg(order);
+
+                    //给商户单独推送订单消息
+                    string orderData = "{\"order_no\":\"" + order.OrderNo + "\",\"order_status\":\"" + order.Status + "\",\"order_time\":\"" + order.UpdateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") + "\"}";
+                    RedisDbconn.Instance.AddList("OrderPushQueue", orderData);
                 }
                 else
                 {

+ 73 - 0
Util/OrderPushHelper.cs

@@ -0,0 +1,73 @@
+using System;
+using System.Threading;
+using System.Linq;
+using System.Data;
+using Library;
+using MySystem.Models;
+using LitJson;
+using System.Collections.Generic;
+using System.Security.Cryptography;
+
+namespace MySystem
+{
+    public class OrderPushHelper
+    {
+        public readonly static OrderPushHelper Instance = new OrderPushHelper();
+        private OrderPushHelper()
+        {
+        }
+
+        string reqUrl = "https://lcx.93a.cn:18080/mikl/wechat/payResult";
+
+        public void Start()//启动
+        {
+            Thread thread = new Thread(listen);
+            thread.IsBackground = true;
+            thread.Start();
+        }
+
+        public void listen()
+        {
+            while (true)
+            {
+                string content = RedisDbconn.Instance.RPop<string>("OrderPushQueue");
+                if (!string.IsNullOrEmpty(content))
+                {
+                    try
+                    {
+                        doSomething(content);
+                        Thread.Sleep(10);
+                    }
+                    catch (Exception ex)
+                    {
+                        LogHelper.Instance.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "商户订单信息推送异常");
+                    }
+                }
+                else
+                {
+                    Thread.Sleep(1000);
+                }
+            }
+        }
+
+        public void doSomething(string content)
+        {
+            JsonData jsonObj = JsonMapper.ToObject(content);
+            SortedList<string, string> data = new SortedList<string, string>();
+            data.Add("order_no", jsonObj["order_no"].ToString()); //订单号
+            data.Add("order_status", jsonObj["order_status"].ToString()); //订单状态
+            data.Add("order_time", jsonObj["order_time"].ToString()); //变动时间
+            post(data);
+        }
+
+        private string post(SortedList<string, string> data)
+        {
+            string req = Newtonsoft.Json.JsonConvert.SerializeObject(data);
+            function.WriteLog("请求地址:" + reqUrl, "商户订单信息推送日志");
+            function.WriteLog("请求参数:" + req, "商户订单信息推送日志");
+            string result = function.PostWebRequest(reqUrl, req, "application/json");
+            function.WriteLog("响应数据:" + result, "商户订单信息推送日志");
+            return result;
+        }
+    }
+}