Эх сурвалжийг харах

添加分仓购买额度队列

lichunlei 2 жил өмнө
parent
commit
dd64f0956a

+ 6 - 1
AppStart/Timer/StoreApplyHelper.cs

@@ -75,7 +75,12 @@ public class StoreApplyHelper
                         if(order != null)
                         {
                             decimal TotalPrice = order.TotalPrice;
-                            UserAccount account = db.UserAccount.FirstOrDefault();
+                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == order.UserId);
+                            if(account != null)
+                            {
+                                account.TempAmount += TotalPrice;
+                                account.ValidAmount += TotalPrice;
+                            }
                         }
                     }
                     db.SaveChanges();

+ 92 - 59
Controllers/HomeController.cs

@@ -1000,65 +1000,98 @@ namespace MySystem.Controllers
         }
         
 
+        //补推荐奖励
+        public string AddDirectPrice(int oid = 0)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            List<int> uids = new List<int>(); //领取过的下单创客
+            IQueryable<Orders> orders = db.Orders.Where(m => m.Status > 1 && m.UserId > 1 && m.TotalPrice % 600 == 0 && m.Sort == 0);
+            if(oid > 0)
+            {
+                orders = orders.Where(m => m.Id == oid);
+            }
+            foreach (Orders order in orders.ToList())
+            {
+                if(!uids.Contains(order.UserId))
+                {
+                    bool checkPrize = db.UserAccountRecord.Any(m => m.QueryCount == oid && m.ChangeType == 112);
+                    if(checkPrize)
+                    {
+                        uids.Add(order.UserId);
+                    }
+                    else
+                    {
+                        OrderProduct pro = db.OrderProduct.FirstOrDefault(m => m.OrderId == oid) ?? new OrderProduct();
+                        if (pro.ProductId == 10 || pro.ProductId == 11)
+                        {
+                            Users user = db.Users.FirstOrDefault(m => m.Id == order.UserId);
+                            if (user != null)
+                            {
+                                bool directPrize = false; //直推奖标记
+                                int ParentUserId = user.ParentUserId;
+                                List<int> proids = new List<int>();
+                                proids.Add(10);
+                                proids.Add(11);
+                                while (ParentUserId > 0)
+                                {
+                                    Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId) ?? new Users();
+                                    int machineCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.PosSnType == 0); //判断是否拥有3台购买机
+                                    int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
+                                    int couponCount = db.PosCoupons.Count(m => m.UserId == ParentUserId && m.IsUse == 0); //判断是否拥有3张券
+                                    if ((machineCount + ActiveCount + couponCount >= 3 || puser.LeaderLevel > 0) && !directPrize)
+                                    {
+                                        function.WriteLog("满足条件", "推荐下单奖励监控日志");
+                                        if (puser.LeaderLevel == 0) // 非盟主直推奖励,每个创客第一次下单,上级可得
+                                        {
+                                            List<int> oids = new List<int>();
+                                            var orderpros = db.OrderProduct.Select(m => new { m.OrderId, m.UserId, m.ProductId }).Where(m => m.UserId == order.UserId && proids.Contains(m.ProductId)).ToList();
+                                            foreach (var orderpro in orderpros)
+                                            {
+                                                oids.Add(orderpro.OrderId);
+                                            }
+                                            bool check = db.Orders.Any(m => oids.Contains(m.Id) && m.Status > 0);
+                                            if (check)
+                                            {
+                                                // AlipayPayBack2Service.Instance.DirectPrize(db, order.Id, ParentUserId, pro.ProductCount);
+                                                function.WriteLog(order.Id + "," + ParentUserId + "," + pro.ProductCount, "没发的推荐奖励");
+                                                directPrize = true;
+                                            }
+                                        }
+                                        else
+                                        {
+                                            // 盟主直推奖励,可以每次下单获得
+                                            // AlipayPayBack2Service.Instance.DirectPrize(db, order.Id, ParentUserId, pro.ProductCount);
+                                            function.WriteLog(order.Id + "," + ParentUserId + "," + pro.ProductCount + "--盟主", "没发的推荐奖励");
+                                            directPrize = true;
+                                        }
 
-
-        //重置交易额,重置分润(直营)
-        // /home/resetProfit?uid=120687&m=2022-06&bid=1
-        // public string resetProfit(int uid, string m, int bid)
-        // {
-        //     string result = "";
-        //     OtherMySqlConn.connstr = "server=47.109.31.237;port=3306;user=KxsMainServer2;password=FrW8ZfxlcaVdm1r0;database=KxsMainServer2;charset=utf8;";
-        //     DateTime start = DateTime.Parse(m + "-01 00:00:00");
-        //     DateTime end = start.AddMonths(1);
-        //     decimal ProfitAmt = 0;
-        //     while(start < end)
-        //     {
-        //         DateTime endDay = start.AddDays(1);
-        //         DataTable dt = OtherMySqlConn.dtable("select sum(HelpDirectTradeAmt) as HelpDirectTradeAmt,sum(NotHelpDirectTradeAmt) as NotHelpDirectTradeAmt from TradeDaySummary where UserId=" + uid + " and TradeDate='" + start.ToString("yyyyMMdd") + "' and SeoTitle='self' and BrandId=" + bid);
-        //         if(dt.Rows.Count > 0)
-        //         {
-        //             decimal HelpDirectTradeAmt = decimal.Parse(function.CheckNum(dt.Rows[0]["HelpDirectTradeAmt"].ToString()));
-        //             decimal NotHelpDirectTradeAmt = decimal.Parse(function.CheckNum(dt.Rows[0]["NotHelpDirectTradeAmt"].ToString()));
-        //             result += "扶持期:" + HelpDirectTradeAmt + ",稳定期:" + NotHelpDirectTradeAmt + ";\n";
-        //             dt = OtherMySqlConn.dtable("select sum(if(MerHelpFlag=1,TradeAmount,0)) as HelpAmt,sum(if(MerHelpFlag=0,TradeAmount,0)) as NotHelpAmt from TradeRecord where CreateDate>='" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and CreateDate<'" + endDay.ToString("yyyy-MM-dd HH:mm:ss") + "' and UserId=" + uid + " and BrandId=" + bid);
-        //             if(dt.Rows.Count > 0)
-        //             {
-        //                 decimal HelpAmt = decimal.Parse(function.CheckNum(dt.Rows[0]["HelpAmt"].ToString()));
-        //                 decimal NotHelpAmt = decimal.Parse(function.CheckNum(dt.Rows[0]["NotHelpAmt"].ToString()));
-        //                 result += "update TradeDaySummary set HelpDirectTradeAmt=" + HelpAmt + ",NotHelpDirectTradeAmt=" + NotHelpAmt + " where UserId=" + uid + " and TradeDate='" + start.ToString("yyyyMMdd") + "' and SeoTitle='self' and BrandId=" + bid + ";\n\n";
-        //                 dt = OtherMySqlConn.dtable("select UserLevel from Users where Id=" + uid + "");
-        //                 if(dt.Rows.Count > 0)
-        //                 {
-        //                     int UserLevel = int.Parse(function.CheckInt(dt.Rows[0]["UserLevel"].ToString()));
-        //                     dt = OtherMySqlConn.dtable("select Rank from UserRankWhite where Id=" + uid + "");
-        //                     if(dt.Rows.Count > 0)
-        //                     {
-        //                         UserLevel = int.Parse(function.CheckInt(dt.Rows[0]["Rank"].ToString()));
-        //                     }
-        //                     int LevelKindId = ProfitHelperV2.Instance.GetLevelKindId(bid, 1, 1);
-        //                     ProfitObjectLevels objlevel = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId + ":" + UserLevel) ?? new ProfitObjectLevels();
-        //                     ProfitAmt += HelpAmt * objlevel.Percents;
-        //                     LevelKindId = ProfitHelperV2.Instance.GetLevelKindId(bid, 0, 1);
-        //                     objlevel = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId + ":" + UserLevel) ?? new ProfitObjectLevels();
-        //                     ProfitAmt += NotHelpAmt * objlevel.Percents;
-        //                 }
-        //             }
-        //         }
-        //         start = start.AddDays(1);
-        //     }
-        //     DataTable dt2 = OtherMySqlConn.dtable("select Id,ProfitAmount from ProfitRecord where UserId=" + uid + " and SeoTitle='" + m.Replace("-", "") + "' and DirectFlag=1 and BrandId=" + bid);
-        //     if(dt2.Rows.Count > 0)
-        //     {
-        //         int Id = int.Parse(function.CheckInt(dt2.Rows[0]["Id"].ToString()));
-        //         decimal ProfitAmount = decimal.Parse(function.CheckNum(dt2.Rows[0]["ProfitAmount"].ToString()));
-        //         result += "当前分润:" + ProfitAmount + ";\n";
-        //         if(ProfitAmount != ProfitAmt)
-        //         {
-        //             result += "update ProfitRecord set ProfitAmount=" + ProfitAmt + " where UserId=" + uid + " and SeoTitle='" + m.Replace("-", "") + "' and DirectFlag=1 and BrandId=" + bid + ";\n";
-        //         }
-        //     }
-        //     OtherMySqlConn.connstr = "";
-        //     return result;
-        // }
+                                        //推荐下单上级获得30天的机具循环天数
+                                        var posList = db.PosMachinesTwo.Select(m => new { m.Id, m.UserId, m.BindingState, m.RecycEndDate }).Where(m => m.UserId == ParentUserId && m.BindingState == 0 && m.RecycEndDate != null).ToList();
+                                        foreach (var subPos in posList)
+                                        {
+                                            PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == subPos.Id);
+                                            if (pos != null)
+                                            {
+                                                pos.RecycEndDate = pos.RecycEndDate.Value.AddDays(30);
+                                            }
+                                        }
+                                        db.SaveChanges();
+                                    }
+                                    if(directPrize)
+                                    {
+                                        ParentUserId = 0;
+                                    }
+                                    else
+                                    {
+                                        ParentUserId = puser.ParentUserId;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            return "ok";
+        }
     }
 }

+ 21 - 21
Startup.cs

@@ -91,8 +91,8 @@ namespace MySystem
             // services.AddHostedService<SycnSpTimer>(); //同步SP数据
 
             // services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
-            services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
-            services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
+            // services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
+            // services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
 
             //services.AddHttpContextAccessor();
 
@@ -190,24 +190,24 @@ namespace MySystem
             // TradeStatTimer2.Instance.Start(); //交易统计
 
             //必须打开的
-            ActiveRewardTimer.Instance.Start(); //实时处理激活记录
-            TradeStatTimer.Instance.Start(); //交易统计
-            ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-            MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
-            SycnSpBindService.Instance.Start(); //同步SP绑定数据
-            SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-            SycnSpActiveService.Instance.Start(); //同步SP激活数据
-            SycnSpTradeService.Instance.Start(); //同步SP交易数据
-            SycnSpChangeBindService.Instance.Start(); //同步SP换绑数据
-            SycnSpUnBindService.Instance.Start(); //同步SP解绑数据
-            RedPackageHelper.Instance.Start(); //每天生成300个红包
-            RedPackageHelper.Instance.StartStatTop10(); //红包活动统计排行
-            RedPackageHelper.Instance.StartSendPrize(); //红包活动发奖
-            BalancePayBackService.Instance.Start(); //余额支付队列
-            ReservePayBackService.Instance.Start(); //储备金支付队列
-            LeaderPrizeService.Instance.Start(); //大盟主奖励发奖
-            MessageCenterService.Instance.Start(); // 消息队列
-            RecommendActStatService.Instance.Start(); //推荐王奖励数据统计
+            // ActiveRewardTimer.Instance.Start(); //实时处理激活记录
+            // TradeStatTimer.Instance.Start(); //交易统计
+            // ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
+            // MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
+            // SycnSpBindService.Instance.Start(); //同步SP绑定数据
+            // SycnSpMerchantService.Instance.Start(); //同步SP商户数据
+            // SycnSpActiveService.Instance.Start(); //同步SP激活数据
+            // SycnSpTradeService.Instance.Start(); //同步SP交易数据
+            // SycnSpChangeBindService.Instance.Start(); //同步SP换绑数据
+            // SycnSpUnBindService.Instance.Start(); //同步SP解绑数据
+            // RedPackageHelper.Instance.Start(); //每天生成300个红包
+            // RedPackageHelper.Instance.StartStatTop10(); //红包活动统计排行
+            // RedPackageHelper.Instance.StartSendPrize(); //红包活动发奖
+            // BalancePayBackService.Instance.Start(); //余额支付队列
+            // ReservePayBackService.Instance.Start(); //储备金支付队列
+            // LeaderPrizeService.Instance.Start(); //大盟主奖励发奖
+            // MessageCenterService.Instance.Start(); // 消息队列
+            // RecommendActStatService.Instance.Start(); //推荐王奖励数据统计
             //必须打开的
 
 
@@ -218,7 +218,7 @@ namespace MySystem
             // StatService.Instance.StartEverDay("");
             // StatService.Instance.StartEverDayV2();
             // RedPackageHelper.Instance.Start();
-            StatService.Instance.StatUserLevel();
+            // StatService.Instance.StatUserLevel();
             // ProfitHelperV2.Instance.StatProfit(); //统计分润
             // StatService.Instance.ListenFluxRecord();
             // StatService.Instance.StartEverDay2();

+ 2 - 2
appsettings.json

@@ -17,8 +17,8 @@
     "Host": "http://localhost:5047/",
     "SourceHost": "http://bs.kexiaoshuang.com/",
     "Database": "KxsMainServer",
-    "SqlConnStr": "server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
+    "SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMain;password=mzeqjriUWore0dwT;database=KxsMainServer;charset=utf8;",
+    "Pxc1SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMain;password=mzeqjriUWore0dwT;database=KxsMainServer;charset=utf8;",
     "SpSqlConnStr": "server=47.109.31.237;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
     "RedisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=1,poolsize=500,preheat=50,asyncPipeline=true",
     "TendisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=1,poolsize=500,preheat=50,asyncPipeline=true",