Browse Source

调整合伙人政策逻辑

lcl 1 năm trước cách đây
mục cha
commit
9afe4ea8a7

+ 10 - 14
AppStart/Helper/AlipayPayBack2Service.cs

@@ -339,9 +339,9 @@ namespace MySystem
                 if(user != null)
                 {
                     decimal TotalPrice = 10000;
-                    if((user.LeaderLevel == 2 || user.UserType == 1) && level > 1)
+                    if((user.LeaderLevel == 2 || user.UserType > 1) && level > 1)
                     {
-                        if(user.UserType == 1 && result)
+                        if(user.UserType > 1 && result)
                         {
                             OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
                             OpModels.UserAccount account = opdb.UserAccount.FirstOrDefault(m => m.Id == LeaderUserId) ?? new OpModels.UserAccount();
@@ -353,8 +353,8 @@ namespace MySystem
                                 }
                                 if(TotalPrice > 0)
                                 {
-                                    OperateAmountChange(opdb, LeaderUserId, TotalPrice, 2, 1, "商城购机");
-                                    OperateAmountChange(opdb, LeaderUserId, TotalPrice, 1, 2, "商城购机");
+                                    OperateAmountChange(opdb, LeaderUserId, TotalPrice, 2, 1, "商城购机", true);
+                                    OperateAmountChange(opdb, LeaderUserId, TotalPrice, 1, 2, "商城购机", true);
                                     LeaderUserId = 0;
                                     result = false;
                                 }
@@ -647,20 +647,16 @@ namespace MySystem
                     if(sys)
                     {
                         OpModels.UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == UserId) ?? new OpModels.UserAccount();
-                        if(account.TotalAmt <= 0)
+                        if(account.TotalAmt >= Money)
                         {
-                            return;
+                            OperateAmountChange(db, UserId, Money, 2, 1, "商城购机", true);
+                            OperateAmountChange(db, UserId, Money, 1, 2, "商城购机", true);
+                            UserId = 0;
                         }
-                        if(account.TotalAmt < Money)
-                        {
-                            Money = account.TotalAmt;
-                        }
-                        if(Money > 0)
+                        else
                         {
-                            OperateAmountChange(db, UserId, Money, 2, 1, "商城购机");
-                            OperateAmountChange(db, UserId, Money, 1, 2, "商城购机");
+                            UserId = user.ParentUserId;
                         }
-                        UserId = 0;
                     }
                     else
                     {

+ 51 - 82
AppStart/Helper/LeaderApplyCouponsHelper.cs

@@ -34,81 +34,49 @@ namespace MySystem
                     {
                         var Id = int.Parse(content);
                         dosomething(Id);
-                        // WebCMSEntities db = new WebCMSEntities();
-                        // var LeaderUserId = 0;
-                        // var queryList = db.LeaderReserveRecord.FirstOrDefault(m => m.Id == Id) ?? new LeaderReserveRecord();
-                        // var userInfo = db.Users.FirstOrDefault(m => m.Id == queryList.UserId) ?? new Users();
-                        // if (userInfo.LeaderLevel == 2)
-                        // {
-                        //     LeaderUserId = queryList.UserId;
-                        // }
-                        // else
-                        // {
-                        //     string[] ParentNavList = userInfo.ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        //     for (int j = ParentNavList.Length; j > 0; j--)
-                        //     {
-                        //         int userId = int.Parse(ParentNavList[j - 1]);
-                        //         var user = db.Users.FirstOrDefault(m => m.Id == userId) ?? new Users();
-                        //         //如果是小盟主,则查找该小盟主关联的大盟主储蓄金是否充足,是则给券打上关联大盟主标记
-                        //         if (user.LeaderLevel == 2)
-                        //         {
-                        //             LeaderUserId = userId;
-                        //             break;
-                        //         }
-                        //         else
-                        //         {
-                        //             continue;
-                        //         }
-                        //     }
+                        WebCMSEntities db = new WebCMSEntities();
+                        var queryList = db.LeaderReserveRecord.FirstOrDefault(m => m.Id == Id) ?? new LeaderReserveRecord();
 
-                        // }
-
-                        // JsonData ApplyList = JsonMapper.ToObject(queryList.SeoTitle);
-                        // var SnList = "";
-                        // for (int i = 0; i < ApplyList.Count; i++)
-                        // {
-                        //     int num = Convert.ToInt32(ApplyList[i]["Num"].ToString());
-                        //     int type = Convert.ToInt32(ApplyList[i]["Type"].ToString());
-                        //     //电签
-                        //     if (type == 1)
-                        //     {
-                        //         var dposCoupons = db.PosCoupons.Where(m => m.QueryCount == 1 && m.UserId == 0 && m.LeaderUserId == 0 && m.IsUse == 0 && m.IsLock == 0 && m.OpId == 0).Take(num).ToList();//电签券
-                        //         foreach (var item in dposCoupons)
-                        //         {
-                        //             var posCoupon = db.PosCoupons.FirstOrDefault(m => m.Id == item.Id) ?? new PosCoupons();
-                        //             posCoupon.UserId = queryList.UserId;
-                        //             posCoupon.LeaderUserId = LeaderUserId;
-                        //             // SnList += posCoupon.ExchangeCode + ",";
-                        //             db.UserSnDelayChange.Add(new UserSnDelayChange()
-                        //             {
-                        //                 CreateDate = DateTime.Now,
-                        //                 QueryCount = Id,
-                        //                 SnNo = posCoupon.ExchangeCode,
-                        //             });
-                        //         }
-                        //     }
-                        //     //大机
-                        //     if (type == 2)
-                        //     {
-                        //         var bposCoupons = db.PosCoupons.Where(m => m.QueryCount == 2 && m.UserId == 0 && m.LeaderUserId == 0 && m.IsUse == 0 && m.IsLock == 0 && m.OpId == 0).Take(num).ToList();//大机券
-                        //         foreach (var items in bposCoupons)
-                        //         {
-                        //             var posCoupon = db.PosCoupons.FirstOrDefault(m => m.Id == items.Id) ?? new PosCoupons();
-                        //             posCoupon.UserId = queryList.UserId;
-                        //             posCoupon.LeaderUserId = LeaderUserId;
-                        //             // SnList += posCoupon.ExchangeCode + ",";
-                        //             db.UserSnDelayChange.Add(new UserSnDelayChange()
-                        //             {
-                        //                 CreateDate = DateTime.Now,
-                        //                 QueryCount = Id,
-                        //                 SnNo = posCoupon.ExchangeCode,
-                        //             });
-                        //         }
-                        //     }
-                        //     db.SaveChanges();
-                        // }
-                        // // queryList.SeoDescription = SnList.TrimEnd(',');
-                        // db.SaveChanges();
+                        JsonData ApplyList = JsonMapper.ToObject(queryList.SeoTitle);
+                        for (int i = 0; i < ApplyList.Count; i++)
+                        {
+                            int num = Convert.ToInt32(ApplyList[i]["Num"].ToString());
+                            int type = Convert.ToInt32(ApplyList[i]["Type"].ToString());
+                            //电签
+                            if (type == 1)
+                            {
+                                var dposCoupons = db.PosCoupons.Where(m => m.QueryCount == 1 && m.UserId == 0 && m.LeaderUserId == 0 && m.IsUse == 0 && m.IsLock == 0 && m.OpId == 0).Take(num).ToList();//电签券
+                                foreach (var item in dposCoupons)
+                                {
+                                    var posCoupon = db.PosCoupons.FirstOrDefault(m => m.Id == item.Id) ?? new PosCoupons();
+                                    posCoupon.UserId = queryList.UserId;
+                                    db.UserSnDelayChange.Add(new UserSnDelayChange()
+                                    {
+                                        CreateDate = DateTime.Now,
+                                        QueryCount = Id,
+                                        SnNo = posCoupon.ExchangeCode,
+                                    });
+                                }
+                            }
+                            //大机
+                            if (type == 2)
+                            {
+                                var bposCoupons = db.PosCoupons.Where(m => m.QueryCount == 2 && m.UserId == 0 && m.LeaderUserId == 0 && m.IsUse == 0 && m.IsLock == 0 && m.OpId == 0).Take(num).ToList();//大机券
+                                foreach (var items in bposCoupons)
+                                {
+                                    var posCoupon = db.PosCoupons.FirstOrDefault(m => m.Id == items.Id) ?? new PosCoupons();
+                                    posCoupon.UserId = queryList.UserId;
+                                    db.UserSnDelayChange.Add(new UserSnDelayChange()
+                                    {
+                                        CreateDate = DateTime.Now,
+                                        QueryCount = Id,
+                                        SnNo = posCoupon.ExchangeCode,
+                                    });
+                                }
+                            }
+                            db.SaveChanges();
+                        }
+                        db.SaveChanges();
                     }
                     catch (Exception ex)
                     {
@@ -122,7 +90,7 @@ namespace MySystem
             }
         }
 
-        private void dosomething(int Id)
+        public void dosomething(int Id)
         { 
             WebCMSEntities db = new WebCMSEntities();
             OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
@@ -135,7 +103,7 @@ namespace MySystem
                 string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
                 Array.Reverse(ParentNavList);
                 int index = 0;
-                bool BuyPrizeFlag = false; //购机奖励发放标识
+                bool BigLeaderFlag = false; //大盟主标记
                 decimal BuyPrize = 0; //购机奖励
                 foreach(string ParentId in ParentNavList)
                 {
@@ -143,18 +111,19 @@ namespace MySystem
                     index += 1;
 
                     //给券打大盟主标记
-                    if(parentUser.LeaderLevel == 2 && index == 1)
+                    if(parentUser.LeaderLevel == 2 && !BigLeaderFlag)
                     {
                         for (int i = 0; i < ApplyList.Count; i++)
                         {
                             int num = Convert.ToInt32(ApplyList[i]["Num"].ToString());
                             int Kind = Convert.ToInt32(ApplyList[i]["Type"].ToString());
                             List<int> couponIds = db.PosCoupons.Where(m => m.IsLock == 0 && m.IsUse == 0 && m.UserId == 0 && m.QueryCount == Kind).OrderBy(m => m.Id).Take(num).ToList().Select(m => m.Id).ToList();
-                            PosCouponPrizeService.Instance.SetPosCouponLeaderFlag(db, parentUser.Id, num / 3, couponIds);
+                            int result = PosCouponPrizeService.Instance.SetPosCouponLeaderFlag(db, parentUser.Id, num / 3, couponIds);
+                            if(result > 0) BigLeaderFlag = true;
                         }
                     }
 
-                    if(parentUser.OperateLevel > 0 && !BuyPrizeFlag)
+                    if(parentUser.OperateLevel > 0)
                     {
                         int groupCount = 0;
                         for (int i = 0; i < ApplyList.Count; i++)
@@ -165,10 +134,10 @@ namespace MySystem
                         }
                         if(PosCouponPrizeService.Instance.CheckOpReserve(opdb, groupCount, parentUser.Id))
                         {
-                        //购机奖
+                            //购机奖
                             decimal CurBuyPrize = GetBuyPrize(parentUser);
-                            PosCouponPrizeService.Instance.OpAccount(db, 0, parentUser.Id, CurBuyPrize - BuyPrize, groupCount);
-                            BuyPrizeFlag = true;
+                            decimal GetPrize = CurBuyPrize - BuyPrize;
+                            if(GetPrize > 0) PosCouponPrizeService.Instance.OpAccount(db, 0, parentUser.Id, GetPrize, groupCount, 120);
                             BuyPrize = CurBuyPrize;
                         }
                     }

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

@@ -47,7 +47,7 @@ namespace MySystem
             }
         }
 
-        private void dosomething(int Id)
+        public void dosomething(int Id)
         { 
             WebCMSEntities db = new WebCMSEntities();
             OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
@@ -65,12 +65,12 @@ namespace MySystem
                     UserRankItem parentUser = PosCouponPrizeService.Instance.GetUserLevel(db, int.Parse(ParentId));
                     index += 1;
 
-                    if(parentUser.OperateLevel > 1 && PosCouponPrizeService.Instance.CheckOpReserve(opdb, 16000, parentUser.Id) && !PrizeFlag)
+                    if(parentUser.OperateLevel > 1 && PosCouponPrizeService.Instance.CheckOpReserve(opdb, 16000M, parentUser.Id) && !PrizeFlag)
                     {
                         //扣减备用金
-                        PosCouponPrizeService.Instance.OperateAmountChange(opdb, parentUser.Id, 16000, 2, 1, "购买运营中心");
+                        PosCouponPrizeService.Instance.OperateAmountChange(opdb, parentUser.Id, 16000, 2, 1, "购买运营中心", true);
                         //返回到余额
-                        PosCouponPrizeService.Instance.OperateAmountChange(opdb, parentUser.Id, 16000, 1, 2, "购买运营中心");
+                        PosCouponPrizeService.Instance.OperateAmountChange(opdb, parentUser.Id, 16000, 1, 2, "购买运营中心", true);
 
                         //发放5888推荐奖励
                         PosCouponPrizeService.Instance.OpAccount(db, parentUser.Id, parentUser.Id, 5888, 1);

+ 31 - 18
AppStart/Helper/PosCouponPrize/PosCouponPrizeService.cs

@@ -47,7 +47,7 @@ namespace MySystem
             }
         }
 
-        private void dosomething(int OrderId)
+        public void dosomething(int OrderId)
         { 
             WebCMSEntities db = new WebCMSEntities();
             OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
@@ -88,7 +88,8 @@ namespace MySystem
                     Array.Reverse(ParentNavList);
                     int index = 0;
                     bool DirectPrizeFlag = false; //推荐奖励发放标识
-                    bool BuyPrizeFlag = false; //购机奖励发放标识
+                    bool BackAccountFlag = false; //备用金返余额标识
+                    bool BigLeaderFlag = false; //大盟主标记
                     decimal BuyPrize = 0; //购机奖励
                     foreach(string ParentId in ParentNavList)
                     {
@@ -107,35 +108,44 @@ namespace MySystem
                                 DirectPrizeFlag = true;
                             }
                         }
-                        if(parentUser.OperateLevel > 0 && CheckOpReserve(opdb, order.BuyCount, parentUser.Id) && !BuyPrizeFlag)
+                        if(parentUser.OperateLevel > 0 && CheckOpReserve(opdb, order.BuyCount, parentUser.Id))
                         {
                             //购机奖
                             decimal CurBuyPrize = GetBuyPrize(parentUser);
-                            OpAccount(db, order.Id, parentUser.Id, CurBuyPrize - BuyPrize, order.BuyCount, 120);
-                            BuyPrizeFlag = true;
+                            decimal GetPrize = CurBuyPrize - BuyPrize;
+                            if(GetPrize > 0) OpAccount(db, order.Id, parentUser.Id, GetPrize, order.BuyCount, 120);
                             BuyPrize = CurBuyPrize;
 
-                            //扣减备用金
-                            OperateAmountChange(opdb, parentUser.Id, GetWithdrawMoney(parentUser) * order.BuyCount, 2, 1, "商城购机");
-                            //返回到余额
-                            OperateAmountChange(opdb, parentUser.Id, GetWithdrawMoney(parentUser) * order.BuyCount, 1, 2, "商城购机");
+                            if(!BackAccountFlag)
+                            {
+                                BackAccountFlag = true;
+                                //扣减备用金
+                                OperateAmountChange(opdb, parentUser.Id, GetWithdrawMoney(parentUser) * order.BuyCount, 2, 1, "商城购机", true);
+                                //返回到余额
+                                OperateAmountChange(opdb, parentUser.Id, GetWithdrawMoney(parentUser) * order.BuyCount, 1, 2, "商城购机", true);
+                            }
                         }
-                        if(parentUser.LeaderLevel > 0 && CheckLeaderReserve(db, order.BuyCount, parentUser.Id) && !BuyPrizeFlag)
+                        else if(parentUser.LeaderLevel > 0 && CheckLeaderReserve(db, order.BuyCount, parentUser.Id))
                         {
                             //购机奖
                             decimal CurBuyPrize = GetBuyPrize(parentUser);
-                            OpAccount(db, order.Id, parentUser.Id, CurBuyPrize - BuyPrize, order.BuyCount, 118);
-                            BuyPrizeFlag = true;
+                            decimal GetPrize = CurBuyPrize - BuyPrize;
+                            if(GetPrize > 0) OpAccount(db, order.Id, parentUser.Id, CurBuyPrize - BuyPrize, order.BuyCount, 118);
                             BuyPrize = CurBuyPrize;
 
-                            //扣减备用金
-                            OpReserve(db, order.Id, parentUser.Id, GetWithdrawMoney(parentUser) * order.BuyCount, 2, order.UserId, "购机奖励");
-                            //返回到余额
-                            OpLeaderAccount(db, order, parentUser.Id, GetWithdrawMoney(parentUser), order.BuyCount);
+                            if(!BackAccountFlag)
+                            {
+                                BackAccountFlag = true;
+                                //扣减备用金
+                                OpReserve(db, order.Id, parentUser.Id, GetWithdrawMoney(parentUser) * order.BuyCount, 2, order.UserId, "购机奖励");
+                                //返回到余额
+                                OpLeaderAccount(db, order, parentUser.Id, GetWithdrawMoney(parentUser), order.BuyCount);
+                            }
 
                             //给券打大盟主标记
-                            if(parentUser.LeaderLevel == 2)
+                            if(parentUser.LeaderLevel == 2 && !BigLeaderFlag)
                             {
+                                BigLeaderFlag = true;
                                 List<int> couponIds = db.PosCoupons.Where(m => m.IsLock == 0 && m.IsUse == 0 && m.UserId == 0 && m.QueryCount == Kind).OrderBy(m => m.Id).Take(CouponCount).ToList().Select(m => m.Id).ToList();
                                 SetPosCouponLeaderFlag(db, parentUser.Id, order.BuyCount, couponIds);
                             }
@@ -489,8 +499,9 @@ namespace MySystem
         /// <param name="LeaderUserId"></param>
         /// <param name="Count"></param>
         /// <param name="couponIds"></param>
-        public void SetPosCouponLeaderFlag(WebCMSEntities db, int LeaderUserId, int Count, List<int> couponIds)
+        public int SetPosCouponLeaderFlag(WebCMSEntities db, int LeaderUserId, int Count, List<int> couponIds)
         {
+            int SetCount = 0;
             UserAccount pacccount = db.UserAccount.FirstOrDefault(m => m.Id == LeaderUserId) ?? new UserAccount();
             foreach(int couponId in couponIds)
             {
@@ -498,9 +509,11 @@ namespace MySystem
                 if(coupon != null && pacccount.LeaderReserve >= 400 * Count)
                 {
                     coupon.LeaderUserId = LeaderUserId;
+                    SetCount += 1;
                 }
             }
             db.SaveChanges();
+            return SetCount;
         }
 
         /// <summary>

+ 7 - 7
AppStart/Helper/TimeOutPosChargeService.cs

@@ -113,7 +113,7 @@ namespace MySystem
                 WebCMSEntities db = new WebCMSEntities();
                 DoChargeAmount(db);
                 db.Dispose();
-                Thread.Sleep(600000);
+                Thread.Sleep(60000);
             }
         }
 
@@ -204,19 +204,19 @@ namespace MySystem
                         {
                             //11:盟主储蓄金增减单(兑换机具券 机具券兑换 系统增加(盟主储蓄金) 系统扣减(盟主储蓄金) 储备金购买)
                             // 示例:+/-金额
-                            // 	盟主储蓄金:剩余盟主储蓄金
+                            //  盟主储蓄金:剩余盟主储蓄金
                             // 12:可提现余额增减单(系统增加(可提现余额) 系统扣减(可提现余额))
                             // 示例:+/-金额
-                            // 	可提现余额:剩余可提现余额
+                            //  可提现余额:剩余可提现余额
                             // 13:盟主储蓄金减少可提现余额增加(推荐大/小盟主 商城购机 购机奖励)
                             // 示例:-金额
-                            // 	盟主储蓄金:剩余盟主储蓄金
-                            // 	可提现余额:+金额
+                            //  盟主储蓄金:剩余盟主储蓄金
+                            //  可提现余额:+金额
                             var leaderReserveRecord = db.LeaderReserveRecord.Add(new LeaderReserveRecord()
                             {
                                 CreateDate = DateTime.Now, //创建时间
                                 Sort = 12,
-                                UserId = UserId, //创客
+                                UserId = items.UserId, //创客
                                 Remark = "盟主预扣款",
                                 ChangeType = 2,//变动类型(1 增加 2 减少)
                                 BeforeAmt = userAccount.LeaderBalanceAmount,
@@ -247,7 +247,7 @@ namespace MySystem
                             var amoutRecord = opdb.AmountRecord.Add(new MySystem.OpModels.AmountRecord
                             {
                                 CreateDate = DateTime.Now,
-                                UserId = UserId,
+                                UserId = items.UserId,
                                 SeoDescription = "运营中心预扣款",
                                 UseAmount = record.ChargeAmount,
                                 OperateType = 2,

+ 4 - 0
Startup.cs

@@ -165,6 +165,10 @@ namespace MySystem
             {
                 // LeaderCompPrizeHelper.Instance.Ready("202311"); //领导人达标奖
                 // BalancePayBackService.Instance.Start(); //余额支付队列
+                // PosCouponPrizeService.Instance.dosomething(318516);
+                // LeaderApplyCouponsHelper.Instance.dosomething(5413);
+                // OperateAddService.Instance.dosomething(29);
+                BalancePayBackService.Instance.sloveAlipayCallBack("318529");
             }
             if(Library.ConfigurationManager.EnvironmentFlag == 2)
             {