yjp 1 år sedan
förälder
incheckning
2bf360fcf2

+ 2 - 3
README.md

@@ -170,7 +170,7 @@ binding是一种机制,围绕应用将API,基础设施以及领域进行绑
 |------------|-----------------------------------------------------------------------------------------------|
 | -          | 忽略该字段,不进行持久化(不对应任何数据库表列)                                                                      |
 | column     | 显式指定该字段对应的数据库表列,如column:foo                                                                   |
-| parseTime  | 按照给定的时间格式化字符串格式化时间                                                                            |
+| timeLayout | 按照给定的时间格式化字符串格式化时间                                                                            |
 | aes        | 进行aes加密并传递aes的密钥,密钥长度为32字节,不能包含';',也不能以'作为开始和结尾字符                                             |
 | splitWith  | 字段如果是[]string,可以指定split使用的分隔符,不能包含';',默认是'::',如果使用特殊字符,如'\n','\t'等,需要使用''包含分隔符,也就是说,分隔符不能使用'' |
 | trim       | 字段如果是string,可以指定需要trim的字符,不能包含';',如果使用特殊字符,如'\n','\t'等,需要使用''包含,不能以'作为开始和结尾字符                 |
@@ -185,8 +185,7 @@ binding是一种机制,围绕应用将API,基础设施以及领域进行绑
 | toPackage  | 要赋值到的字段的结构所在的包路径,要与结构反射Type的PkgPath()返回值一致                                                             |
 | toStruct   | 要赋值到的字段的结构所在的结构名称,要与结构反射Type的Name()返回值一致                                                               |
 | toField    | 要赋值到的结构字段名                                                                                             |
-| parseTime  | 将时间字符串赋值给时间字段(time.Time)使用的layout                                                                      |
-| formatTime | 将时间字段(time.Time)赋值给时间字符串字段使用的layout                                                                    |
+| timeLayout | 将时间字符串赋值给时间字段(time.Time)或将时间字段(time.Time)赋值给时间字符串使用的layout                                             |
 | joinWith   | 将[]string类型字段赋值给string类型字段时join使用的分隔符,不能包含';',默认是'::',如果使用特殊字符,如'\n','\t'等,需要使用''包含分隔符,也就是说,分隔符不能使用''  |
 | splitWith  | 将string类型字段赋值给[]string类型字段时split使用的分隔符,不能包含';',默认是'::',如果使用特殊字符,如'\n','\t'等,需要使用''包含分隔符,也就是说,分隔符不能使用'' |
 | trim       | 字段如果是string,可以指定需要trim的字符,trim后赋值,不能包含';',如果使用特殊字符,如'\n','\t'等,需要使用''包含,不能以'作为开始和结尾字符                  |

+ 5 - 10
framework/core/tag/assign/tag.go

@@ -22,8 +22,7 @@ const (
 	tagPartToPackage  = "toPackage"
 	tagPartToStruct   = "toStruct"
 	tagPartToField    = "toField"
-	tagPartParseTime  = "parseTime"
-	tagPartFormatTime = "formatTime"
+	tagPartTimeLayout = "timeLayout"
 	tagPartJoinWith   = "joinWith"
 	tagPartSplitWith  = "splitWith"
 	tagPartTrim       = "trim"
@@ -35,8 +34,7 @@ type Tag struct {
 	ToPackage  string
 	ToStruct   string
 	ToField    string
-	ParseTime  string
-	FormatTime string
+	TimeLayout string
 	JoinWith   string
 	SplitWith  string
 	Trim       string
@@ -130,8 +128,7 @@ func parseFieldTag(field reflect.StructField, tagStr string) (*Tag, error) {
 		ToPackage:  "",
 		ToStruct:   "",
 		ToField:    field.Name,
-		ParseTime:  time.DateTime,
-		FormatTime: time.DateTime,
+		TimeLayout: time.DateTime,
 		JoinWith:   defaultStringSliceSeparator,
 		SplitWith:  defaultStringSliceSeparator,
 		Trim:       "",
@@ -162,10 +159,8 @@ func parseFieldTag(field reflect.StructField, tagStr string) (*Tag, error) {
 				tag.ToStruct = tagPartKeyValue[1]
 			case tagPartToField:
 				tag.ToField = tagPartKeyValue[1]
-			case tagPartParseTime:
-				tag.ParseTime = tagPartKeyValue[1]
-			case tagPartFormatTime:
-				tag.FormatTime = tagPartKeyValue[1]
+			case tagPartTimeLayout:
+				tag.TimeLayout = tagPartKeyValue[1]
 			case tagPartJoinWith:
 				if strutils.IsStringEmpty(tagPartKeyValue[1]) {
 					return nil, errors.New(tagPartJoinWith + "没有赋值分隔符")

+ 2 - 2
framework/core/tag/assign/usage.go

@@ -28,7 +28,7 @@ func defaultCallback(fromFieldElemValue reflect.Value, toFieldElemValue reflect.
 	case reflect.Struct:
 		// time.Time类型的结构,接收字段是string类型,使用FormatTime的格式转换
 		if reflectutils.IsValueTime(fromFieldElemValue) && toKind == reflect.String {
-			fromString := fromFieldElemValue.Interface().(time.Time).Format(tag.FormatTime)
+			fromString := fromFieldElemValue.Interface().(time.Time).Format(tag.TimeLayout)
 			fromAny = trimFromString(fromString, tag)
 			break
 		}
@@ -54,7 +54,7 @@ func defaultCallback(fromFieldElemValue reflect.Value, toFieldElemValue reflect.
 		fromString := fromFieldElemValue.String()
 
 		if reflectutils.IsValueTime(toFieldElemValue) {
-			toTimeField, err := time.ParseInLocation(tag.ParseTime, fromString, time.Local)
+			toTimeField, err := time.ParseInLocation(tag.TimeLayout, fromString, time.Local)
 			if err != nil {
 				return err
 			}

+ 8 - 8
framework/core/tag/sql/sql_result/tag.go

@@ -21,7 +21,7 @@ const (
 	tagKey            = "sqlresult"
 	tagPartIgnore     = "-"
 	tagPartColumn     = "column"
-	tagPartParseTime  = "parseTime"
+	tagPartTimeLayout = "timeLayout"
 	tagPartAes        = "aes"
 	tagPartSplitWith  = "splitWith"
 	tagPartTrim       = "trim"
@@ -31,7 +31,7 @@ const (
 
 type Tag struct {
 	Name       string
-	ParseTime  string
+	TimeLayout string
 	AESKey     string
 	SplitWith  string
 	Trim       string
@@ -92,10 +92,10 @@ func parseFieldTag(field reflect.StructField, tagStr string) (*Tag, error) {
 	}
 
 	tag := &Tag{
-		Name:      strcase.ToSnake(field.Name),
-		ParseTime: time.DateTime,
-		AESKey:    "",
-		SplitWith: defaultSplitWith,
+		Name:       strcase.ToSnake(field.Name),
+		TimeLayout: time.DateTime,
+		AESKey:     "",
+		SplitWith:  defaultSplitWith,
 	}
 
 	if strutils.IsStringEmpty(tagStr) {
@@ -117,8 +117,8 @@ func parseFieldTag(field reflect.StructField, tagStr string) (*Tag, error) {
 			switch tagPartKeyValue[0] {
 			case tagPartColumn:
 				tag.Name = tagPartKeyValue[1]
-			case tagPartParseTime:
-				tag.ParseTime = tagPartKeyValue[1]
+			case tagPartTimeLayout:
+				tag.TimeLayout = tagPartKeyValue[1]
 			case tagPartAes:
 				if len(tagPartKeyValue[1]) != 32 {
 					return nil, errors.New("AES密钥长度应该为32个字节")

+ 2 - 2
framework/core/tag/sql/sql_result/usage.go

@@ -57,7 +57,7 @@ func defaultCallback(result map[string]any, columnName string) OnParsedFieldTagF
 				parsedTime, err := parseTimeStringResult(strValue)
 				if err == nil {
 					// 转换成功说明是时间字符串
-					strValue = parsedTime.Format(tag.ParseTime)
+					strValue = parsedTime.Format(tag.TimeLayout)
 				}
 
 				parsedValue, err := dealStringResultValue(strValue, tag)
@@ -70,7 +70,7 @@ func defaultCallback(result map[string]any, columnName string) OnParsedFieldTagF
 
 			timeResult, ok := resultValue.(time.Time)
 			if ok {
-				return reflectutils.AssignStringValue(timeResult.Format(tag.ParseTime), entityFieldElemValue)
+				return reflectutils.AssignStringValue(timeResult.Format(tag.TimeLayout), entityFieldElemValue)
 			}
 
 			return errors.New("查询到的值无法赋值为string类型")