Quellcode durchsuchen

增加立刷相关逻辑

lichunlei vor 3 Jahren
Ursprung
Commit
d163e7e8ef

+ 10 - 1
AppStart/Helper/Profit/ProfitHelper.cs

@@ -1772,7 +1772,7 @@ namespace MySystem
             }
             function.WritePage("/ProfitStat/", Month + ".txt", DateTime.Now.ToString());
             WebCMSEntities db = new WebCMSEntities();
-            for (int i = 1; i <= 3; i++) //品牌
+            for (int i = 1; i <= 5; i++) //品牌
             {
                 for (int j = 0; j <= 1; j++) //卡类型
                 {
@@ -2168,12 +2168,21 @@ namespace MySystem
                                     string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
                                     Array.Reverse(ParentNavList); //反转顺序
                                     int level = 0;
+                                    DateTime now = DateTime.Now;
                                     foreach (string UserIdString in ParentNavList)
                                     {
                                         level += 1;
                                         int uid = int.Parse(UserIdString);
                                         Users user = dbnew.Users.FirstOrDefault(m => m.Id == uid) ?? new Users();
                                         int UserLevel = user.UserLevel; //当前会员等级
+                                        UserRankWhite rank = dbnew.UserRankWhite.FirstOrDefault(m => m.Id == user.Id && m.UpdateDate > now);
+                                        if (rank != null)
+                                        {
+                                            if (rank.Rank > UserLevel)
+                                            {
+                                                UserLevel = rank.Rank;
+                                            }
+                                        }
                                         if (UserLevel == maxLevel && UserLevel == curLevel) //判断当前创客是否有直推的激活机具,并且在活动时间内
                                         {
                                             break;

+ 51 - 39
AppStart/Helper/StatService.cs

@@ -328,7 +328,7 @@ namespace MySystem
             db.Dispose();
         }
 
-        public void doActiveReward(WebCMSEntities db, PosMerchantInfo merchant, PosMachinesTwo pos, int GetUserId, string ParentNav, int TopUserId, decimal ActPrize)
+        public void doActiveReward(WebCMSEntities db, PosMerchantInfo merchant, PosMachinesTwo pos, int GetUserId, string ParentNav, int TopUserId, decimal ActPrize, int ChangeType = 0)
         {
             bool check = db.ActiveReward.Any(m => m.KqMerNo == merchant.KqMerNo && m.RewardAmount == ActPrize);
             if (!check)
@@ -394,7 +394,7 @@ namespace MySystem
                     CreateDate = DateTime.Now,
                     UpdateDate = DateTime.Now,
                     UserId = GetUserId, //创客
-                    ChangeType = 0, //变动类型
+                    ChangeType = ChangeType, //变动类型
                     ProductType = pos.BrandId, //产品类型
                     ChangeAmount = ActPrize, //变更金额
                     BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
@@ -1225,6 +1225,7 @@ namespace MySystem
                 {
                     startId = startDt.Rows[0][0].ToString();
                 }
+                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
                 // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
                 // if (endDt.Rows.Count > 0)
                 // {
@@ -1332,7 +1333,7 @@ namespace MySystem
             }
             catch (Exception ex)
             {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额");
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
             }
             db.Dispose();
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
@@ -1469,49 +1470,60 @@ namespace MySystem
         }
         public void StatUserLevelDo()
         {
-            DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00");
-            DateTime end = start.AddDays(1);
-            string TradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
             WebCMSEntities db = new WebCMSEntities();
-            List<UserLevelSet> sets = db.UserLevelSet.ToList();
-            var users = db.Users.Select(m => new { m.Id, m.AuthFlag }).Where(m => m.AuthFlag == 1).ToList();
-            foreach (var subuser in users)
+            try
             {
-                Users user = db.Users.FirstOrDefault(m => m.Id == subuser.Id);
-                if (user != null)
+                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
+                DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00");
+                DateTime end = start.AddDays(1);
+                string TradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
+                List<UserLevelSet> sets = db.UserLevelSet.ToList();
+                var users = db.Users.Select(m => new { m.Id, m.AuthFlag }).Where(m => m.AuthFlag == 1).ToList();
+                function.WriteLog(users.Count.ToString(), "创客升级日志");
+                foreach (var subuser in users)
                 {
-                    int BeforeLevel = user.UserLevel;
-                    int AfterLevel = 0;
-                    decimal TradeAmount = 0;
-                    bool check = db.UserTradeDaySummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
-                    if (check)
-                    {
-                        TradeAmount = db.UserTradeDaySummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team").Sum(m => m.NonDirectTradeAmt);
-                    }
-                    UserLevelSet set = sets.FirstOrDefault(m => m.UpLevelGrowth <= TradeAmount && m.UpLevelIntegral > TradeAmount);
-                    if (set != null)
-                    {
-                        AfterLevel = set.Id;
-                    }
-                    if (AfterLevel > BeforeLevel)
+                    Users user = db.Users.FirstOrDefault(m => m.Id == subuser.Id);
+                    if (user != null)
                     {
-                        user.UserLevel = AfterLevel;
-                        db.UserRank.Add(new UserRank()
+                        int BeforeLevel = user.UserLevel;
+                        int AfterLevel = 0;
+                        decimal TradeAmount = 0;
+                        bool check = db.UserTradeDaySummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
+                        if (check)
                         {
-                            CreateDate = DateTime.Now,
-                            UpdateDate = DateTime.Now,
-                            UserId = user.Id, //创客
-                            Rank = AfterLevel, //当前等级
-                            StatYear = DateTime.Now.Year, //统计年份
-                            StatMonth = DateTime.Now.Month, //统计月份
-                            TradeAmt = TradeAmount, //团队交易总额
-                            UpgradeFlag = 1, //升级标识
-                            OperateDate = DateTime.Now, //操作时间
-                        });
-                        db.SaveChanges();
-                        RedisDbconn.Instance.AddList("UserLevelData:" + user.Id, BeforeLevel + "#" + AfterLevel);
+                            TradeAmount = db.UserTradeDaySummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team").Sum(m => m.NonDirectTradeAmt);
+                        }
+                        UserLevelSet set = sets.FirstOrDefault(m => m.UpLevelGrowth <= TradeAmount && m.UpLevelIntegral > TradeAmount);
+                        if (set != null)
+                        {
+                            AfterLevel = set.Id;
+                        }
+                        if (AfterLevel > BeforeLevel)
+                        {
+                            user.UserLevel = AfterLevel;
+                            db.UserRank.Add(new UserRank()
+                            {
+                                CreateDate = DateTime.Now,
+                                UpdateDate = DateTime.Now,
+                                UserId = user.Id, //创客
+                                WhiteRank = BeforeLevel,
+                                Rank = AfterLevel, //当前等级
+                                StatYear = DateTime.Now.Year, //统计年份
+                                StatMonth = DateTime.Now.Month, //统计月份
+                                TradeAmt = TradeAmount, //团队交易总额
+                                UpgradeFlag = 1, //升级标识
+                                OperateDate = DateTime.Now, //操作时间
+                            });
+                            db.SaveChanges();
+                            RedisDbconn.Instance.Set("UserLevelData:" + user.Id, BeforeLevel + "#" + AfterLevel);
+                        }
                     }
                 }
+                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
+            }
+            catch (Exception ex)
+            { 
+                function.WriteLog(ex.ToString(), "创客升级异常");
             }
             db.Dispose();
         }

+ 2 - 2
AppStart/Helper/SycnSpServer/SycnSpTradeService.cs

@@ -167,7 +167,7 @@ namespace MySystem
                                             CheckMoney = 5000;
                                             CheckDays = 30;
                                         }
-                                        if (BankCardType == 1)
+                                        if (BankCardType == 1 || (BankCardType == 2 && pos.BrandId == 1) || (BankCardType == 2 && pos.BrandId == 3))
                                         {
                                             pos.CreditTrade += TradeAmount;
                                         }
@@ -220,7 +220,7 @@ namespace MySystem
                                                     BuyTopUserId = int.Parse(ParentNavList[0]);
                                                 }
                                             }
-                                            StatService.Instance.doActiveReward(db, merchant, pos, getUser.Id, getUser.ParentNav, BuyTopUserId, 40);
+                                            StatService.Instance.doActiveReward(db, merchant, pos, getUser.Id, getUser.ParentNav, BuyTopUserId, 40, 12);
                                         }
                                         db.SaveChanges();
                                     }

+ 13 - 13
Startup.cs

@@ -90,9 +90,9 @@ namespace MySystem
             // services.AddHostedService<PopService>();
             // services.AddHostedService<SycnSpTimer>(); //同步SP数据
             
-            services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
-            services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
-            services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
+            // services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
+            // services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
+            // services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
 
             //services.AddHttpContextAccessor();
 
@@ -220,20 +220,20 @@ 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交易数据
+            // 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交易数据
             //必须打开的
 
-
+            // StatService.Instance.StatUserLevel();
+            ProfitHelper.Instance.StatProfit("202204"); //统计分润
             // StatService.Instance.ListenFluxRecord();
             // StatService.Instance.StartEverDay2();
-            // ProfitHelper.Instance.StatProfit("202203"); //统计分润
             // TestHelper.Instance.Start();
             // StatService.Instance.StartEverDay();
             // RabbitMQClient.Instance.StartReceive("MerchantConfirmList");

BIN
bin/release/netcoreapp3.0/MySystem.dll


BIN
bin/release/netcoreapp3.0/MySystem.pdb


BIN
obj/release/netcoreapp3.0/MySystem.dll


BIN
obj/release/netcoreapp3.0/MySystem.pdb