This commit is contained in:
2026-02-12 17:29:03 +08:00
parent 356b422879
commit be6aef3730

View File

@@ -72,6 +72,26 @@ func (l *VehicleCallbackLogic) Handle(r *http.Request) error {
}
l.Infof("tianyuan vehicle callback body received, api_id=%s, order_no=%s, body_len=%d", apiID, orderNo, len(bodyBytes))
// 回调包裹格式通常为 { code:0, msg:\"成功\", order_id:\"...\", data:{...} }
// 这里只把 data 字段提取出来存到 QueryData 里,便于前端直接渲染。
type callbackWrapper struct {
Code json.RawMessage `json:"code"`
Msg json.RawMessage `json:"msg"`
OrderID json.RawMessage `json:"order_id"`
Data json.RawMessage `json:"data"`
Extra map[string]any `json:"-"` // 预留
}
var wrapper callbackWrapper
payload := bodyBytes
if len(bodyBytes) > 0 {
if err := json.Unmarshal(bodyBytes, &wrapper); err != nil {
l.Errorf("tianyuan vehicle callback unmarshal body failed, api_id=%s, order_no=%s, err=%v", apiID, orderNo, err)
} else if len(wrapper.Data) > 0 {
payload = wrapper.Data
l.Infof("tianyuan vehicle callback extracted data field, api_id=%s, order_no=%s, data_len=%d", apiID, orderNo, len(payload))
}
}
// 1. 根据订单号找到订单
order, err := l.svcCtx.OrderModel.FindOneByOrderNo(l.ctx, orderNo)
if err != nil {
@@ -115,7 +135,7 @@ func (l *VehicleCallbackLogic) Handle(r *http.Request) error {
updated := false
for i := range apiList {
if apiList[i].ApiID == apiID {
apiList[i].Data = json.RawMessage(bodyBytes)
apiList[i].Data = json.RawMessage(payload)
apiList[i].Success = true
apiList[i].Timestamp = nowStr
apiList[i].Error = ""
@@ -126,7 +146,7 @@ func (l *VehicleCallbackLogic) Handle(r *http.Request) error {
if !updated {
apiList = append(apiList, service.APIResponseData{
ApiID: apiID,
Data: json.RawMessage(bodyBytes),
Data: json.RawMessage(payload),
Success: true,
Timestamp: nowStr,
})