f
This commit is contained in:
@@ -3862,40 +3862,63 @@ func buildLeasingRiskAssessment(apiData map[string]interface{}, log *zap.Logger)
|
||||
assessment[fieldNameNight] = fmt.Sprintf("%s/%s", idNightAllnum, cellNightAllnum)
|
||||
}
|
||||
|
||||
// 判断风险标识:如果有申请记录,设置为高风险
|
||||
hasApplication := false
|
||||
for _, apiPeriod := range periodMap {
|
||||
fieldName := fmt.Sprintf("alc_%s_id_allnum", apiPeriod)
|
||||
// 尝试多种类型:string、int、float64
|
||||
if allnum, ok := jrzq1d09Map[fieldName].(string); ok && allnum != "" && allnum != "0" {
|
||||
hasApplication = true
|
||||
break
|
||||
} else if allnum, ok := jrzq1d09Map[fieldName].(int); ok && allnum > 0 {
|
||||
hasApplication = true
|
||||
break
|
||||
} else if allnum, ok := jrzq1d09Map[fieldName].(float64); ok && allnum > 0 {
|
||||
hasApplication = true
|
||||
break
|
||||
}
|
||||
// 也检查cell字段
|
||||
fieldNameCell := fmt.Sprintf("alc_%s_cell_allnum", apiPeriod)
|
||||
if allnum, ok := jrzq1d09Map[fieldNameCell].(string); ok && allnum != "" && allnum != "0" {
|
||||
hasApplication = true
|
||||
break
|
||||
} else if allnum, ok := jrzq1d09Map[fieldNameCell].(int); ok && allnum > 0 {
|
||||
hasApplication = true
|
||||
break
|
||||
} else if allnum, ok := jrzq1d09Map[fieldNameCell].(float64); ok && allnum > 0 {
|
||||
hasApplication = true
|
||||
break
|
||||
// 仅使用近12月(Last12,对应 m12)的总次数作为判断依据,
|
||||
// 因为近3月等短周期已经被近12月统计包含,避免重复放大
|
||||
totalCount := 0
|
||||
|
||||
idKey12 := "alc_m12_id_allnum"
|
||||
cellKey12 := "alc_m12_cell_allnum"
|
||||
|
||||
// 身份证维度(近12月)
|
||||
if v, ok := jrzq1d09Map[idKey12]; ok {
|
||||
switch vv := v.(type) {
|
||||
case string:
|
||||
if vv != "" && vv != "0" {
|
||||
if parsed, err := strconv.Atoi(vv); err == nil {
|
||||
totalCount += parsed
|
||||
}
|
||||
}
|
||||
case float64:
|
||||
if vv > 0 {
|
||||
totalCount += int(vv)
|
||||
}
|
||||
case int:
|
||||
if vv > 0 {
|
||||
totalCount += vv
|
||||
}
|
||||
}
|
||||
}
|
||||
// 风险标识:如果有申请记录,风险较高;如果没有申请记录,风险较低
|
||||
// 注意:riskFlag的值:0=未查得,1=低风险,2=高风险
|
||||
if hasApplication {
|
||||
assessment["riskFlag"] = 2 // 有申请记录,风险较高
|
||||
|
||||
// 手机号维度(近12月)
|
||||
if v, ok := jrzq1d09Map[cellKey12]; ok {
|
||||
switch vv := v.(type) {
|
||||
case string:
|
||||
if vv != "" && vv != "0" {
|
||||
if parsed, err := strconv.Atoi(vv); err == nil {
|
||||
totalCount += parsed
|
||||
}
|
||||
}
|
||||
case float64:
|
||||
if vv > 0 {
|
||||
totalCount += int(vv)
|
||||
}
|
||||
case int:
|
||||
if vv > 0 {
|
||||
totalCount += vv
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 根据近12月总申请次数设置风险标识:
|
||||
// - totalCount == 0 -> 0 无风险 / 未查得
|
||||
// - 0 < totalCount <= 10 -> 2 低风险(有少量租赁申请)
|
||||
// - totalCount > 10 -> 1 高风险(租赁申请很多)
|
||||
if totalCount == 0 {
|
||||
assessment["riskFlag"] = 0
|
||||
} else if totalCount <= 10 {
|
||||
assessment["riskFlag"] = 2
|
||||
} else {
|
||||
assessment["riskFlag"] = 1 // 无申请记录,风险较低
|
||||
assessment["riskFlag"] = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user