feat(commission): add BulkCreditPayouts — credit wallets for pending payouts
Build and Deploy to Production / build-and-deploy (push) Has been cancelled
Build and Deploy to Production / build-and-deploy (push) Has been cancelled
- commission.proto: add BulkCreditPayouts rpc + request/response messages; bump version to 0.0.198 - BulkCreditPayoutsCommand + Handler: load all Pending payouts for given week, credit UserWallet.Balance for each user, create UserWalletHistory + CommissionPayoutHistory records, set Status=Paid + PaidAt - CommissionService: wire up BulkCreditPayouts gRPC method - CommissionProfile: add Mapster mappings for request/result ↔ proto types Previously ProcessUserPayouts created records with Status=Pending but never credited wallets, making CustomerWithdrawBalance unreachable (it requires Status==Paid). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System.Linq;
|
||||
using CMSMicroservice.Application.CommissionCQ.Commands.TriggerWeeklyCalculation;
|
||||
using CMSMicroservice.Application.CommissionCQ.Commands.BulkCreditPayouts;
|
||||
using CMSMicroservice.Application.CommissionCQ.Queries.GetAllWeeklyPools;
|
||||
using CMSMicroservice.Application.CommissionCQ.Queries.GetUserWeeklyBalances;
|
||||
using CMSMicroservice.Application.CommissionCQ.Queries.GetMyWeeklyBalances;
|
||||
@@ -20,6 +21,16 @@ public class CommissionProfile : IRegister
|
||||
{
|
||||
public void Register(TypeAdapterConfig config)
|
||||
{
|
||||
// BulkCreditPayouts Request Mapping (proto → command)
|
||||
config.NewConfig<BulkCreditPayoutsRequest, BulkCreditPayoutsCommand>()
|
||||
.Map(dest => dest.WeekDefinitionId, src => src.WeekDefinitionId);
|
||||
|
||||
// BulkCreditPayouts Response Mapping (result → proto)
|
||||
config.NewConfig<BulkCreditPayoutsResult, BulkCreditPayoutsResponse>()
|
||||
.Map(dest => dest.CreditedCount, src => src.CreditedCount)
|
||||
.Map(dest => dest.TotalCredited, src => src.TotalCredited)
|
||||
.Map(dest => dest.Message, src => $"{src.CreditedCount} کاربر، مجموعاً {src.TotalCredited:N0} ریال به کیف پول واریز شد");
|
||||
|
||||
// GetAvailableWeeks Request Mapping
|
||||
config.NewConfig<GetAvailableWeeksRequest, GetAvailableWeeksQuery>()
|
||||
.Map(dest => dest.FutureWeeksCount, src => src.FutureWeeksCount > 0 ? src.FutureWeeksCount : 4)
|
||||
|
||||
Reference in New Issue
Block a user