Add DefaultTime type for autoUpdateTime and autoCreateTime

This commit is contained in:
wk30 2021-05-13 22:01:53 +08:00
parent ab51216097
commit 585e63625d
2 changed files with 10 additions and 5 deletions

View File

@ -233,10 +233,10 @@ func ConvertToAssignments(stmt *gorm.Statement) (set clause.Set) {
value = stmt.DB.NowFunc().UnixNano() value = stmt.DB.NowFunc().UnixNano()
} else if field.AutoUpdateTime == schema.UnixMillisecond { } else if field.AutoUpdateTime == schema.UnixMillisecond {
value = stmt.DB.NowFunc().UnixNano() / 1e6 value = stmt.DB.NowFunc().UnixNano() / 1e6
} else if field.GORMDataType == schema.Time { } else if field.AutoUpdateTime == schema.UnixSecond {
value = stmt.DB.NowFunc()
} else {
value = stmt.DB.NowFunc().Unix() value = stmt.DB.NowFunc().Unix()
} else {
value = stmt.DB.NowFunc()
} }
isZero = false isZero = false
} }

View File

@ -24,6 +24,7 @@ const (
UnixSecond TimeType = 1 UnixSecond TimeType = 1
UnixMillisecond TimeType = 2 UnixMillisecond TimeType = 2
UnixNanosecond TimeType = 3 UnixNanosecond TimeType = 3
DefaultTime TimeType = 4 //DefaultTime is time.Time
) )
const ( const (
@ -255,8 +256,10 @@ func (schema *Schema) ParseField(fieldStruct reflect.StructField) *Field {
field.AutoCreateTime = UnixNanosecond field.AutoCreateTime = UnixNanosecond
} else if strings.ToUpper(v) == "MILLI" { } else if strings.ToUpper(v) == "MILLI" {
field.AutoCreateTime = UnixMillisecond field.AutoCreateTime = UnixMillisecond
} else { } else if strings.ToUpper(v) == "UNIX" {
field.AutoCreateTime = UnixSecond field.AutoCreateTime = UnixSecond
} else {
field.AutoCreateTime = DefaultTime
} }
} }
@ -265,8 +268,10 @@ func (schema *Schema) ParseField(fieldStruct reflect.StructField) *Field {
field.AutoUpdateTime = UnixNanosecond field.AutoUpdateTime = UnixNanosecond
} else if strings.ToUpper(v) == "MILLI" { } else if strings.ToUpper(v) == "MILLI" {
field.AutoUpdateTime = UnixMillisecond field.AutoUpdateTime = UnixMillisecond
} else { } else if strings.ToUpper(v) == "UNIX" {
field.AutoUpdateTime = UnixSecond field.AutoUpdateTime = UnixSecond
} else {
field.AutoUpdateTime = DefaultTime
} }
} }