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:
+10
-1
@@ -76,8 +76,17 @@ public class ChargeMagicWalletCommandHandler
|
||||
);
|
||||
}
|
||||
|
||||
// 3.5. بارگذاری پکیج کاربر برای سقف کیفپول جادویی
|
||||
var currentCycle = await _context.ClubMembershipCycles
|
||||
.FirstOrDefaultAsync(c => c.UserId == request.UserId && c.IsCurrentCycle, cancellationToken);
|
||||
var package = currentCycle != null
|
||||
? await _context.Packages.FirstOrDefaultAsync(p => p.Id == currentCycle.PackageId, cancellationToken)
|
||||
: await _context.Packages.FirstOrDefaultAsync(p => p.IsBasePackage && !p.IsDeleted, cancellationToken);
|
||||
if (package == null)
|
||||
throw new NotFoundException("پکیج یافت نشد");
|
||||
|
||||
// 4. بررسی سقف واریزی (per-cycle)
|
||||
var remainingDeposit = SystemConstants.MagicWalletMaxDeposit - wallet.MagicTotalDeposited;
|
||||
var remainingDeposit = package.MagicWalletMaxDeposit - wallet.MagicTotalDeposited;
|
||||
|
||||
if (remainingDeposit <= 0)
|
||||
{
|
||||
|
||||
+14
-5
@@ -121,8 +121,17 @@ public class VerifyMagicWalletChargeCommandHandler
|
||||
throw new BadRequestException("کیفپول در حالت جادویی نیست");
|
||||
}
|
||||
|
||||
// 5. محاسبه اعتبار ×2.5
|
||||
var creditAmount = (long)(depositAmount * SystemConstants.MagicWalletMultiplier); // مبلغ × 2.5
|
||||
// 4.5. بارگذاری پکیج کاربر برای ضریب جادویی
|
||||
var currentCycle = await _context.ClubMembershipCycles
|
||||
.FirstOrDefaultAsync(c => c.UserId == userId && c.IsCurrentCycle, cancellationToken);
|
||||
var package = currentCycle != null
|
||||
? await _context.Packages.FirstOrDefaultAsync(p => p.Id == currentCycle.PackageId, cancellationToken)
|
||||
: await _context.Packages.FirstOrDefaultAsync(p => p.IsBasePackage && !p.IsDeleted, cancellationToken);
|
||||
if (package == null)
|
||||
throw new NotFoundException("پکیج یافت نشد");
|
||||
|
||||
// 5. محاسبه اعتبار
|
||||
var creditAmount = (long)(depositAmount * package.MagicWalletMultiplier); // مبلغ × 2.5
|
||||
var bonusAmount = creditAmount - depositAmount; // بونوس = مبلغ × 1.5
|
||||
|
||||
// 6. ثبت تراکنش واریز واقعی (MagicWalletDeposit)
|
||||
@@ -143,7 +152,7 @@ public class VerifyMagicWalletChargeCommandHandler
|
||||
var bonusTransaction = new Transaction
|
||||
{
|
||||
Amount = bonusAmount,
|
||||
Description = $"شارژ کیفپول جادویی - بونوس ×{SystemConstants.MagicWalletMultiplier - 1} - کاربر {userId}",
|
||||
Description = $"شارژ کیفپول جادویی - بونوس ×{package.MagicWalletMultiplier - 1} - کاربر {userId}",
|
||||
PaymentStatus = PaymentStatus.Success,
|
||||
PaymentDate = DateTime.UtcNow,
|
||||
RefId = $"MAGIC_BONUS_{depositTransaction.Id}",
|
||||
@@ -186,10 +195,10 @@ public class VerifyMagicWalletChargeCommandHandler
|
||||
userId,
|
||||
depositAmount,
|
||||
creditAmount,
|
||||
SystemConstants.MagicWalletMultiplier,
|
||||
package.MagicWalletMultiplier,
|
||||
bonusAmount,
|
||||
wallet.MagicTotalDeposited,
|
||||
SystemConstants.MagicWalletMaxDeposit,
|
||||
package.MagicWalletMaxDeposit,
|
||||
wallet.Balance
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user