This commit is contained in:
2026-06-22 12:06:16 +08:00
parent e2b224e993
commit 4b38840fd7

View File

@@ -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)
}