浏览代码

获取数据库中全局变量封装成方法
添加盟主推荐奖励
开机奖励和流量费奖励实时

lichunlei 2 年之前
父节点
当前提交
817318725a

+ 45 - 1
AppStart/Helper/AlipayPayBack2Service.cs

@@ -206,13 +206,27 @@ namespace MySystem
                             //充值盟主储备金
                             OpReserve(db, order, order.UserId, order.TotalPrice, 1);
                             Users user = db.Users.FirstOrDefault(m => m.Id == order.UserId) ?? new Users();
-                            if(pro.ProductId == 27) OperateReserveBackFor(db, user.Id, order.TotalPrice);
+                            if(pro.ProductId == 27)
+                            {
+                                OperateReserveBackFor(db, user.Id, order.TotalPrice);
+                                decimal Prize = decimal.Parse(function.CheckNum(PublicFunction.GetPublicParam(db, "BigLeaderPrize")));
+                                if(Prize > 0)
+                                {
+                                    LeaderRecommendPrize(db, order, user.Id, Prize, 122);
+                                }
+                            }
+
                         }
                         if (pro.ProductId == 28) //购买小盟主,给上级大盟主返储备金
                         {
                             LeaderBack(db, order);
                             Users user = db.Users.FirstOrDefault(m => m.Id == order.UserId) ?? new Users();
                             OperateReserveBackFor(db, user.Id, order.TotalPrice);
+                            decimal Prize = decimal.Parse(function.CheckNum(PublicFunction.GetPublicParam(db, "SmallLeaderPrize")));
+                            if(Prize > 0)
+                            {
+                                LeaderRecommendPrize(db, order, user.Id, Prize, 123);
+                            }
                         }
                     }
 
@@ -992,5 +1006,35 @@ namespace MySystem
 
         #endregion
 
+
+        #region 盟主推荐奖励
+
+        public void LeaderRecommendPrize(WebCMSEntities db, Orders order, int UserId, decimal Money, int ChangeType)
+        {
+            while(UserId > 0)
+            {
+                Users user = db.Users.FirstOrDefault(m => m.Id == UserId);
+                if(user != null)
+                {
+                    if(user.UserType == 1 || user.LeaderLevel > 0)
+                    {
+                        ChangeAccount(db, order, UserId, Money, ChangeType);
+                        UserId = 0;
+                    }
+                    else
+                    {
+                        UserId = user.ParentUserId;
+                    }
+                }
+                else
+                {
+                    UserId = 0;
+                }
+            }
+            db.Dispose();
+        }
+
+        #endregion
+
     }
 }

+ 3 - 3
AppStart/Helper/SetFeeFlagService.cs

@@ -50,15 +50,15 @@ namespace MySystem
                             while(op)
                             {
                                 var posList = db.PosMachinesTwo.Select(m => new { m.Id, m.Status, m.BindingState, m.BindingTime, m.UpFeeFlag, m.BrandId }).Where(m => m.Id > StartId && m.Status > -1 && m.BindingTime <= date && m.BindingState == 1 && m.UpFeeFlag == 0 && BrandIds.Contains(m.BrandId)).OrderBy(m => m.Id).Take(100).ToList();
-                                function.WriteLog(DateTime.Now.ToString(), "178天提前通知创客费率调升");
-                                function.WriteLog(posList.Count.ToString(), "178天提前通知创客费率调升");
+                                function.WriteLog(DateTime.Now.ToString(), "118天提前通知创客费率调升");
+                                function.WriteLog(posList.Count.ToString(), "118天提前通知创客费率调升");
                                 if(posList.Count > 0)
                                 {
                                     //循环修改机具费率调升标记
                                     //统计需要推送消息的用户Id
                                     foreach (var item in posList)
                                     {
-                                        function.WriteLog(item.Id.ToString(), "178天提前通知创客费率调升");
+                                        function.WriteLog(item.Id.ToString(), "118天提前通知创客费率调升");
                                         string info = "{\"RecordId\":\"\",\"PosId\":\"" + item.Id + "\",\"Fee\": \"" + 0.63 + "\",\"Kind\": \"0\",\"OpMan\": \""+"系统"+"\"}";
                                         RedisDbconn.Instance.AddList("SetDepositQueue", info);
                                         StartId = item.Id;

+ 25 - 15
AppStart/Helper/StatService.cs

@@ -33,8 +33,8 @@ namespace MySystem
                         StartEverDay(doDate);
                         // StartEverDayV2(doDate);
                         StatMerchantTrade(doDate);
-                        dosomething4(doDate);
-                        ListenFluxRecord(doDate);
+                        // dosomething4(doDate);
+                        // ListenFluxRecord(doDate);
                     }
                     // string Msg = "success";
                     // jobInfo.Status = Msg == "success" ? 1 : 0;
@@ -1183,20 +1183,30 @@ namespace MySystem
 
 
         // 4. 前一天的流量卡记录和匹配
-        public void ListenFluxRecord(string date)
+        public void ListenFluxRecord()
         {
-            Thread th = new Thread(CheckFluxForTrade);
+            Thread th = new Thread(ListenFluxRecordD0);
             th.IsBackground = true;
-            th.Start(date);
+            th.Start();
+        }
+        public void ListenFluxRecordD0()
+        {
+            while(true)
+            {
+                if(DateTime.Now.Hour > 0)
+                {
+                    CheckFluxForTrade();
+                }
+                Thread.Sleep(600000);
+            }
         }
-        public void doFluxRecord(string date)
+        public void doFluxRecord()
         {
             function.WriteLog(DateTime.Now.ToString(), "执行流量费返佣");
             SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
             WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<SpModels.TradeFluxRecord> trades = spdb.TradeFluxRecord.Where(m => m.CreateDate >= yesterday && m.CreateDate < today && m.Status == 1).ToList();
+            DateTime start = DateTime.Now.AddDays(-1);
+            List<SpModels.TradeFluxRecord> trades = spdb.TradeFluxRecord.Where(m => m.CreateDate >= start && m.Status == 1).ToList();
             foreach (SpModels.TradeFluxRecord trade in trades)
             {
                 try
@@ -1356,15 +1366,13 @@ namespace MySystem
             db.Dispose();
             function.WriteLog(DateTime.Now.ToString() + "\n", "执行流量费返佣");
         }
-        public void CheckFluxForTrade(object sender)
+        public void CheckFluxForTrade()
         {
-            string date = sender.ToString();
             function.WriteLog(DateTime.Now.ToString(), "扫描金控交易记录中的流量费");
             SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            DateTime start = DateTime.Parse(date + " 00:00:00");
-            DateTime end = start.AddDays(1);
+            DateTime start = DateTime.Now.AddDays(-1);
             int StartId = int.Parse(function.CheckInt(function.ReadInstance("/SycnSp/TradeRecordId.txt")));
-            var list = spdb.TradeRecord.Select(m => new { m.Id, m.CreateDate, m.ProductType }).Where(m => m.Id >= StartId && m.CreateDate > start && m.CreateDate < end && m.ProductType == "1").OrderBy(m => m.CreateDate);
+            var list = spdb.TradeRecord.Select(m => new { m.Id, m.CreateDate, m.ProductType, m.Status }).Where(m => m.Id >= StartId && m.Status == 2 && m.CreateDate > start && m.ProductType == "1").OrderBy(m => m.CreateDate);
             foreach (var sub in list.ToList())
             {
                 try
@@ -1393,6 +1401,8 @@ namespace MySystem
                                 spdb.SaveChanges();
                             }
                         }
+                        trade.Status = 3;
+                        spdb.SaveChanges();
                     }
                 }
                 catch (Exception ex)
@@ -1403,7 +1413,7 @@ namespace MySystem
             spdb.Dispose();
             function.WriteLog(DateTime.Now.ToString() + "\n", "扫描金控交易记录中的流量费");
 
-            doFluxRecord(date);
+            doFluxRecord();
         }
 
 

+ 10 - 0
AppStart/PublicFunction.cs

@@ -27,5 +27,15 @@ namespace MySystem
             }
             return decimal.Parse(str);
         }
+
+        public static string GetPublicParam(WebCMSEntities db, string Key)
+        {
+            CustomTagSet set = db.CustomTagSet.FirstOrDefault(m => m.Tags == Key);
+            if(set != null)
+            {
+                return set.Contents;
+            }
+            return "";
+        }
     }
 }

+ 1 - 1
Startup.cs

@@ -213,7 +213,7 @@ namespace MySystem
             // SetDepositService.Instance.Start(); //调整费率(通知、标记)
             // SetDepositPostService.Instance.Start(); //提交支付公司设置费率接口
             // SetDepositPostService.Instance.StartKdb(); //监控开店宝费率设置结果
-            // SetFeeFlagService.Instance.Start(); //178天提前通知创客费率调升消息
+            // SetFeeFlagService.Instance.Start(); //118天提前通知创客费率调升消息
             // ResetSmallStoreHelper.Instance.Start(); //每月重置小分仓额度
             OperateService.Instance.Start(); //运营中心每天统计一次发货量、库存
             OperateAmountService.Instance.Start(); //运营中心额度变更