🐛 Fix award handler

This commit is contained in:
2025-09-23 23:05:41 +08:00
parent 3b3287db0b
commit 82bf1608fd

View File

@@ -71,25 +71,25 @@ public class BroadcastEventHandler(
switch (evt.ProductIdentifier) switch (evt.ProductIdentifier)
{ {
case "posts.award": case "posts.award":
{ {
var awardEvt = JsonSerializer.Deserialize<PaymentOrderAwardEvent>(msg.Data); var awardEvt = JsonSerializer.Deserialize<PaymentOrderAwardEvent>(msg.Data, GrpcTypeHelper.SerializerOptions);
if (awardEvt?.Meta == null) throw new ArgumentNullException(nameof(awardEvt)); if (awardEvt?.Meta == null) throw new ArgumentNullException(nameof(awardEvt));
var meta = awardEvt.Meta; var meta = awardEvt.Meta;
logger.LogInformation("Handling post award order: {OrderId}", evt.OrderId); logger.LogInformation("Handling post award order: {OrderId}", evt.OrderId);
await using var scope = serviceProvider.CreateAsyncScope(); await using var scope = serviceProvider.CreateAsyncScope();
var ps = scope.ServiceProvider.GetRequiredService<PostService>(); var ps = scope.ServiceProvider.GetRequiredService<PostService>();
var amountNum = decimal.Parse(meta.Amount); var amountNum = decimal.Parse(meta.Amount);
await ps.AwardPost(meta.PostId, meta.AccountId, amountNum, meta.Attitude, meta.Message); await ps.AwardPost(meta.PostId, meta.AccountId, amountNum, meta.Attitude, meta.Message);
logger.LogInformation("Post award for order {OrderId} handled successfully.", evt.OrderId); logger.LogInformation("Post award for order {OrderId} handled successfully.", evt.OrderId);
await msg.AckAsync(cancellationToken: stoppingToken); await msg.AckAsync(cancellationToken: stoppingToken);
break; break;
} }
default: default:
await msg.NakAsync(cancellationToken: stoppingToken); await msg.NakAsync(cancellationToken: stoppingToken);
break; break;
@@ -177,7 +177,7 @@ public class BroadcastEventHandler(
WebSocketPacketEvent.SubjectPrefix + "sphere", cancellationToken: stoppingToken)) WebSocketPacketEvent.SubjectPrefix + "sphere", cancellationToken: stoppingToken))
{ {
logger.LogDebug("Handling websocket packet..."); logger.LogDebug("Handling websocket packet...");
try try
{ {
var evt = JsonSerializer.Deserialize<WebSocketPacketEvent>(msg.Data, GrpcTypeHelper.SerializerOptions); var evt = JsonSerializer.Deserialize<WebSocketPacketEvent>(msg.Data, GrpcTypeHelper.SerializerOptions);
@@ -290,4 +290,4 @@ public class BroadcastEventHandler(
}.ToProtoValue() }.ToProtoValue()
}); });
} }
} }