From 4b38840fd78808b4a9207891f62ddeae4200e0fd Mon Sep 17 00:00:00 2001 From: Mrxs <18278715334@163.com> Date: Mon, 22 Jun 2026 12:06:16 +0800 Subject: [PATCH] add --- .../processors/ivyz/ivyzrax2_transform.go | 38 +++++-------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/internal/domains/api/services/processors/ivyz/ivyzrax2_transform.go b/internal/domains/api/services/processors/ivyz/ivyzrax2_transform.go index fbb770d..ad0f452 100644 --- a/internal/domains/api/services/processors/ivyz/ivyzrax2_transform.go +++ b/internal/domains/api/services/processors/ivyz/ivyzrax2_transform.go @@ -1,45 +1,25 @@ package ivyz import ( - "fmt" "strconv" ) // mapNuoerKunyuFixToResponse 将 nuoer 响应(2json.md)转为对外结构(1json.md): -// 解包 result,将 score 映射为 scoreafywbase。 +// 解包 result,将千分制 score 映射为百分制 scoreafywbase。 func mapNuoerKunyuFixToResponse(data map[string]interface{}) map[string]interface{} { + scoreYwBase, ok := extractRax1Score(data) score := "" - if data != nil { - payload := data - if result, ok := data["result"].(map[string]interface{}); ok { - payload = result - } - if raw, ok := payload["score"]; ok && raw != nil { - score = stringifyKunyuFixScore(raw) - } + if ok { + score = mapScoreYwBaseToPercent(scoreYwBase) } return map[string]interface{}{ "scoreafywbase": score, } } -func stringifyKunyuFixScore(v interface{}) string { - if v == nil { - return "" - } - switch val := v.(type) { - case string: - return val - case float64: - if val == float64(int64(val)) { - return strconv.FormatInt(int64(val), 10) - } - return strconv.FormatFloat(val, 'f', -1, 64) - case int: - return strconv.Itoa(val) - case int64: - return strconv.FormatInt(val, 10) - default: - return fmt.Sprint(val) - } +// mapScoreYwBaseToPercent 千分制 scoreywbase 转百分制 scoreafywbase。 +// 与 mapRax1ScoreToScoreYwBase 互逆:percent = (984 - scoreYwBase) / 6.32。 +func mapScoreYwBaseToPercent(scoreYwBase float64) string { + percent := (rax1ScoreYwBaseIntercept - scoreYwBase) / rax1ScoreYwBaseSlope + return strconv.FormatFloat(percent, 'f', 2, 64) }