Browse Source

修复开机奖励

lcl 11 months ago
parent
commit
e133da8400
1 changed files with 78 additions and 82 deletions
  1. 78 82
      AppStart/Helper/StatService.cs

+ 78 - 82
AppStart/Helper/StatService.cs

@@ -1259,112 +1259,108 @@ namespace MySystem
                                 function.WriteLog("押金:" + pos.SeoKeyword, "开机奖励发放日志");
                                 if (ActPrize > 0 || pos.BrandId == 14)
                                 {
-                                    PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                    if (merchant != null)
+                                    PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PosMerchantInfo();
+                                    function.WriteLog("商户:" + merchant.KqMerNo, "开机奖励发放日志");
+                                    Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
+                                    if (user != null)
                                     {
-                                        function.WriteLog("商户:" + merchant.KqMerNo, "开机奖励发放日志");
-                                        Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                                        if (user != null)
+                                        function.WriteLog("所属人:" + user.MakerCode, "开机奖励发放日志");
+                                        string ParentNav = function.CheckNull(user.ParentNav) + "," + user.Id + ",";
+                                        if (!string.IsNullOrEmpty(ParentNav))
                                         {
-                                            function.WriteLog("所属人:" + user.MakerCode, "开机奖励发放日志");
-                                            string ParentNav = function.CheckNull(user.ParentNav) + "," + user.Id + ",";
-                                            if (!string.IsNullOrEmpty(ParentNav))
+                                            decimal Prize = 0;
+                                            if(pos.BrandId == 14)
                                             {
-                                                decimal Prize = 0;
-                                                if(pos.BrandId == 14)
-                                                {
-                                                    Prize = 19 * 0.3M;
-                                                }
-                                                if(Utils.Instance.IsHaoDa(pos.BrandId))
-                                                {
-                                                    Prize = 20;
-                                                }
-                                                if(Utils.Instance.IsWifi(pos.BrandId))
+                                                Prize = 19 * 0.3M;
+                                            }
+                                            if(Utils.Instance.IsHaoDa(pos.BrandId))
+                                            {
+                                                Prize = 20;
+                                            }
+                                            if(Utils.Instance.IsWifi(pos.BrandId))
+                                            {
+                                                PxcModels.WifiTradeRecord trade = db.WifiTradeRecord.FirstOrDefault(m => m.SnNo == pos.PosSn);
+                                                if (trade != null)
                                                 {
-                                                    PxcModels.WifiTradeRecord trade = db.WifiTradeRecord.FirstOrDefault(m => m.SnNo == pos.PosSn);
-                                                    if (trade != null)
-                                                    {
-                                                        Prize = trade.TradeAmount * 0.03M;
-                                                    }                                                    
-                                                }
-                                                List<int> CheckUserIds = RedisDbconn.Instance.GetList<int>("OpenPrizeUserIds", 1, 1000);
-                                                if(CheckUserIds.Count > 0)
+                                                    Prize = trade.TradeAmount * 0.03M;
+                                                }                                                    
+                                            }
+                                            List<int> CheckUserIds = RedisDbconn.Instance.GetList<int>("OpenPrizeUserIds", 1, 1000);
+                                            if(CheckUserIds.Count > 0)
+                                            {
+                                                PosMachines posItem = db.PosMachines.FirstOrDefault(m => m.Id == pos.Id) ?? new PosMachines();
+                                                if(posItem.UserId > 0)
                                                 {
-                                                    PosMachines posItem = db.PosMachines.FirstOrDefault(m => m.Id == pos.Id) ?? new PosMachines();
-                                                    if(posItem.UserId > 0)
+                                                    UserRankItem puser = PosCouponPrizeService.Instance.GetUserLevel(posItem.UserId);
+                                                    if (puser.Id > 0 && (puser.LeaderLevel > 0 || puser.OperateLevel > 0) && Prize > 0)
                                                     {
-                                                        UserRankItem puser = PosCouponPrizeService.Instance.GetUserLevel(posItem.UserId);
-                                                        if (puser.Id > 0 && (puser.LeaderLevel > 0 || puser.OperateLevel > 0) && Prize > 0)
+                                                        bool op = false;
+                                                        foreach(int CheckUserId in CheckUserIds)
                                                         {
-                                                            bool op = false;
-                                                            foreach(int CheckUserId in CheckUserIds)
-                                                            {
-                                                                if(puser.ParentNav.Contains("," + CheckUserId + ","))
-                                                                {
-                                                                    op = true;
-                                                                    break;
-                                                                }
-                                                            }
-                                                            if(op)
+                                                            if(puser.ParentNav.Contains("," + CheckUserId + ","))
                                                             {
-                                                                PostOpenReward(db, pos, merchant, puser, Prize);
-                                                                Prize = 0;
+                                                                op = true;
+                                                                break;
                                                             }
                                                         }
+                                                        if(op)
+                                                        {
+                                                            PostOpenReward(db, pos, merchant, puser, Prize);
+                                                            Prize = 0;
+                                                        }
                                                     }
                                                 }
-                                                if(Prize > 0)
+                                            }
+                                            if(Prize > 0)
+                                            {
+                                                string[] ParentNavs = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                                                for (int i = ParentNavs.Length - 1; i >= 0; i--)
                                                 {
-                                                    string[] ParentNavs = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                                    for (int i = ParentNavs.Length - 1; i >= 0; i--)
+                                                    int UserId = int.Parse(ParentNavs[i]);
+                                                    // Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1 && m.Status > -1);
+                                                    UserRankItem puser = PosCouponPrizeService.Instance.GetUserLevel(UserId);
+                                                    if (puser.Id > 0 && Prize > 0)
                                                     {
-                                                        int UserId = int.Parse(ParentNavs[i]);
-                                                        // Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1 && m.Status > -1);
-                                                        UserRankItem puser = PosCouponPrizeService.Instance.GetUserLevel(UserId);
-                                                        if (puser.Id > 0 && Prize > 0)
+                                                        function.WriteLog("上级:" + puser.MakerCode, "开机奖励发放日志");
+                                                        function.WriteLog("条件:LeaderLevel:" + puser.LeaderLevel + ",UserType:" + puser.UserType, "开机奖励发放日志");
+                                                        if(puser.UserType > 0 || puser.LeaderLevel > 0)
                                                         {
-                                                            function.WriteLog("上级:" + puser.MakerCode, "开机奖励发放日志");
-                                                            function.WriteLog("条件:LeaderLevel:" + puser.LeaderLevel + ",UserType:" + puser.UserType, "开机奖励发放日志");
-                                                            if(puser.UserType > 0 || puser.LeaderLevel > 0)
+                                                            bool leaderOp = true;
+                                                            if(puser.LeaderLevel > 0 && puser.UserType == 0)
                                                             {
-                                                                bool leaderOp = true;
-                                                                if(puser.LeaderLevel > 0 && puser.UserType == 0)
-                                                                {
-                                                                    DateTime now = DateTime.Now;
-                                                                    leaderOp = db.Leaders.Any(m => m.Id == puser.Id && m.ExpiredDate >= now);
-                                                                    function.WriteLog("条件:leaderOp:" + leaderOp, "开机奖励发放日志");
-                                                                }
-                                                                else if(puser.LeaderLevel == 0 && puser.UserType > 0)
-                                                                {
-                                                                    DateTime now = DateTime.Now;
-                                                                    leaderOp = opdb.SysAdmin.Any(m => m.UserId == puser.Id && m.ExpireDate >= now);
-                                                                    function.WriteLog("条件:2-leaderOp:" + leaderOp, "盟主开机奖励发放日志");
-                                                                }
-                                                                else if(puser.LeaderLevel > 0 && puser.UserType > 0)
-                                                                {
-                                                                    DateTime now = DateTime.Now;
-                                                                    leaderOp = db.Leaders.Any(m => m.Id == puser.Id && m.ExpiredDate >= now);
-                                                                    if(!leaderOp) leaderOp = opdb.SysAdmin.Any(m => m.UserId == puser.Id && m.ExpireDate >= now);
-                                                                }
-                                                                if(leaderOp)
+                                                                DateTime now = DateTime.Now;
+                                                                leaderOp = db.Leaders.Any(m => m.Id == puser.Id && m.ExpiredDate >= now);
+                                                                function.WriteLog("条件:leaderOp:" + leaderOp, "开机奖励发放日志");
+                                                            }
+                                                            else if(puser.LeaderLevel == 0 && puser.UserType > 0)
+                                                            {
+                                                                DateTime now = DateTime.Now;
+                                                                leaderOp = opdb.SysAdmin.Any(m => m.UserId == puser.Id && m.ExpireDate >= now);
+                                                                function.WriteLog("条件:2-leaderOp:" + leaderOp, "盟主开机奖励发放日志");
+                                                            }
+                                                            else if(puser.LeaderLevel > 0 && puser.UserType > 0)
+                                                            {
+                                                                DateTime now = DateTime.Now;
+                                                                leaderOp = db.Leaders.Any(m => m.Id == puser.Id && m.ExpiredDate >= now);
+                                                                if(!leaderOp) leaderOp = opdb.SysAdmin.Any(m => m.UserId == puser.Id && m.ExpireDate >= now);
+                                                            }
+                                                            if(leaderOp)
+                                                            {
+                                                                function.WriteLog("满足条件", "开机奖励发放日志");
+                                                                int pTopUserId = 0;
+                                                                if (!string.IsNullOrEmpty(puser.ParentNav))
                                                                 {
-                                                                    function.WriteLog("满足条件", "开机奖励发放日志");
-                                                                    int pTopUserId = 0;
-                                                                    if (!string.IsNullOrEmpty(puser.ParentNav))
-                                                                    {
-                                                                        pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                                                    }
-                                                                    PostOpenReward(db, pos, merchant, puser, Prize);
-                                                                    
-                                                                    Prize = 0;
+                                                                    pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
                                                                 }
+                                                                PostOpenReward(db, pos, merchant, puser, Prize);
+                                                                
+                                                                Prize = 0;
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
-                                        // }
                                     }
                                 }
                             }