diff --git a/services/wallet-service/internal/service/wallet/red_packet.go b/services/wallet-service/internal/service/wallet/red_packet.go index c0a482f7..eb622acf 100644 --- a/services/wallet-service/internal/service/wallet/red_packet.go +++ b/services/wallet-service/internal/service/wallet/red_packet.go @@ -127,8 +127,12 @@ func (s *Service) ExpireRedPackets(ctx context.Context, appCode string, batchSiz if s.repository == nil { return ledger.RedPacketExpireResult{}, xerr.New(xerr.Unavailable, "wallet repository is not configured") } - appCode = appcode.Normalize(appCode) - ctx = appcode.WithContext(ctx, appCode) + // 空 app_code 专用于内部 worker 的跨租户扫描;显式 RPC 仍归一化并保持单租户边界。 + appCode = strings.ToLower(strings.TrimSpace(appCode)) + if appCode != "" { + appCode = appcode.Normalize(appCode) + ctx = appcode.WithContext(ctx, appCode) + } return s.repository.ExpireRedPackets(ctx, appCode, batchSize) }