package dwbg import ( "encoding/json" "strings" "tyapi-server/internal/domains/api/services/processors/flxg" ) // unwrapSinanSubAPIMap 解包子接口响应中常见的 data / result 嵌套层。 func unwrapSinanSubAPIMap(m map[string]interface{}) map[string]interface{} { if m == nil { return nil } if data := asMap(m["data"]); data != nil { return unwrapSinanSubAPIMap(data) } if result := asMap(m["result"]); result != nil && shouldUnwrapResult(m) { return unwrapSinanSubAPIMap(result) } return m } func shouldUnwrapResult(m map[string]interface{}) bool { for _, key := range []string{"level", "riskCode", "judicial_data", "lawsuitStat", "breachCaseList", "consumptionRestrictionList"} { if _, ok := m[key]; ok { return false } } return true } func subAPIPayload(val interface{}) map[string]interface{} { m := asMap(val) if m == nil { if s, ok := val.(string); ok { s = strings.TrimSpace(s) if s != "" && (strings.HasPrefix(s, "{") || strings.HasPrefix(s, "[")) { var parsed map[string]interface{} if json.Unmarshal([]byte(s), &parsed) == nil { m = parsed } } } } if m == nil { return nil } return unwrapSinanSubAPIMap(m) } func flxg7e8fMap(apiData map[string]interface{}) map[string]interface{} { payload := subAPIPayload(getMapValue(apiData, "FLXG7E8F")) if payload == nil { return nil } if jd := asMap(payload["judicial_data"]); jd != nil { return map[string]interface{}{"judicial_data": jd} } if asMap(payload["lawsuitStat"]) != nil || payload["breachCaseList"] != nil || payload["consumptionRestrictionList"] != nil { return map[string]interface{}{"judicial_data": payload} } return payload } func flxgdea9Map(apiData map[string]interface{}) map[string]interface{} { return subAPIPayload(getMapValue(apiData, "FLXGDEA9")) } func flxgdea9Level(apiData map[string]interface{}) string { payload := flxgdea9Map(apiData) if payload == nil { return "" } level := strings.TrimSpace(flxg.LevelFromPayload(payload)) if level == "0" { return "" } return level }