浏览代码

Merge branch 'feat-lcl-修复问题' of kxs-end/main-server into release-mainserver

lichunlei 1 年之前
父节点
当前提交
034bcb1380
共有 2 个文件被更改,包括 94 次插入91 次删除
  1. 14 16
      AppStart/Helper/AlipayPayBack2Service.cs
  2. 80 75
      Controllers/HomeController.cs

+ 14 - 16
AppStart/Helper/AlipayPayBack2Service.cs

@@ -864,27 +864,25 @@ namespace MySystem
         public void LeaderRecommendPrize(WebCMSEntities db, Orders order, int UserId, decimal Money, int ChangeType)
         {
             int level = 0;
-            while(UserId > 0)
+            Users orderuser = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+            if(!string.IsNullOrEmpty(orderuser.ParentNav))
             {
-                level += 1;
-                // Users user = db.Users.FirstOrDefault(m => m.Id == UserId);
-                UserRankItem user = PosCouponPrizeService.Instance.GetUserLevel(UserId);
-                if(user != null)
+                string[] ParentNavList = orderuser.ParentNav.Replace(",,", ",").TrimEnd(',').Split(',');
+                Array.Reverse(ParentNavList);
+                foreach(string ParentUserId in ParentNavList)
                 {
-                    if((user.UserType == 1 || user.LeaderLevel > 0) && level > 1)
+                    level += 1;
+                    int UserIdNum = int.Parse(function.CheckInt(ParentUserId));
+                    UserRankItem user = PosCouponPrizeService.Instance.GetUserLevel(UserIdNum) ?? new UserRankItem();
+                    if(user.Id > 0)
                     {
-                        ChangeAccount(db, order, UserId, Money, ChangeType);
-                        UserId = 0;
-                    }
-                    else
-                    {
-                        UserId = user.ParentUserId;
+                        if((user.UserType >= 1 || user.LeaderLevel > 0) && level > 1 && Money > 0)
+                        {
+                            ChangeAccount(db, order, user.Id, Money, ChangeType);
+                            Money = 0;
+                        }
                     }
                 }
-                else
-                {
-                    UserId = 0;
-                }
             }
             db.Dispose();
         }

+ 80 - 75
Controllers/HomeController.cs

@@ -168,82 +168,87 @@ namespace MySystem.Controllers
 
         public string test()
         {
-            OpModels.WebCMSEntities db = new OpModels.WebCMSEntities();
-            List<int> ids = new List<int>();
-            List<OpModels.ChangeTypes> typelist = db.ChangeTypes.ToList();
-            List<OpModels.AmountRecord> list = db.AmountRecord.OrderBy(m => m.Id).ToList();
-            int index = 0;
-            foreach(OpModels.AmountRecord sub in list)
-            {
-                index += 1;
-                if(!ids.Contains(sub.Id))
-                {
-                    int OperateType = sub.OperateType;
-                    OpModels.ChangeTypes type = typelist.FirstOrDefault(m => m.Name == sub.SeoDescription) ?? new OpModels.ChangeTypes();
-                    decimal UseAmount = sub.UseAmount;
-                    decimal UseTotalAmt = 0;
-                    decimal UseValidForGetAmount = 0;
-                    decimal UseValidAmount = 0;
-                    if(type.Name == "商城购机" || type.Name == "购买小盟主" || type.Name == "购买运营中心")
-                    {
-                        UseTotalAmt = UseAmount;
-                        UseValidForGetAmount = UseAmount;
-                        OpModels.AmountRecord same = db.AmountRecord.FirstOrDefault(m => m.UserId == sub.UserId && m.CreateDate >= sub.CreateDate && m.CreateDate <= sub.CreateDate.Value.AddSeconds(5) && m.UseAmount == UseAmount && m.SeoDescription == sub.SeoDescription && m.OperateType == 1) ?? new OpModels.AmountRecord();
-                        ids.Add(same.Id);
-                        OperateType = 0;
-                    }
-                    else
-                    {
-                        if(sub.Version == 1)
-                        {
-                            UseTotalAmt = UseAmount;
-                        }
-                        else if(sub.Version == 2)
-                        {
-                            UseValidForGetAmount = UseAmount;
-                        }
-                        else if(sub.Version == 3)
-                        {
-                            UseValidAmount = UseAmount;
-                        }
-                        else
-                        {
-                            if(OperateType == 1)
-                            {
-                                UseTotalAmt = UseAmount;
-                            }
-                            else
-                            {
-                                UseTotalAmt = -UseAmount;
-                            }
-                        }
-                    }
+            // OpModels.WebCMSEntities db = new OpModels.WebCMSEntities();
+            // List<int> ids = new List<int>();
+            // List<OpModels.ChangeTypes> typelist = db.ChangeTypes.ToList();
+            // List<OpModels.AmountRecord> list = db.AmountRecord.OrderBy(m => m.Id).ToList();
+            // int index = 0;
+            // foreach(OpModels.AmountRecord sub in list)
+            // {
+            //     index += 1;
+            //     if(!ids.Contains(sub.Id))
+            //     {
+            //         int OperateType = sub.OperateType;
+            //         OpModels.ChangeTypes type = typelist.FirstOrDefault(m => m.Name == sub.SeoDescription) ?? new OpModels.ChangeTypes();
+            //         decimal UseAmount = sub.UseAmount;
+            //         decimal UseTotalAmt = 0;
+            //         decimal UseValidForGetAmount = 0;
+            //         decimal UseValidAmount = 0;
+            //         if(type.Name == "商城购机" || type.Name == "购买小盟主" || type.Name == "购买运营中心")
+            //         {
+            //             UseTotalAmt = UseAmount;
+            //             UseValidForGetAmount = UseAmount;
+            //             OpModels.AmountRecord same = db.AmountRecord.FirstOrDefault(m => m.UserId == sub.UserId && m.CreateDate >= sub.CreateDate && m.CreateDate <= sub.CreateDate.Value.AddSeconds(5) && m.UseAmount == UseAmount && m.SeoDescription == sub.SeoDescription && m.OperateType == 1) ?? new OpModels.AmountRecord();
+            //             ids.Add(same.Id);
+            //             OperateType = 0;
+            //         }
+            //         else
+            //         {
+            //             if(sub.Version == 1)
+            //             {
+            //                 UseTotalAmt = UseAmount;
+            //             }
+            //             else if(sub.Version == 2)
+            //             {
+            //                 UseValidForGetAmount = UseAmount;
+            //             }
+            //             else if(sub.Version == 3)
+            //             {
+            //                 UseValidAmount = UseAmount;
+            //             }
+            //             else
+            //             {
+            //                 if(OperateType == 1)
+            //                 {
+            //                     UseTotalAmt = UseAmount;
+            //                 }
+            //                 else
+            //                 {
+            //                     UseTotalAmt = -UseAmount;
+            //                 }
+            //             }
+            //         }
                     
-                    OpModels.AmountRecordNew add = db.AmountRecordNew.Add(new OpModels.AmountRecordNew()
-                    {
-                        CreateDate = sub.CreateDate,
-                        UpdateDate = sub.UpdateDate,
-                        ChangeTypeId = type.Id,
-                        Remark = sub.SeoDescription,
-                        AfterValidForGetAmount = sub.AfterValidForGetAmount,
-                        AfterTotalAmt = sub.AfterTotalAmt,
-                        AfterValidAmount = sub.AfterValidAmount,
-                        OperateType = OperateType,
-                        AfterAmount = sub.AfterAmount,
-                        BeforeAmount = sub.BeforeAmount,
-                        UseAmount = UseAmount,
-                        UserId = sub.UserId,
-                        UseValidForGetAmount = UseValidForGetAmount,
-                        UseTotalAmt = UseTotalAmt,
-                        UseValidAmount = UseValidAmount,
-                    }).Entity;
-                    if(index % 100 == 0)
-                    {
-                        db.SaveChanges();
-                    }
-                }
-            }
-            db.SaveChanges();
+            //         OpModels.AmountRecordNew add = db.AmountRecordNew.Add(new OpModels.AmountRecordNew()
+            //         {
+            //             CreateDate = sub.CreateDate,
+            //             UpdateDate = sub.UpdateDate,
+            //             ChangeTypeId = type.Id,
+            //             Remark = sub.SeoDescription,
+            //             AfterValidForGetAmount = sub.AfterValidForGetAmount,
+            //             AfterTotalAmt = sub.AfterTotalAmt,
+            //             AfterValidAmount = sub.AfterValidAmount,
+            //             OperateType = OperateType,
+            //             AfterAmount = sub.AfterAmount,
+            //             BeforeAmount = sub.BeforeAmount,
+            //             UseAmount = UseAmount,
+            //             UserId = sub.UserId,
+            //             UseValidForGetAmount = UseValidForGetAmount,
+            //             UseTotalAmt = UseTotalAmt,
+            //             UseValidAmount = UseValidAmount,
+            //         }).Entity;
+            //         if(index % 100 == 0)
+            //         {
+            //             db.SaveChanges();
+            //         }
+            //     }
+            // }
+            // db.SaveChanges();
+            // db.Dispose();
+
+            WebCMSEntities db = new WebCMSEntities();
+            Orders order = db.Orders.FirstOrDefault(m => m.Id == 451961);
+            AlipayPayBack2Service.Instance.LeaderRecommendPrize(db, order, 208759, 888, 123);
             db.Dispose();
 
             return "ok";