refactor(relay): enhance remix logic for billing context extraction

- Updated the remix handling in ResolveOriginTask to prioritize extracting OtherRatios from the BillingContext of the original task if available.
- Retained the previous logic for extracting seconds and size from task data as a fallback.
- Improved clarity and maintainability of the remix logic by separating the new and old approaches.
This commit is contained in:
CaIon
2026-02-22 16:01:19 +08:00
parent 7d5fc3ff51
commit 143b4535b2
+8
View File
@@ -106,6 +106,13 @@ func ResolveOriginTask(c *gin.Context, info *relaycommon.RelayInfo) *dto.TaskErr
// 提取 remix 参数(时长、分辨率 → OtherRatios // 提取 remix 参数(时长、分辨率 → OtherRatios
if info.Action == constant.TaskActionRemix { if info.Action == constant.TaskActionRemix {
if originTask.PrivateData.BillingContext != nil {
// 新的 remix 逻辑:直接从原始任务的 BillingContext 中提取 OtherRatios(如果存在)
for s, f := range originTask.PrivateData.BillingContext.OtherRatios {
info.PriceData.AddOtherRatio(s, f)
}
} else {
// 旧的 remix 逻辑:直接从 task data 解析 seconds 和 size(如果存在)
var taskData map[string]interface{} var taskData map[string]interface{}
_ = common.Unmarshal(originTask.Data, &taskData) _ = common.Unmarshal(originTask.Data, &taskData)
secondsStr, _ := taskData["seconds"].(string) secondsStr, _ := taskData["seconds"].(string)
@@ -123,6 +130,7 @@ func ResolveOriginTask(c *gin.Context, info *relaycommon.RelayInfo) *dto.TaskErr
info.PriceData.OtherRatios["size"] = 1.666667 info.PriceData.OtherRatios["size"] = 1.666667
} }
} }
}
return nil return nil
} }