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

运营中心所有奖励和返现都加上过期时间

lcl 1 жил өмнө
parent
commit
87029b8ef0

+ 2 - 2
AppStart/AddPosCouponPrizeHelper.cs

@@ -62,7 +62,7 @@ public class AddPosCouponPrizeHelper
         {
             OrderProduct pro = db.OrderProduct.FirstOrDefault(m => m.OrderId == order.Id) ?? new OrderProduct();
             // Users user = db.Users.FirstOrDefault(m => m.Id == order.UserId) ?? new Users();
-            UserRankItem user = PosCouponPrizeService.Instance.GetUserLevel(db, order.UserId);
+            UserRankItem user = PosCouponPrizeService.Instance.GetUserLevel(order.UserId);
             List<int> prizeChk = new List<int>();
             if(!db.UserAccountRecord.Any(m => m.ChangeType == 112 && m.QueryCount == order.Id))
             {
@@ -117,7 +117,7 @@ public class AddPosCouponPrizeHelper
             while (ParentUserId > 0)
             {
                 // Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId) ?? new Users();
-                UserRankItem puser = PosCouponPrizeService.Instance.GetUserLevel(db, ParentUserId);
+                UserRankItem puser = PosCouponPrizeService.Instance.GetUserLevel(ParentUserId);
                 if(DirectPrizeFlag)
                 {
                     if(prizeChk.Contains(1))

+ 6 - 4
AppStart/Helper/AlipayPayBack2Service.cs

@@ -336,7 +336,7 @@ namespace MySystem
             {
                 level += 1;
                 Users user = db.Users.FirstOrDefault(m => m.Id == LeaderUserId);
-                // UserRankItem user = PosCouponPrizeService.Instance.GetUserLevel(db, LeaderUserId);
+                // UserRankItem user = PosCouponPrizeService.Instance.GetUserLevel(LeaderUserId);
                 if(user.Id > 0)
                 {
                     decimal TotalPrice = 10000;
@@ -367,7 +367,8 @@ namespace MySystem
                         {
                             OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
                             OpModels.UserAccount account = opdb.UserAccount.FirstOrDefault(m => m.Id == LeaderUserId) ?? new OpModels.UserAccount();
-                            if(account.TotalAmt > 0)
+                            OpModels.SysAdmin sys = opdb.SysAdmin.FirstOrDefault(m => m.Id == LeaderUserId) ?? new OpModels.SysAdmin();
+                            if(account.TotalAmt > 0 && sys.ExpireDate > DateTime.Now)
                             {
                                 if(account.TotalAmt < TotalPrice)
                                 {
@@ -667,7 +668,8 @@ namespace MySystem
                 Users user = maindb.Users.FirstOrDefault(m => m.Id == UserId);
                 if(user != null)
                 {
-                    bool sys = db.SysAdmin.Any(m => m.UserId == UserId);
+                    DateTime now = DateTime.Now;
+                    bool sys = db.SysAdmin.Any(m => m.UserId == UserId && m.ExpireDate > now);
                     if(sys)
                     {
                         OpModels.UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == UserId) ?? new OpModels.UserAccount();
@@ -849,7 +851,7 @@ namespace MySystem
             {
                 level += 1;
                 // Users user = db.Users.FirstOrDefault(m => m.Id == UserId);
-                UserRankItem user = PosCouponPrizeService.Instance.GetUserLevel(db, UserId);
+                UserRankItem user = PosCouponPrizeService.Instance.GetUserLevel(UserId);
                 if(user != null)
                 {
                     if((user.UserType == 1 || user.LeaderLevel > 0) && level > 1)

+ 2 - 2
AppStart/Helper/LeaderApplyCouponsHelper.cs

@@ -103,7 +103,7 @@ namespace MySystem
             if(query != null)
             {
                 JsonData ApplyList = JsonMapper.ToObject(query.SeoTitle);
-                UserRankItem orderUser = PosCouponPrizeService.Instance.GetUserLevel(db, query.UserId);
+                UserRankItem orderUser = PosCouponPrizeService.Instance.GetUserLevel(query.UserId);
                 string ParentNav = orderUser.ParentNav + "," + orderUser.Id + ",";
                 string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
                 Array.Reverse(ParentNavList);
@@ -112,7 +112,7 @@ namespace MySystem
                 decimal BuyPrize = 0; //购机奖励
                 foreach(string ParentId in ParentNavList)
                 {
-                    UserRankItem parentUser = PosCouponPrizeService.Instance.GetUserLevel(db, int.Parse(ParentId));
+                    UserRankItem parentUser = PosCouponPrizeService.Instance.GetUserLevel(int.Parse(ParentId));
                     index += 1;
 
                     //给券打大盟主标记

+ 4 - 1
AppStart/Helper/OperatePrizeService.cs

@@ -33,6 +33,7 @@ namespace MySystem
                     {
                         int PosId = int.Parse(function.CheckInt(data));
                         WebCMSEntities db = new WebCMSEntities();
+                        OpModels.WebCMSEntities spdb = new OpModels.WebCMSEntities();
                         PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == PosId);
                         if (pos != null)
                         {
@@ -43,7 +44,8 @@ namespace MySystem
                                 Users user = db.Users.FirstOrDefault(m => m.Id == UserId);
                                 if(user != null)
                                 {
-                                    if(user.UserType >= 1)
+                                    OpModels.SysAdmin sys = spdb.SysAdmin.FirstOrDefault(m => m.UserId == user.Id) ?? new OpModels.SysAdmin();
+                                    if(user.UserType >= 1 && sys.ExpireDate > DateTime.Now)
                                     {
                                         OpId = user.Id;
                                         UserId = 0;
@@ -102,6 +104,7 @@ namespace MySystem
                             }
                         }
                         db.Dispose();
+                        spdb.Dispose();
                     }
                     catch (Exception ex)
                     {

+ 2 - 2
AppStart/Helper/PosCouponPrize/OperateAddService.cs

@@ -59,7 +59,7 @@ namespace MySystem
                 {
                     return;
                 }
-                UserRankItem orderUser = PosCouponPrizeService.Instance.GetUserLevel(db, edit.UserId);
+                UserRankItem orderUser = PosCouponPrizeService.Instance.GetUserLevel(edit.UserId);
                 if(orderUser.UserType != 1)
                 {
                     return;
@@ -72,7 +72,7 @@ namespace MySystem
                 // bool DirectPrizeFlag = false; //奖励发放标识
                 foreach(string ParentId in ParentNavList)
                 {
-                    UserRankItem parentUser = PosCouponPrizeService.Instance.GetUserLevel(db, int.Parse(ParentId));
+                    UserRankItem parentUser = PosCouponPrizeService.Instance.GetUserLevel(int.Parse(ParentId));
                     index += 1;
 
                     if(parentUser.OperateLevel > 1 && PosCouponPrizeService.Instance.CheckOpReserve(opdb, ReturnAmount, parentUser.Id) && !PrizeFlag)

+ 13 - 5
AppStart/Helper/PosCouponPrize/PosCouponPrizeService.cs

@@ -83,7 +83,7 @@ namespace MySystem
                     }
 
 
-                    UserRankItem orderUser = GetUserLevel(db, order.UserId);
+                    UserRankItem orderUser = GetUserLevel(order.UserId);
                     if(orderUser.UserLevel == 0) 
                     {
                         PreUserLevel(db, order.UserId, 1, DateTime.Parse("2025-01-01 00:00:00"));
@@ -98,7 +98,7 @@ namespace MySystem
                     decimal BuyPrize = 0; //购机奖励
                     foreach(string ParentId in ParentNavList)
                     {
-                        UserRankItem parentUser = GetUserLevel(db, int.Parse(ParentId));
+                        UserRankItem parentUser = GetUserLevel(int.Parse(ParentId));
                         index += 1;
                         if(index == 1 && (orderUser.LeaderLevel > 0 || orderUser.OperateLevel > 0) && !DirectPrizeFlag)
                         {
@@ -218,8 +218,10 @@ namespace MySystem
         /// <param name="db"></param>
         /// <param name="UserId"></param>
         /// <returns></returns>
-        public UserRankItem GetUserLevel(WebCMSEntities db, int UserId)
+        public UserRankItem GetUserLevel(int UserId)
         {
+            WebCMSEntities db = new WebCMSEntities();
+            OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
             UserRankItem dic = new UserRankItem();
             DateTime now = DateTime.Now;
             Users user = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1 && m.Status > -1) ?? new Users();
@@ -231,14 +233,20 @@ namespace MySystem
                 dic.LeaderLevel = leader.LeaderLevel;
             }
             dic.AgoLeaderLevel = leader.LeaderLevel;
-            dic.OperateLevel = user.UserType;
-            dic.UserType = user.UserType;
+            OpModels.SysAdmin sys = opdb.SysAdmin.FirstOrDefault(m => m.UserId == UserId) ?? new OpModels.SysAdmin();
+            if(sys.ExpireDate > now)
+            {
+                dic.OperateLevel = user.UserType;
+                dic.UserType = user.UserType;
+            }
             dic.MerchantType = user.MerchantType;
             dic.Id = user.Id;
             dic.MakerCode = user.MakerCode;
             dic.RealName = user.RealName;
             dic.ParentUserId = user.ParentUserId;
             dic.ParentNav = user.ParentNav;
+            db.Dispose();
+            opdb.Dispose();
             return dic;
         }
 

+ 19 - 3
AppStart/Helper/StatService.cs

@@ -1149,6 +1149,7 @@ namespace MySystem
                         int PosId = int.Parse(content);
                         Thread.Sleep(1000);
                         WebCMSEntities db = new WebCMSEntities();
+                        OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
                         PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == PosId && m.ActivationState == 1 && ((!string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0" && m.CreditTrade >= 1000) || m.BrandId == 14));
                         if (pos != null)
                         {
@@ -1181,7 +1182,7 @@ namespace MySystem
                                                 {
                                                     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(db, UserId);
+                                                    UserRankItem puser = PosCouponPrizeService.Instance.GetUserLevel(UserId);
                                                     if (puser.Id > 0 && Prize > 0)
                                                     {
                                                         function.WriteLog("上级:" + puser.MakerCode, "开机奖励发放日志");
@@ -1195,6 +1196,12 @@ namespace MySystem
                                                                 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, "盟主开机奖励发放日志");
+                                                            }
                                                             if(leaderOp)
                                                             {
                                                                 function.WriteLog("满足条件", "开机奖励发放日志");
@@ -1218,6 +1225,7 @@ namespace MySystem
                             }
                         }
                         db.Dispose();
+                        opdb.Dispose();
                     }
                     catch(Exception ex)
                     {
@@ -1250,6 +1258,7 @@ namespace MySystem
                         int PosId = int.Parse(content);
                         Thread.Sleep(1000);
                         WebCMSEntities db = new WebCMSEntities();
+                        OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
                         PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == PosId && m.ActivationState == 1 && !string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0" && m.CreditTrade >= 10000);
                         if (pos != null)
                         {
@@ -1278,7 +1287,7 @@ namespace MySystem
                                                 {
                                                     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(db, UserId);
+                                                    UserRankItem puser = PosCouponPrizeService.Instance.GetUserLevel(UserId);
                                                     if (puser.Id > 0 && Prize > 0)
                                                     {
                                                         function.WriteLog("上级:" + puser.MakerCode, "盟主开机奖励发放日志");
@@ -1290,7 +1299,13 @@ namespace MySystem
                                                             {
                                                                 DateTime now = DateTime.Now;
                                                                 leaderOp = db.Leaders.Any(m => m.Id == puser.Id && m.ExpiredDate >= now);
-                                                                function.WriteLog("条件:leaderOp:" + leaderOp, "盟主开机奖励发放日志");
+                                                                function.WriteLog("条件:1-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, "盟主开机奖励发放日志");
                                                             }
                                                             if(leaderOp)
                                                             {
@@ -1315,6 +1330,7 @@ namespace MySystem
                             }
                         }
                         db.Dispose();
+                        opdb.Dispose();
                     }
                     catch(Exception ex)
                     {

+ 1 - 0
OpModels/SysAdmin.cs

@@ -33,5 +33,6 @@ namespace MySystem.OpModels
         public string AdminName { get; set; }
         public ulong ReturnFlag { get; set; }
         public decimal ReturnAmount { get; set; }
+        public DateTime? ExpireDate { get; set; }
     }
 }

+ 4 - 0
OpModels/WebCMSEntities.cs

@@ -2609,6 +2609,10 @@ namespace MySystem.OpModels
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.ExpireDate)
+                    .HasColumnType("datetime")
+                    .HasComment("过期时间");
+
                 entity.Property(e => e.FilePath)
                     .HasColumnType("varchar(200)")
                     .HasCharSet("utf8")

+ 1 - 1
Util/Utils.cs

@@ -87,7 +87,7 @@ namespace MySystem
         {
             WebCMSEntities db = new WebCMSEntities();
             // Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-            UserRankItem user = PosCouponPrizeService.Instance.GetUserLevel(db, UserId);
+            UserRankItem user = PosCouponPrizeService.Instance.GetUserLevel(UserId);
             if(user.UserType == 1)
             {
                 return true;