fix(order): 修复订单处理流程中的状态判断和响应逻辑
- 调整订单状态处理分支,优化标记和返回流程,避免继续执行 - 统一成功失败响应写入,确保逻辑清晰明确 - 删除无用的中断运行调用,简化控制流 fix(otelTrace): 修正span添加链接的方法调用错误 - 修复链路追踪中向span添加上游span信息的方法调用 - 使追踪链路信息更加准确,增强监控追踪能力 test(order): 更新订单请求测试用例数据和验证逻辑 - 修改CreatedOrder测试结构体字段数据 - 更新签名验证调用参数,提高测试准确性 - 添加测试结果日志输出,方便调试和验证
This commit is contained in:
@@ -133,36 +133,37 @@ func (c *OrderController) OrderUpdate() {
|
||||
|
||||
if orderInfo.BankOrderId == "" {
|
||||
otelTrace.Logger.WithContext(ctx).Error(fmt.Sprintf("该订单不存在, bankOrderId = %s", bankOrderId), zap.String("bankOrderId", bankOrderId))
|
||||
} else {
|
||||
switch solveType {
|
||||
case config.SUCCESS:
|
||||
flag = service.SolvePaySuccess(ctx, bankOrderId, orderInfo.FactAmount, orderInfo.BankTransId, "手动修正至成功")
|
||||
case config.FAIL:
|
||||
flag = service.SolvePayFail(ctx, bankOrderId, orderInfo.BankTransId, "手动修正至失败")
|
||||
case config.FREEZE_AMOUNT:
|
||||
// 将这笔订单进行冻结
|
||||
flag = service.SolveOrderFreeze(ctx, bankOrderId)
|
||||
case config.UNFREEZE_AMOUNT:
|
||||
// 将这笔订单金额解冻
|
||||
flag = service.SolveOrderUnfreeze(ctx, bankOrderId)
|
||||
case config.REFUND:
|
||||
if orderInfo.Status == config.SUCCESS {
|
||||
flag = service.SolveRefund(ctx, bankOrderId)
|
||||
}
|
||||
case config.ORDERROLL:
|
||||
if orderInfo.Status == config.SUCCESS {
|
||||
flag = service.SolveOrderRoll(ctx, bankOrderId)
|
||||
}
|
||||
default:
|
||||
otelTrace.Logger.WithContext(ctx).Error("不存在这样的处理类型")
|
||||
}
|
||||
if flag {
|
||||
c.Ctx.WriteString(config.SUCCESS)
|
||||
} else {
|
||||
c.Ctx.WriteString(config.FAIL)
|
||||
}
|
||||
c.Ctx.WriteString(config.FAIL)
|
||||
return
|
||||
}
|
||||
c.StopRun()
|
||||
switch solveType {
|
||||
case config.SUCCESS:
|
||||
flag = service.SolvePaySuccess(ctx, bankOrderId, orderInfo.FactAmount, orderInfo.BankTransId, "手动修正至成功")
|
||||
case config.FAIL:
|
||||
flag = service.SolvePayFail(ctx, bankOrderId, orderInfo.BankTransId, "手动修正至失败")
|
||||
case config.FREEZE_AMOUNT:
|
||||
// 将这笔订单进行冻结
|
||||
flag = service.SolveOrderFreeze(ctx, bankOrderId)
|
||||
case config.UNFREEZE_AMOUNT:
|
||||
// 将这笔订单金额解冻
|
||||
flag = service.SolveOrderUnfreeze(ctx, bankOrderId)
|
||||
case config.REFUND:
|
||||
if orderInfo.Status == config.SUCCESS {
|
||||
flag = service.SolveRefund(ctx, bankOrderId)
|
||||
}
|
||||
case config.ORDERROLL:
|
||||
if orderInfo.Status == config.SUCCESS {
|
||||
flag = service.SolveOrderRoll(ctx, bankOrderId)
|
||||
}
|
||||
default:
|
||||
otelTrace.Logger.WithContext(ctx).Error("不存在这样的处理类型")
|
||||
}
|
||||
if flag {
|
||||
c.Ctx.WriteString(config.SUCCESS)
|
||||
return
|
||||
}
|
||||
c.Ctx.WriteString(config.SUCCESS)
|
||||
|
||||
}
|
||||
|
||||
func (c *OrderController) MerchantQuery() {
|
||||
|
||||
@@ -52,12 +52,12 @@ func Middleware(ctx *beecontext.Context, next web.FilterFunc) {
|
||||
attribute.String("peer.hostname", req.Host),
|
||||
attribute.String("net.peer.ip", getClientIP(req)),
|
||||
),
|
||||
trace.WithSpanKind(trace.SpanKindServer),
|
||||
trace.WithNewRoot(),
|
||||
trace.WithSpanKind(trace.SpanKindServer),
|
||||
)
|
||||
if parentSpan.IsRecording() && parentSpan.SpanContext().IsSampled() {
|
||||
// 添加上游span信息
|
||||
trace.WithLinks(trace.LinkFromContext(parentCtx))
|
||||
span.AddLink(trace.LinkFromContext(parentCtx))
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -8,15 +8,16 @@ import (
|
||||
|
||||
func TestCreatedOrder_ToMap(t *testing.T) {
|
||||
createdOrder := CreatedOrder{
|
||||
PayKey: "kkkkd3n2pdl6if8s73ade640",
|
||||
OrderNo: "20251024195014818049",
|
||||
PayKey: "kkkkd4im37aj2ddc73993b1g",
|
||||
OrderNo: "JQ20251125225222357563",
|
||||
OrderPrice: 100.00,
|
||||
OrderPeriod: 24,
|
||||
NotifyUrl: "http://www.baidu.com",
|
||||
Sign: "6cf522a960f72b7e15abca0944e66aee",
|
||||
ProductCode: "2001",
|
||||
Timestamp: 1761306614,
|
||||
NotifyUrl: "https://api.risepayment888.com/pay/force/notify/code/JQ109",
|
||||
Sign: "fc2276d4d469680834646a5a5770ed0f",
|
||||
ProductCode: "8546",
|
||||
Timestamp: 1764082342045,
|
||||
}
|
||||
createdOrder.ToMap()
|
||||
utils.Md5MFVerify(context.Background(), createdOrder.ToMap(), "ssssd3n2pdl6if8s73ade64g")
|
||||
result := utils.Md5MFVerify(context.Background(), createdOrder.ToMap(), "ssssd4im37aj2ddc73993b20")
|
||||
t.Log(result)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user