1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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
- }
|