重构日志与可观测性体系
新增单行文本编码器与结构化 GORM 日志,统一错误记录与请求日志策略,收紧日志文件权限并修复按天切分与压缩,支付回调参数脱敏,生产强制阿里云短信,RequestID 校验防注入,日志文案中文化。
This commit is contained in:
@@ -31,7 +31,7 @@ func (r *Repository) StartRefund(ctx context.Context, orderID uint64, refundAmou
|
||||
if existing {
|
||||
latest, syncErr := r.syncRefundPayment(ctx, refundOrder, refundOrder.Status != "refunded")
|
||||
if syncErr != nil {
|
||||
r.log().Warn("payment existing refund sync failed", paymentLogFields(ctx, appendFields(
|
||||
r.log().Warn("已有退款单同步失败", paymentLogFields(ctx, appendFields(
|
||||
paymentOrderFields(refundOrder),
|
||||
[]zap.Field{zap.String("biz_type", bizType), zap.Error(syncErr)},
|
||||
)...,
|
||||
@@ -65,19 +65,9 @@ func (r *Repository) StartRefund(ctx context.Context, orderID uint64, refundAmou
|
||||
return &dto, nil
|
||||
}
|
||||
|
||||
r.log().Info("payment refund start", paymentLogFields(ctx, appendFields(
|
||||
paymentOrderFields(refundOrder),
|
||||
runtimeConfigFields(runtimeConfig),
|
||||
[]zap.Field{
|
||||
zap.String("merchant_refund_id", refundOrder.ThirdOrderID),
|
||||
zap.String("origin_third_order_id", originalPayment.ThirdOrderID),
|
||||
zap.String("origin_provider_order_id", refundOriginProviderOrderID(originalPayment)),
|
||||
},
|
||||
)...,
|
||||
)...)
|
||||
r.recordConfigUsage(ctx, runtimeConfig, refundOrder)
|
||||
if err := r.markOrderRefunding(ctx, orderID, refundAmountCent); err != nil {
|
||||
r.log().Warn("payment mark order refunding failed", paymentLogFields(ctx,
|
||||
r.log().Warn("订单退款状态更新失败", paymentLogFields(ctx,
|
||||
zap.Uint64("order_id", orderID),
|
||||
zap.Int64("refund_amount_cent", refundAmountCent),
|
||||
zap.Error(err),
|
||||
@@ -86,7 +76,7 @@ func (r *Repository) StartRefund(ctx context.Context, orderID uint64, refundAmou
|
||||
|
||||
if runtimeConfig.Channel == nil {
|
||||
if err := r.markRefundFailed(ctx, refundOrder.ID, orderID, refundAmountCent, map[string]string{"error": "payment channel unavailable"}, nil); err != nil {
|
||||
r.log().Warn("payment mark refund failed status failed", paymentLogFields(ctx, appendFields(
|
||||
r.log().Warn("退款失败状态保存失败", paymentLogFields(ctx, appendFields(
|
||||
paymentOrderFields(refundOrder),
|
||||
[]zap.Field{zap.Error(err)},
|
||||
)...,
|
||||
@@ -109,13 +99,13 @@ func (r *Repository) StartRefund(ctx context.Context, orderID uint64, refundAmou
|
||||
rawRequest = resp.RawRequest
|
||||
}
|
||||
if markErr := r.markRefundFailed(ctx, refundOrder.ID, orderID, refundAmountCent, map[string]string{"error": err.Error()}, rawRequest); markErr != nil {
|
||||
r.log().Warn("payment mark refund failed status failed", paymentLogFields(ctx, appendFields(
|
||||
r.log().Warn("退款失败状态保存失败", paymentLogFields(ctx, appendFields(
|
||||
paymentOrderFields(refundOrder),
|
||||
[]zap.Field{zap.Error(markErr)},
|
||||
)...,
|
||||
)...)
|
||||
}
|
||||
r.log().Warn("payment refund request failed", paymentLogFields(ctx, appendFields(
|
||||
r.log().Warn("退款渠道请求失败", paymentLogFields(ctx, appendFields(
|
||||
paymentOrderFields(refundOrder),
|
||||
runtimeConfigFields(runtimeConfig),
|
||||
[]zap.Field{zap.Error(err)},
|
||||
@@ -125,13 +115,13 @@ func (r *Repository) StartRefund(ctx context.Context, orderID uint64, refundAmou
|
||||
}
|
||||
if !resp.OK {
|
||||
if markErr := r.markRefundFailed(ctx, refundOrder.ID, orderID, refundAmountCent, resp.Raw, resp.RawRequest); markErr != nil {
|
||||
r.log().Warn("payment mark refund rejected status failed", paymentLogFields(ctx, appendFields(
|
||||
r.log().Warn("退款拒绝状态保存失败", paymentLogFields(ctx, appendFields(
|
||||
paymentOrderFields(refundOrder),
|
||||
[]zap.Field{zap.Error(markErr)},
|
||||
)...,
|
||||
)...)
|
||||
}
|
||||
r.log().Warn("payment refund rejected", paymentLogFields(ctx, appendFields(
|
||||
r.log().Warn("退款被渠道拒绝", paymentLogFields(ctx, appendFields(
|
||||
paymentOrderFields(refundOrder),
|
||||
runtimeConfigFields(runtimeConfig),
|
||||
[]zap.Field{
|
||||
@@ -153,7 +143,7 @@ func (r *Repository) StartRefund(ctx context.Context, orderID uint64, refundAmou
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
r.log().Info("payment refund result", paymentLogFields(ctx, appendFields(
|
||||
r.log().Info("退款提交完成", paymentLogFields(ctx, appendFields(
|
||||
paymentOrderFields(refundOrder),
|
||||
runtimeConfigFields(runtimeConfig),
|
||||
[]zap.Field{
|
||||
@@ -308,7 +298,7 @@ func (r *Repository) syncRefundPayment(ctx context.Context, payment *model.Payme
|
||||
if err != nil {
|
||||
if resp != nil && resp.RawRequest != nil {
|
||||
if updateErr := r.updateRefundRawRequest(ctx, payment.ID, resp.RawRequest); updateErr != nil {
|
||||
r.log().Warn("payment refund query raw request update failed", paymentLogFields(ctx, appendFields(
|
||||
r.log().Warn("退款查询诊断保存失败", paymentLogFields(ctx, appendFields(
|
||||
paymentOrderFields(payment),
|
||||
[]zap.Field{zap.Error(updateErr)},
|
||||
)...,
|
||||
|
||||
Reference in New Issue
Block a user