Phase 2: Replace all deprecated SystemConstants with Package entity reads
- ActivateClubMembership: Load Package, set First/Last fields, PackageId on Cycle+Pool - AcceptClubMembershipContract: Load Package, set First/Last fields, PackageId on Pool - CalculateWeeklyBalances: Load base package, use package.MaxBalancesPerLeg/MaxNetworkLevel, set PackageId on NetworkWeeklyBalance - ProcessUserPayouts: Load base package, use package.MaxNetworkLevel, set PackageId on UserCommissionPayout - CheckAndProcessDayaLoans: Load base package (IsBasePackage), replace DayaLoanAmount→package.Price, fix hardcoded p.Id==4 - CreateManualPayment: Load base package, replace BasePackageAmount→package.Price, use DiscountMultiplier - InitiateBasePackagePayment: Remove hardcoded BasePackageId=4, load from IsBasePackage, use package.Price/Id - VerifyBasePackagePayment: Load Package from order.PackageId, use package.Price+DiscountMultiplier - ChargeMagicWallet: Load user's package from current cycle, use package.MagicWalletMaxDeposit - VerifyMagicWalletCharge: Load user's package, use package.MagicWalletMultiplier/MagicWalletMaxDeposit - OrmCommissionCalculationStrategy: Load base package in both methods, set PackageId on Balance+Payout - ConfigurationService: Inject IApplicationDbContext, read package values from DB instead of SystemConstants - UserOrderService: Load user's package for EXIT trigger MagicWalletMaxDeposit check - UserWalletService: Load user's package for GetMagicWalletStatus display All 9 deprecated SystemConstants now have ZERO usages outside SystemConstants.cs Build: 0 errors, 521 warnings (all pre-existing)
This commit is contained in:
+13
-11
@@ -20,10 +20,7 @@ public class InitiateBasePackagePaymentCommandHandler : IRequestHandler<Initiate
|
||||
private readonly IApplicationDbContext _context;
|
||||
private readonly ILogger<InitiateBasePackagePaymentCommandHandler> _logger;
|
||||
|
||||
/// <summary>
|
||||
/// شناسه پکیج پایه در دیتابیس
|
||||
/// </summary>
|
||||
private const long BasePackageId = 4;
|
||||
// شناسه پکیج پایه از دیتابیس خوانده میشود (Package.IsBasePackage)
|
||||
|
||||
public InitiateBasePackagePaymentCommandHandler(
|
||||
IApplicationDbContext context,
|
||||
@@ -68,12 +65,17 @@ public class InitiateBasePackagePaymentCommandHandler : IRequestHandler<Initiate
|
||||
};
|
||||
}
|
||||
|
||||
// 2.5. بارگذاری پکیج پایه
|
||||
var package = await _context.Packages
|
||||
.FirstOrDefaultAsync(p => p.IsBasePackage && !p.IsDeleted, cancellationToken)
|
||||
?? throw new NotFoundException("پکیج پایه یافت نشد");
|
||||
|
||||
// 3. بررسی عدم وجود سفارش Pending
|
||||
var pendingOrder = await _context.UserOrders
|
||||
.FirstOrDefaultAsync(o =>
|
||||
o.UserId == request.UserId &&
|
||||
o.PaymentStatus == PaymentStatus.Pending &&
|
||||
o.PackageId == BasePackageId,
|
||||
o.PackageId == package.Id,
|
||||
cancellationToken);
|
||||
|
||||
if (pendingOrder != null)
|
||||
@@ -93,7 +95,7 @@ public class InitiateBasePackagePaymentCommandHandler : IRequestHandler<Initiate
|
||||
Message = "سفارش قبلی در انتظار پرداخت یافت شد.",
|
||||
OrderId = pendingOrder.Id,
|
||||
TransactionId = existingTransaction?.Id ?? 0,
|
||||
Amount = SystemConstants.BasePackageAmount
|
||||
Amount = package.Price
|
||||
};
|
||||
}
|
||||
|
||||
@@ -112,8 +114,8 @@ public class InitiateBasePackagePaymentCommandHandler : IRequestHandler<Initiate
|
||||
// 5. ایجاد Transaction با وضعیت Pending
|
||||
var transaction = new Transaction
|
||||
{
|
||||
Amount = SystemConstants.BasePackageAmount,
|
||||
Description = $"خرید پکیج پایه ۵۶ میلیونی - کاربر #{user.Id}",
|
||||
Amount = package.Price,
|
||||
Description = $"خرید پکیج {package.Title} - کاربر #{user.Id}",
|
||||
PaymentStatus = PaymentStatus.Pending,
|
||||
Type = TransactionType.DepositIpg
|
||||
};
|
||||
@@ -130,8 +132,8 @@ public class InitiateBasePackagePaymentCommandHandler : IRequestHandler<Initiate
|
||||
var order = new UserOrder
|
||||
{
|
||||
UserId = user.Id,
|
||||
PackageId = BasePackageId,
|
||||
Amount = SystemConstants.BasePackageAmount,
|
||||
PackageId = package.Id,
|
||||
Amount = package.Price,
|
||||
PaymentStatus = PaymentStatus.Pending,
|
||||
DeliveryStatus = DeliveryStatus.None,
|
||||
UserAddressId = defaultAddress.Id,
|
||||
@@ -154,7 +156,7 @@ public class InitiateBasePackagePaymentCommandHandler : IRequestHandler<Initiate
|
||||
Message = "تراکنش و سفارش با موفقیت ثبت شد.",
|
||||
OrderId = order.Id,
|
||||
TransactionId = transaction.Id,
|
||||
Amount = SystemConstants.BasePackageAmount
|
||||
Amount = package.Price
|
||||
};
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
+13
-5
@@ -128,12 +128,20 @@ public class VerifyBasePackagePaymentCommandHandler : IRequestHandler<VerifyBase
|
||||
await _context.SaveChangesAsync(cancellationToken);
|
||||
}
|
||||
|
||||
// 5.5. بارگذاری پکیج از سفارش
|
||||
var package = order.PackageId.HasValue
|
||||
? await _context.Packages.FirstOrDefaultAsync(p => p.Id == order.PackageId.Value, cancellationToken)
|
||||
: await _context.Packages.FirstOrDefaultAsync(p => p.IsBasePackage && !p.IsDeleted, cancellationToken);
|
||||
|
||||
if (package == null)
|
||||
throw new NotFoundException("پکیج یافت نشد");
|
||||
|
||||
// 6. شارژ کیف پول (هم Balance و هم DiscountBalance)
|
||||
var oldBalance = userWallet.Balance;
|
||||
var oldDiscountBalance = userWallet.DiscountBalance;
|
||||
|
||||
userWallet.Balance += SystemConstants.BasePackageAmount;
|
||||
userWallet.DiscountBalance += SystemConstants.BasePackageAmount * 2;
|
||||
userWallet.Balance += package.Price;
|
||||
userWallet.DiscountBalance += (long)(package.Price * package.DiscountMultiplier);
|
||||
|
||||
_logger.LogInformation(
|
||||
"Charging wallet for user {UserId}. Balance: {OldBalance} -> {NewBalance}, DiscountBalance: {OldDiscount} -> {NewDiscount}",
|
||||
@@ -153,11 +161,11 @@ public class VerifyBasePackagePaymentCommandHandler : IRequestHandler<VerifyBase
|
||||
{
|
||||
WalletId = userWallet.Id,
|
||||
CurrentBalance = userWallet.Balance,
|
||||
ChangeValue = SystemConstants.BasePackageAmount,
|
||||
ChangeValue = package.Price,
|
||||
CurrentNetworkBalance = userWallet.NetworkBalance,
|
||||
ChangeNerworkValue = 0,
|
||||
CurrentDiscountBalance = userWallet.DiscountBalance,
|
||||
ChangeDiscountValue = SystemConstants.BasePackageAmount * 2,
|
||||
ChangeDiscountValue = (long)(package.Price * package.DiscountMultiplier),
|
||||
IsIncrease = true,
|
||||
RefrenceId = transaction.Id
|
||||
};
|
||||
@@ -173,7 +181,7 @@ public class VerifyBasePackagePaymentCommandHandler : IRequestHandler<VerifyBase
|
||||
PackageId = order.PackageId.Value,
|
||||
PurchaseMethod = PackagePurchaseMethod.DirectPurchase,
|
||||
PurchasedAt = DateTime.Now,
|
||||
Amount = SystemConstants.BasePackageAmount,
|
||||
Amount = package.Price,
|
||||
OrderId = order.Id,
|
||||
TransactionId = transaction.Id
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user