升级类型枚举

This commit is contained in:
2024-06-08 20:17:14 +08:00
parent 45b7aea925
commit cd52bbb02b
3 changed files with 32 additions and 42 deletions

View File

@ -10,6 +10,7 @@ package filter
import (
"encoding/json"
"fmt"
"git.zhangdeman.cn/zhangdeman/consts"
"git.zhangdeman.cn/zhangdeman/wrapper"
"strings"
@ -184,48 +185,33 @@ func (f *filter) getValue(dataType string, sourceValue gjson.Result, defaultValu
strVal := wrapper.String(sourceValueStr)
switch dataType {
case wrapper.DataTypeInt8:
return strVal.ToInt8().Value, strVal.ToInt8().Err
case wrapper.DataTypeInt16:
return strVal.ToInt16().Value, strVal.ToInt16().Err
case wrapper.DataTypeInt32:
return strVal.ToInt32().Value, strVal.ToInt32().Err
case wrapper.DataTypeInt64:
return strVal.ToInt64().Value, strVal.ToInt64().Err
case wrapper.DataTypeInt:
return strVal.ToInt().Value, strVal.ToInt().Err
case wrapper.DataTypeUint8:
return strVal.ToUint8().Value, strVal.ToUint8().Err
case wrapper.DataTypeUint16:
return strVal.ToUint16().Value, strVal.ToUint16().Err
case wrapper.DataTypeUint32:
return strVal.ToUint32().Value, strVal.ToUint32().Err
case wrapper.DataTypeUint64:
return strVal.ToUint64().Value, strVal.ToUint64().Err
case wrapper.DataTypeUint:
return strVal.ToUint().Value, strVal.ToUint().Err
case wrapper.DataTypeBool:
return strVal.ToBool().Value, strVal.ToBool().Err
case wrapper.DataTypeFloat32:
return strVal.ToFloat64().Value, strVal.ToFloat64().Err
case wrapper.DataTypeFloat64:
fallthrough
case wrapper.DataTypeFloat:
fallthrough
case wrapper.DataTypeDouble:
return strVal.ToFloat64().Value, strVal.ToFloat64().Err
case wrapper.DataTypeNumber:
return strVal.ToNumber().Value, strVal.ToNumber().Err
case wrapper.DataTypeString:
return sourceValueStr, nil
case wrapper.DataTypeAny:
return sourceValue.Value(), nil
case wrapper.DataTypeAnySlice:
case consts.DataTypeInt:
intVal := strVal.ToInt()
return intVal.Value, intVal.Err
case consts.DataTypeUint:
uintVal := strVal.ToUint64()
return uintVal.Value, uintVal.Err
case consts.DataTypeBool:
boolVal := strVal.ToBool()
return boolVal.Value, boolVal.Err
case consts.DataTypeFloat:
floatVal := strVal.ToFloat64()
return floatVal.Value, floatVal.Err
case consts.DataTypeString:
return strVal.Value(), nil
case consts.DataTypeAny:
if sourceValue.Exists() {
return sourceValue.Value(), nil
}
return defaultValue, nil
case consts.DataTypeSliceAny:
// 任意类型的list
return strVal.ToAnySlice().Value, strVal.ToAnySlice().Err
case wrapper.DataTypeObject:
sliceVal := strVal.ToAnySlice()
return sliceVal.Value, sliceVal.Err
case consts.DataTypeMapStrAny:
// object
return strVal.ToObject().Value, strVal.ToObject().Err
objectVal := strVal.ToObject()
return objectVal.Value, objectVal.Err
default:
return nil, errors.New(dataType + " is not support!")
}