feat: implement user wallet charging and transaction logging for Daya loan processing
This commit is contained in:
+1
-1
@@ -23,5 +23,5 @@ public record GetNetworkTreeQuery : IRequest<NetworkTreeDto?>
|
||||
/// <summary>
|
||||
/// فیلتر براساس شماره هفته فعالسازی (مثال: 2025-W05)
|
||||
/// </summary>
|
||||
public string? ActivationWeekNumber { get; init; }
|
||||
public long? ActivationWeekDefinitionId { get; init; }
|
||||
}
|
||||
|
||||
+21
-18
@@ -42,19 +42,21 @@ public class GetNetworkTreeQueryHandler : IRequestHandler<GetNetworkTreeQuery, N
|
||||
}
|
||||
|
||||
// محاسبه شماره هفته فعالسازی
|
||||
string? activationWeekNumber = null;
|
||||
long? activationWeekDefinitionId = null;
|
||||
string? activationWeekDisplayName = null;
|
||||
bool isActivatedInTargetWeek = false;
|
||||
|
||||
if (user.ClubMembership?.ActivatedAt != null)
|
||||
{
|
||||
activationWeekNumber = CalculateWeekNumber(user.ClubMembership.ActivatedAt.Value);
|
||||
activationWeekDisplayName = _weekDefinitionRepository.GetDisplayNameByGregorianWeekNumber(activationWeekNumber);
|
||||
// activationWeekDefinitionId = CalculateWeekNumber(user.ClubMembership.ActivatedAt.Value);
|
||||
var week = _weekDefinitionRepository.GetWeekByDate(user.ClubMembership.ActivatedAt.Value);
|
||||
activationWeekDefinitionId = week.Id;
|
||||
activationWeekDisplayName = week.DisplayName;
|
||||
|
||||
// بررسی آیا در هفته هدف فعال شده است
|
||||
if (!string.IsNullOrEmpty(request.ActivationWeekNumber))
|
||||
if (request.ActivationWeekDefinitionId!=null)
|
||||
{
|
||||
isActivatedInTargetWeek = activationWeekNumber == request.ActivationWeekNumber;
|
||||
isActivatedInTargetWeek = activationWeekDefinitionId == request.ActivationWeekDefinitionId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,7 +70,7 @@ public class GetNetworkTreeQueryHandler : IRequestHandler<GetNetworkTreeQuery, N
|
||||
CurrentDepth = currentDepth,
|
||||
ClubActivatedAt = user.ClubMembership?.ActivatedAt,
|
||||
IsClubActive = user.ClubMembership?.IsActive ?? false,
|
||||
ActivationWeekNumber = activationWeekNumber,
|
||||
ActivationWeekDefinitionId = activationWeekDefinitionId,
|
||||
ActivationWeekDisplayName = activationWeekDisplayName,
|
||||
IsActivatedInTargetWeek = isActivatedInTargetWeek,
|
||||
UserCreated = user.Created
|
||||
@@ -123,18 +125,19 @@ public class GetNetworkTreeQueryHandler : IRequestHandler<GetNetworkTreeQuery, N
|
||||
/// <summary>
|
||||
/// محاسبه شماره هفته از تاریخ
|
||||
/// </summary>
|
||||
private string CalculateWeekNumber(DateTime date)
|
||||
{
|
||||
// First try to get from repository cache
|
||||
var weekDef = _weekDefinitionRepository.GetWeekByDate(date);
|
||||
if (weekDef != null)
|
||||
{
|
||||
return $"{weekDef.GregorianYear}-W{weekDef.GregorianWeekNumber:D2}";
|
||||
}
|
||||
|
||||
// Fallback: use repository's calculation method
|
||||
return _weekDefinitionRepository.CalculateGregorianWeekNumber(date);
|
||||
}
|
||||
// private long CalculateWeekNumber(DateTime date)
|
||||
// {
|
||||
// // First try to get from repository cache
|
||||
// var weekDef = _weekDefinitionRepository.GetWeekByDate(date);
|
||||
// if (weekDef != null)
|
||||
// {
|
||||
// return weekDef.Id;
|
||||
// }
|
||||
//
|
||||
// // Fallback: use repository's calculation method
|
||||
// // return _weekDefinitionRepository.CalculateGregorianWeekNumber(date);
|
||||
// return 0;
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ public class NetworkTreeDto
|
||||
/// <summary>
|
||||
/// شماره هفته فعالسازی
|
||||
/// </summary>
|
||||
public string? ActivationWeekNumber { get; set; }
|
||||
public long? ActivationWeekDefinitionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام نمایشی هفته فعالسازی (مثل: هفته یکم)
|
||||
|
||||
Reference in New Issue
Block a user