12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package main
- import (
- "go.mongodb.org/mongo-driver/bson/primitive"
- 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
- }
- func IsMarkInterfaceArr(t interface{}) []string {
- sub_list := []string{}
- if list_3, ok_3 := t.([]string); ok_3 {
- sub_list = list_3
- return sub_list
- }
- if list_1, ok_1 := t.(primitive.A); ok_1 {
- sub_list = util.ObjArrToStringArr(list_1)
- } else {
- if list_2, ok_2 := t.([]interface{}); ok_2 {
- sub_list = util.ObjArrToStringArr(list_2)
- }
- }
- return sub_list
- }
- func IsMarkInterfaceMap(t interface{}) []map[string]interface{} {
- p_list := []map[string]interface{}{}
- if yl_list_1, ok_1 := t.(primitive.A); ok_1 {
- p_list = util.ObjArrToMapArr(yl_list_1)
- } else {
- if yl_list_2, ok_2 := t.([]interface{}); ok_2 {
- p_list = util.ObjArrToMapArr(yl_list_2)
- }
- }
- return p_list
- }
|