瀏覽代碼

单独补数据队列

lcl 5 月之前
父節點
當前提交
efc826d23a
共有 2 個文件被更改,包括 160 次插入121 次删除
  1. 159 121
      AppStart/GetHaoDaFTPInfoService.cs
  2. 1 0
      Startup.cs

+ 159 - 121
AppStart/GetHaoDaFTPInfoService.cs

@@ -111,6 +111,39 @@ namespace MySystem
                 }
             }
         }
+
+        public void StartListenOne()
+        {
+            //每天凌晨执行获取好哒FTP昨日交易数据
+            Thread th = new Thread(ListenDepositOne);
+            th.IsBackground = true;
+            th.Start();
+        }
+        /// <summary>
+        /// 获取好哒FTP昨日交易数据
+        /// </summary>
+        public void ListenDepositOne()
+        {
+            while (true)
+            {
+                string content = RedisDbconn.Instance.RPop<string>("ListenDepositOneQueue");
+                if (!string.IsNullOrEmpty(content))
+                {
+                    string[] data = content.Split('|');
+                    WebCMSEntities db = new WebCMSEntities();
+                    MpMainModels2.WebCMSEntities mpdb2 = new MpMainModels2.WebCMSEntities();
+                    DataInDatabase(db, mpdb2, data[0], data[1]);
+                    db.Dispose();
+                    mpdb2.Dispose();
+                    Thread.Sleep(2000);
+                }
+                else
+                {
+                    Thread.Sleep(60000);
+                }
+            }
+        }
+
         public void GetDepositData(string Date)
         {
             // 要下载的文件路径
@@ -141,127 +174,7 @@ namespace MySystem
                         var DataList = DataInfo[1].Split('\n');
                         foreach (var DataListItem in DataList)
                         {
-                            var DataListInfo = DataListItem.Split(',');
-
-                            string SnNo = DataListInfo[0]; //sn
-                            string MerNo = DataListInfo[1]; //商户编号
-                            string PosKind = DataListInfo[2]; //机具型号
-                            string ActDate = DataListInfo[3]; //激活时间
-                            string Deposit = DataListInfo[4]; //押金金额
-                            string PrizeAmt = "0"; //奖励金额
-                            string PrizeDate = "None"; //奖励发放时间
-                            string Name = ""; //发放人姓名
-                            string MerName = ""; //商户名称
-                            string PassDate = ""; //审核通过时期
-                            string MerKind = ""; //商户类型
-                            if(Date.StartsWith("d_"))
-                            {
-                                MerName = DataListInfo[5]; //商户名称
-                                PassDate = DataListInfo[6]; //审核通过时期
-                                MerKind = DataListInfo[7]; //商户类型
-                            }
-                            else
-                            {
-                                PrizeAmt = DataListInfo[5]; //奖励金额
-                                PrizeDate = DataListInfo[6]; //奖励发放时间
-                                Name = DataListInfo[7]; //发放人姓名
-                                MerName = DataListInfo[8]; //商户名称
-                                PassDate = DataListInfo[9]; //审核通过时期
-                            }
-
-                            string ActDateString = ActDate.Substring(0, 4) + "-" + ActDate.Substring(4, 2) + "-" + ActDate.Substring(6, 2);
-                            if(DateTime.Parse(ActDateString) >= DateTime.Parse(DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd")))
-                            {
-                                string PrizeDateString = "";
-                                if(PrizeDate == "None")
-                                {
-                                    PrizeDate = Date.Replace("d_", "");
-                                }
-                                else
-                                {
-                                    PrizeDateString = PrizeDate.Substring(0, 4) + "-" + PrizeDate.Substring(4, 2) + "-" + PrizeDate.Substring(6, 2);
-                                }
-
-                                if(!db.BindRecord.Any(m => m.MerSnNo == SnNo))
-                                {
-                                    string ProductType = "0";
-                                    if(PosKind == "好哒语音王Y512") ProductType = "18";
-                                    if(PosKind == "4G收款王M820") ProductType = "19";
-                                    if(PosKind == "4G收款王M826") ProductType = "20";
-                                    if(PosKind == "好哒S312") ProductType = "21";
-                                    if(PosKind == "好哒扫码通M837") ProductType = "29";
-
-                                    BindRecord mer = db.BindRecord.Add(new BindRecord()
-                                    {
-                                        CreateDate = DateTime.Now,
-                                        UpdateTime = DateTime.Now, //机具绑定、解绑时间
-                                        CreateTime = DateTime.Now, //商户操作时间
-                                        MerSnNo = SnNo, //序列号
-                                        MerNo = MerNo, //商户编号
-                                        MerName = MerName,
-                                        SeoTitle = PrizeAmt,
-                                        SeoKeyword = ActDateString,
-                                        ProductType = ProductType,
-                                        Field1 = Deposit,
-                                        Field2 = PrizeDate,
-                                        Field3 = Name,
-                                        Field4 = PassDate,
-                                        Field5 = MerKind,
-                                        Status = 1,
-                                    }).Entity;
-
-                                    db.Merchants.Add(new Merchants()
-                                    {
-                                        SnNo = SnNo,
-                                        CreateTime = DateTime.Now,
-                                        UpdateTime = DateTime.Now,
-                                        AgentName = Name,
-                                        MerRealName = Name,
-                                        MerNo = MerNo,
-                                        MerName = Name,
-                                        ProductType = ProductType,
-                                        Status = 1,
-                                    });
-                                    db.SaveChanges();
-
-                                    Thread.Sleep(1000);
-
-                                    ActivateRecord act = db.ActivateRecord.Add(new ActivateRecord()
-                                    {
-                                        SnNo = SnNo,
-                                        CreateDate = DateTime.Now,
-                                        SeoTitle = Deposit,
-                                        ActivateDate = DateTime.Now,
-                                        AgentNo = MerNo,
-                                        MerRealName = Name,
-                                        MerNo = MerNo,
-                                        MerName = Name,
-                                        ProductType = ProductType,
-                                        ChannelSerial = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8),
-                                        Status = 1,
-                                        Field1 = PassDate,
-                                        Field2 = MerKind,
-                                    }).Entity;
-                                    db.SaveChanges();
-
-                                    //推送MQ给创业帮
-                                    var merchantAddInfo = mpdb2.MerchantAddInfo.FirstOrDefault(m => m.MchtNo == MerNo) ?? new MpMainModels2.MerchantAddInfo();
-                                    if (merchantAddInfo.BrandId == 1 && !string.IsNullOrEmpty(merchantAddInfo.CybMakerCode))
-                                    {
-                                        SortedList<string, string> obj = new SortedList<string, string>();
-                                        obj.Add("create_time", ActDateString);
-                                        obj.Add("sn", SnNo);
-                                        obj.Add("deposit", Deposit);
-                                        obj.Add("subject_type", merchantAddInfo.SubjectType);
-                                        obj.Add("merch_no", merchantAddInfo.MchtNo);
-                                        obj.Add("maker_code", merchantAddInfo.CybMakerCode);
-                                        PushHelper.Instance.Do(obj, "cashNotify");
-
-                                        PosPushDataNewHelper.Bind(mer);
-                                        PosPushDataNewHelper.Deposit(act);
-                                    }
-                                }
-                            }
+                            DataInDatabase(db, mpdb2, DataListItem, Date);
                         }
                     }
                     db.Dispose();
@@ -279,6 +192,131 @@ namespace MySystem
             }
         }
 
+        public void DataInDatabase(WebCMSEntities db, MpMainModels2.WebCMSEntities mpdb2, string DataListItem, string Date)
+        {
+            var DataListInfo = DataListItem.Split(',');
+
+            string SnNo = DataListInfo[0]; //sn
+            string MerNo = DataListInfo[1]; //商户编号
+            string PosKind = DataListInfo[2]; //机具型号
+            string ActDate = DataListInfo[3]; //激活时间
+            string Deposit = DataListInfo[4]; //押金金额
+            string PrizeAmt = "0"; //奖励金额
+            string PrizeDate = "None"; //奖励发放时间
+            string Name = ""; //发放人姓名
+            string MerName = ""; //商户名称
+            string PassDate = ""; //审核通过时期
+            string MerKind = ""; //商户类型
+            if(Date.StartsWith("d_"))
+            {
+                MerName = DataListInfo[5]; //商户名称
+                PassDate = DataListInfo[6]; //审核通过时期
+                MerKind = DataListInfo[7]; //商户类型
+            }
+            else
+            {
+                PrizeAmt = DataListInfo[5]; //奖励金额
+                PrizeDate = DataListInfo[6]; //奖励发放时间
+                Name = DataListInfo[7]; //发放人姓名
+                MerName = DataListInfo[8]; //商户名称
+                PassDate = DataListInfo[9]; //审核通过时期
+            }
+
+            string ActDateString = ActDate.Substring(0, 4) + "-" + ActDate.Substring(4, 2) + "-" + ActDate.Substring(6, 2);
+            if(DateTime.Parse(ActDateString) >= DateTime.Parse(DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd")))
+            {
+                string PrizeDateString = "";
+                if(PrizeDate == "None")
+                {
+                    PrizeDate = Date.Replace("d_", "");
+                }
+                else
+                {
+                    PrizeDateString = PrizeDate.Substring(0, 4) + "-" + PrizeDate.Substring(4, 2) + "-" + PrizeDate.Substring(6, 2);
+                }
+
+                if(!db.BindRecord.Any(m => m.MerSnNo == SnNo))
+                {
+                    string ProductType = "0";
+                    if(PosKind == "好哒语音王Y512") ProductType = "18";
+                    if(PosKind == "4G收款王M820") ProductType = "19";
+                    if(PosKind == "4G收款王M826") ProductType = "20";
+                    if(PosKind == "好哒S312") ProductType = "21";
+                    if(PosKind == "好哒扫码通M837") ProductType = "29";
+
+                    BindRecord mer = db.BindRecord.Add(new BindRecord()
+                    {
+                        CreateDate = DateTime.Now,
+                        UpdateTime = DateTime.Now, //机具绑定、解绑时间
+                        CreateTime = DateTime.Now, //商户操作时间
+                        MerSnNo = SnNo, //序列号
+                        MerNo = MerNo, //商户编号
+                        MerName = MerName,
+                        SeoTitle = PrizeAmt,
+                        SeoKeyword = ActDateString,
+                        ProductType = ProductType,
+                        Field1 = Deposit,
+                        Field2 = PrizeDate,
+                        Field3 = Name,
+                        Field4 = PassDate,
+                        Field5 = MerKind,
+                        Status = 1,
+                    }).Entity;
+
+                    db.Merchants.Add(new Merchants()
+                    {
+                        SnNo = SnNo,
+                        CreateTime = DateTime.Now,
+                        UpdateTime = DateTime.Now,
+                        AgentName = Name,
+                        MerRealName = Name,
+                        MerNo = MerNo,
+                        MerName = Name,
+                        ProductType = ProductType,
+                        Status = 1,
+                    });
+                    db.SaveChanges();
+
+                    Thread.Sleep(1000);
+
+                    ActivateRecord act = db.ActivateRecord.Add(new ActivateRecord()
+                    {
+                        SnNo = SnNo,
+                        CreateDate = DateTime.Now,
+                        SeoTitle = Deposit,
+                        ActivateDate = DateTime.Now,
+                        AgentNo = MerNo,
+                        MerRealName = Name,
+                        MerNo = MerNo,
+                        MerName = Name,
+                        ProductType = ProductType,
+                        ChannelSerial = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8),
+                        Status = 1,
+                        Field1 = PassDate,
+                        Field2 = MerKind,
+                    }).Entity;
+                    db.SaveChanges();
+
+                    //推送MQ给创业帮
+                    var merchantAddInfo = mpdb2.MerchantAddInfo.FirstOrDefault(m => m.MchtNo == MerNo) ?? new MpMainModels2.MerchantAddInfo();
+                    if (merchantAddInfo.BrandId == 1 && !string.IsNullOrEmpty(merchantAddInfo.CybMakerCode))
+                    {
+                        SortedList<string, string> obj = new SortedList<string, string>();
+                        obj.Add("create_time", ActDateString);
+                        obj.Add("sn", SnNo);
+                        obj.Add("deposit", Deposit);
+                        obj.Add("subject_type", merchantAddInfo.SubjectType);
+                        obj.Add("merch_no", merchantAddInfo.MchtNo);
+                        obj.Add("maker_code", merchantAddInfo.CybMakerCode);
+                        PushHelper.Instance.Do(obj, "cashNotify");
+
+                        PosPushDataNewHelper.Bind(mer);
+                        PosPushDataNewHelper.Deposit(act);
+                    }
+                }
+            }
+        }
+
         public void GetDepositData2(string Date)
         {
             // 要下载的文件路径

+ 1 - 0
Startup.cs

@@ -157,6 +157,7 @@ namespace MySystem
             GetHaoDaFTPInfoService.Instance.Start2();
             GetHaoDaFTPInfoService.Instance.StartListen();
             GetHaoDaFTPInfoService.Instance.StartTradeListen();
+            GetHaoDaFTPInfoService.Instance.StartListenOne();
 
             // GetHaoDaFTPInfoService.Instance.StartTrade();
             // GetHaoDaFTPInfoService.Instance.GetTradeData();