|
|
@@ -89,6 +89,7 @@ namespace MySystem
|
|
|
{
|
|
|
PreUserLevel(db, order.UserId, 1, DateTime.Parse("2025-01-01 00:00:00"));
|
|
|
}
|
|
|
+ List<string> codes = order.SnNos.Split(',').ToList();
|
|
|
string ParentNav = orderUser.ParentNav + "," + orderUser.Id + ",";
|
|
|
string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
|
|
|
Array.Reverse(ParentNavList);
|
|
|
@@ -96,6 +97,7 @@ namespace MySystem
|
|
|
bool DirectPrizeFlag = false; //推荐奖励发放标识
|
|
|
bool BackAccountFlag = false; //备用金返余额标识
|
|
|
bool BigLeaderFlag = false; //大盟主标记
|
|
|
+ BigLeaderFlag = CheckPosCouponLeaderFlag(db, order.UserId, order.BuyCount, codes);
|
|
|
decimal BuyPrize = 0; //购机奖励
|
|
|
foreach(string ParentId in ParentNavList)
|
|
|
{
|
|
|
@@ -160,7 +162,6 @@ namespace MySystem
|
|
|
BigLeaderFlag = true;
|
|
|
if(!string.IsNullOrEmpty(order.SnNos))
|
|
|
{
|
|
|
- List<string> codes = order.SnNos.Split(',').ToList();
|
|
|
List<int> couponIds = db.PosCoupons.Where(m => codes.Contains(m.ExchangeCode)).OrderBy(m => m.Id).Take(CouponCount).ToList().Select(m => m.Id).ToList();
|
|
|
SetPosCouponLeaderFlag(db, parentUser.Id, order.BuyCount, couponIds);
|
|
|
}
|
|
|
@@ -770,45 +771,102 @@ namespace MySystem
|
|
|
PosCoupons coupon = db.PosCoupons.FirstOrDefault(m => m.Id == couponId);
|
|
|
decimal LeaderReserve = pacccount.LeaderReserve;
|
|
|
decimal CheckReserve = 400 * Count;
|
|
|
- if(LeaderReserve < CheckReserve)
|
|
|
+ // if(LeaderReserve < CheckReserve)
|
|
|
+ // {
|
|
|
+ // LeaderReserveRecord ReserveRecord = db.LeaderReserveRecord.FirstOrDefault(m => m.UserId == LeaderUserId && m.Remark == "推荐小盟主" && m.ChangeAmt - m.UsedReserve > 0);
|
|
|
+ // if(ReserveRecord != null)
|
|
|
+ // {
|
|
|
+ // if(ReserveRecord.ChangeAmt - ReserveRecord.UsedReserve >= CheckReserve)
|
|
|
+ // {
|
|
|
+ // LeaderReserve = CheckReserve;
|
|
|
+ // ReserveRecord.UsedReserve += CheckReserve;
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // decimal OtherLeaderReserve = ReserveRecord.ChangeAmt - ReserveRecord.UsedReserve;
|
|
|
+ // ReserveRecord.UsedReserve += OtherLeaderReserve;
|
|
|
+ // LeaderReserveRecord ReserveRecord2 = db.LeaderReserveRecord.FirstOrDefault(m => m.Id > ReserveRecord.Id && m.UserId == LeaderUserId && m.Remark == "推荐小盟主" && m.ChangeAmt - m.UsedReserve > 0);
|
|
|
+ // if(ReserveRecord2 != null)
|
|
|
+ // {
|
|
|
+ // if(ReserveRecord2.ChangeAmt - ReserveRecord2.UsedReserve >= CheckReserve - OtherLeaderReserve)
|
|
|
+ // {
|
|
|
+ // LeaderReserve = CheckReserve - OtherLeaderReserve;
|
|
|
+ // ReserveRecord2.UsedReserve += CheckReserve - OtherLeaderReserve;
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // OtherLeaderReserve = ReserveRecord2.ChangeAmt - ReserveRecord2.UsedReserve;
|
|
|
+ // ReserveRecord2.UsedReserve += OtherLeaderReserve;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ if(coupon != null && LeaderReserve >= CheckReserve)
|
|
|
+ {
|
|
|
+ coupon.LeaderUserId = LeaderUserId;
|
|
|
+ SetCount += 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ db.SaveChanges();
|
|
|
+ return SetCount;
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool CheckPosCouponLeaderFlag(WebCMSEntities db, int UserId, int Count, List<string> codes)
|
|
|
+ {
|
|
|
+ int SetCount = 0;
|
|
|
+ Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
|
|
|
+ string ParentNav = user.ParentNav + "," + UserId + ",";
|
|
|
+ List<int> UserIds = new List<int>();
|
|
|
+ string[] ParentNavList = ParentNav.Replace(",,", ",").Trim(',').Split(',');
|
|
|
+ foreach(string SubId in ParentNavList)
|
|
|
+ {
|
|
|
+ UserIds.Add(int.Parse(SubId));
|
|
|
+ }
|
|
|
+ decimal CheckReserve = 400 * Count;
|
|
|
+ decimal LeaderReserve = 0;
|
|
|
+ LeaderReserveRecord ReserveRecord = db.LeaderReserveRecord.FirstOrDefault(m => UserIds.Contains(m.UserId) && m.Remark == "推荐小盟主" && m.ChangeAmt - m.UsedReserve > 0);
|
|
|
+ if(ReserveRecord != null)
|
|
|
+ {
|
|
|
+ int LeaderUserId = ReserveRecord.UserId;
|
|
|
+ if(ReserveRecord.ChangeAmt - ReserveRecord.UsedReserve >= CheckReserve)
|
|
|
{
|
|
|
- LeaderReserveRecord ReserveRecord = db.LeaderReserveRecord.FirstOrDefault(m => m.UserId == LeaderUserId && m.Remark == "推荐小盟主" && m.ChangeAmt - m.UsedReserve > 0);
|
|
|
- if(ReserveRecord != null)
|
|
|
+ LeaderReserve = CheckReserve;
|
|
|
+ ReserveRecord.UsedReserve += CheckReserve;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ decimal OtherLeaderReserve = ReserveRecord.ChangeAmt - ReserveRecord.UsedReserve;
|
|
|
+ ReserveRecord.UsedReserve += OtherLeaderReserve;
|
|
|
+ LeaderReserveRecord ReserveRecord2 = db.LeaderReserveRecord.FirstOrDefault(m => m.Id > ReserveRecord.Id && m.UserId == LeaderUserId && m.Remark == "推荐小盟主" && m.ChangeAmt - m.UsedReserve > 0);
|
|
|
+ if(ReserveRecord2 != null)
|
|
|
{
|
|
|
- if(ReserveRecord.ChangeAmt - ReserveRecord.UsedReserve >= CheckReserve)
|
|
|
+ if(ReserveRecord2.ChangeAmt - ReserveRecord2.UsedReserve >= CheckReserve - OtherLeaderReserve)
|
|
|
{
|
|
|
- LeaderReserve = CheckReserve;
|
|
|
- ReserveRecord.UsedReserve += CheckReserve;
|
|
|
+ LeaderReserve = CheckReserve - OtherLeaderReserve;
|
|
|
+ ReserveRecord2.UsedReserve += CheckReserve - OtherLeaderReserve;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- decimal OtherLeaderReserve = ReserveRecord.ChangeAmt - ReserveRecord.UsedReserve;
|
|
|
- ReserveRecord.UsedReserve += OtherLeaderReserve;
|
|
|
- LeaderReserveRecord ReserveRecord2 = db.LeaderReserveRecord.FirstOrDefault(m => m.Id > ReserveRecord.Id && m.UserId == LeaderUserId && m.Remark == "推荐小盟主" && m.ChangeAmt - m.UsedReserve > 0);
|
|
|
- if(ReserveRecord2 != null)
|
|
|
- {
|
|
|
- if(ReserveRecord2.ChangeAmt - ReserveRecord2.UsedReserve >= CheckReserve - OtherLeaderReserve)
|
|
|
- {
|
|
|
- LeaderReserve = CheckReserve - OtherLeaderReserve;
|
|
|
- ReserveRecord2.UsedReserve += CheckReserve - OtherLeaderReserve;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- OtherLeaderReserve = ReserveRecord2.ChangeAmt - ReserveRecord2.UsedReserve;
|
|
|
- ReserveRecord2.UsedReserve += OtherLeaderReserve;
|
|
|
- }
|
|
|
- }
|
|
|
+ OtherLeaderReserve = ReserveRecord2.ChangeAmt - ReserveRecord2.UsedReserve;
|
|
|
+ ReserveRecord2.UsedReserve += OtherLeaderReserve;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if(coupon != null && LeaderReserve >= CheckReserve)
|
|
|
+
|
|
|
+ List<int> couponIds = db.PosCoupons.Where(m => codes.Contains(m.ExchangeCode)).OrderBy(m => m.Id).Take(Count).ToList().Select(m => m.Id).ToList();
|
|
|
+ foreach(int couponId in couponIds)
|
|
|
{
|
|
|
- coupon.LeaderUserId = LeaderUserId;
|
|
|
- SetCount += 1;
|
|
|
+ PosCoupons coupon = db.PosCoupons.FirstOrDefault(m => m.Id == couponId);
|
|
|
+ if(coupon != null)
|
|
|
+ {
|
|
|
+ coupon.LeaderUserId = LeaderUserId;
|
|
|
+ SetCount += 1;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
db.SaveChanges();
|
|
|
- return SetCount;
|
|
|
+ return SetCount > 0;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|