package main import ( util "jygit.jydev.jianyu360.cn/data_processing/common_utils" "reflect" "strings" "unicode/utf8" ) // @Description 字段验证、处理 // @Author J 2022/10/8 17:16 func verifyF(f string, v interface{}, tmp1 interface{}) (interface{}, bool) { tmp := tmp1.(map[string]interface{}) stype := util.ObjToString(tmp["stype"]) vt := reflect.TypeOf(v).String() if strings.Contains(vt, stype) { switch stype { case "string": v1 := util.ObjToString(v) lens := util.IntAll(tmp["length"]) if tmp["intercept"].(bool) { if utf8.RuneCountInString(v1) > lens { return string(([]rune(v1))[:lens]), true } else { return v1, false } } else { if utf8.RuneCountInString(v1) > lens { return "", true } else { return v1, false } } case "float": v1 := util.Float64All(v) min := util.Float64All(tmp["mix"]) max := util.Float64All(tmp["max"]) if min != 0 && v1 < min { return nil, true } if max != 0 && v1 >= max { return nil, true } dm := util.IntAll(tmp["decimal"]) //小数点位数 v2, err := util.FormatFloat(v1, dm) if err != nil { return nil, true } return v2, false default: break } } return nil, true }