From 0ebec305c464b5e55bb397cc7378d9b7b683cb35 Mon Sep 17 00:00:00 2001 From: Mrxs <18278715334@163.com> Date: Mon, 22 Jun 2026 12:12:01 +0800 Subject: [PATCH] add --- .../processors/ivyz/ivyzrax2_transform.go | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/internal/domains/api/services/processors/ivyz/ivyzrax2_transform.go b/internal/domains/api/services/processors/ivyz/ivyzrax2_transform.go index ad0f452..a5eb0b6 100644 --- a/internal/domains/api/services/processors/ivyz/ivyzrax2_transform.go +++ b/internal/domains/api/services/processors/ivyz/ivyzrax2_transform.go @@ -1,25 +1,33 @@ package ivyz import ( + "math" "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 ok { - score = mapScoreYwBaseToPercent(scoreYwBase) + score = mapScoreYwBaseToRiskPercent(scoreYwBase) } return map[string]interface{}{ "scoreafywbase": score, } } -// 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) +// mapScoreYwBaseToRiskPercent 千分制(越高越安全)→ 百分制风险分(越低越安全)。 +// 与 IVYZRAX1 mapRax1ScoreToScoreYwBase 互逆:thousand = round(984 - risk*6.32)。 +func mapScoreYwBaseToRiskPercent(scoreYwBase float64) string { + // 方向反转:千分越高(越安全)→ 风险百分越低(越安全) + riskPercent := (rax1ScoreYwBaseIntercept - scoreYwBase) / rax1ScoreYwBaseSlope + if riskPercent < 0 { + riskPercent = 0 + } else if riskPercent > 100 { + riskPercent = 100 + } + riskPercent = math.Round(riskPercent*100) / 100 + return strconv.FormatFloat(riskPercent, 'f', 2, 64) }