修复相关BUG + 增加单元测试, 覆盖率100%
This commit is contained in:
		
							
								
								
									
										50
									
								
								data_type.go
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								data_type.go
									
									
									
									
									
								
							@ -14,12 +14,12 @@ package consts
 | 
			
		||||
// Date : 14:10 2024/11/25
 | 
			
		||||
type DataType string
 | 
			
		||||
 | 
			
		||||
func (df *DataType) String() string {
 | 
			
		||||
	return string(*df)
 | 
			
		||||
func (df DataType) String() string {
 | 
			
		||||
	return string(df)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (df *DataType) MarshalJSON() ([]byte, error) {
 | 
			
		||||
	return []byte(df.String()), nil
 | 
			
		||||
func (df DataType) MarshalJSON() ([]byte, error) {
 | 
			
		||||
	return []byte(`"` + df.String() + `"`), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsValid 判断枚举值是否有效
 | 
			
		||||
@ -27,9 +27,9 @@ func (df *DataType) MarshalJSON() ([]byte, error) {
 | 
			
		||||
// Author : go_developer@163.com<白茶清欢>
 | 
			
		||||
//
 | 
			
		||||
// Date : 14:45 2024/11/25
 | 
			
		||||
func (df *DataType) IsValid() bool {
 | 
			
		||||
func (df DataType) IsValid() bool {
 | 
			
		||||
	for _, item := range DataTypeList {
 | 
			
		||||
		if item.Value == *df {
 | 
			
		||||
		if item.Value == df || item.Value.String() == df.String() {
 | 
			
		||||
			return true
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
@ -369,49 +369,49 @@ func GetDataTypeDefaultValue(dataType DataType) any {
 | 
			
		||||
	case DataTypeBoolPtr:
 | 
			
		||||
		return new(bool)
 | 
			
		||||
	case DataTypeMapStrAny:
 | 
			
		||||
		return new(map[string]any)
 | 
			
		||||
		return map[string]any{}
 | 
			
		||||
	case DataTypeMapAnyAny:
 | 
			
		||||
		return new(map[any]any)
 | 
			
		||||
		return map[any]any{}
 | 
			
		||||
	case DataTypeMapStrBool:
 | 
			
		||||
		return new(map[string]bool)
 | 
			
		||||
		return map[string]bool{}
 | 
			
		||||
	case DataTypeMapStrInt:
 | 
			
		||||
		return new(map[string]int)
 | 
			
		||||
		return map[string]int{}
 | 
			
		||||
	case DataTypeMapStrFloat:
 | 
			
		||||
		return new(map[string]float64)
 | 
			
		||||
		return map[string]float64{}
 | 
			
		||||
	case DataTypeMapStrUint:
 | 
			
		||||
		return new(map[string]uint)
 | 
			
		||||
		return map[string]uint{}
 | 
			
		||||
	case DataTypeMapStrSlice:
 | 
			
		||||
		return new(map[string][]any)
 | 
			
		||||
		return map[string][]any{}
 | 
			
		||||
	case DataTypeMapStrStr:
 | 
			
		||||
		return new(map[string]string)
 | 
			
		||||
		return map[string]string{}
 | 
			
		||||
	case DataTypeSliceAny:
 | 
			
		||||
		return new([]any)
 | 
			
		||||
		return []any{}
 | 
			
		||||
	case DataTypeSliceString:
 | 
			
		||||
		return new([]string)
 | 
			
		||||
		return []string{}
 | 
			
		||||
	case DataTypeSliceBool:
 | 
			
		||||
		return new([]bool)
 | 
			
		||||
		return []bool{}
 | 
			
		||||
	case DataTypeSliceInt:
 | 
			
		||||
		return new([]int)
 | 
			
		||||
		return []int{}
 | 
			
		||||
	case DataTypeSliceUint:
 | 
			
		||||
		return new([]uint)
 | 
			
		||||
		return []uint{}
 | 
			
		||||
	case DataTypeSliceFloat:
 | 
			
		||||
		return new([]float64)
 | 
			
		||||
		return []float64{}
 | 
			
		||||
	case DataTypeSliceMapAnyAny:
 | 
			
		||||
		// map[any]any 序列化会有问题,当做 map[string]any 处理
 | 
			
		||||
		return new([]map[string]any)
 | 
			
		||||
		return []map[string]any{}
 | 
			
		||||
	case DataTypeSliceMapStringAny:
 | 
			
		||||
		return new([]map[string]any)
 | 
			
		||||
		return []map[string]any{}
 | 
			
		||||
	default:
 | 
			
		||||
		// 序列化之后的map
 | 
			
		||||
		for _, dataTypeItem := range DataTypeMapMarshal {
 | 
			
		||||
			if dataTypeItem == dataType {
 | 
			
		||||
				return ""
 | 
			
		||||
				return "{}"
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		// 序列化之后的slice
 | 
			
		||||
		for _, dataTypeItem := range DataTypeSliceMarshal {
 | 
			
		||||
			if dataTypeItem == dataType {
 | 
			
		||||
				return ""
 | 
			
		||||
				return "[]"
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		// 指定分隔符分割的slice
 | 
			
		||||
@ -423,7 +423,7 @@ func GetDataTypeDefaultValue(dataType DataType) any {
 | 
			
		||||
		// 未枚举的slice类型用any接收
 | 
			
		||||
		for _, dataTypeItem := range DataTypeSlice {
 | 
			
		||||
			if dataTypeItem == dataType {
 | 
			
		||||
				return new([]any)
 | 
			
		||||
				return []any{}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user