Fix autoUpdateTime or autoCreateTime type

This commit is contained in:
wk30 2021-05-13 20:56:42 +08:00
parent a480bd8545
commit ab51216097
2 changed files with 24 additions and 5 deletions

View File

@ -316,8 +316,27 @@ func ConvertToCreateValues(stmt *gorm.Statement) (values clause.Values) {
if field.DefaultValueInterface != nil {
values.Values[0][idx] = field.DefaultValueInterface
field.Set(stmt.ReflectValue, field.DefaultValueInterface)
} else if field.AutoCreateTime > 0 || field.AutoUpdateTime > 0 {
} else if field.AutoCreateTime > 0 {
if field.AutoCreateTime == schema.UnixNanosecond {
field.Set(stmt.ReflectValue, curTime.UnixNano())
} else if field.AutoCreateTime == schema.UnixMillisecond {
field.Set(stmt.ReflectValue, curTime.UnixNano()/1e6)
} else if field.AutoCreateTime == schema.UnixSecond {
field.Set(stmt.ReflectValue, curTime.Unix())
} else {
field.Set(stmt.ReflectValue, curTime)
}
values.Values[0][idx], _ = field.ValueOf(stmt.ReflectValue)
} else if field.AutoUpdateTime > 0 {
if field.AutoUpdateTime == schema.UnixNanosecond {
field.Set(stmt.ReflectValue, curTime.UnixNano())
} else if field.AutoUpdateTime == schema.UnixMillisecond {
field.Set(stmt.ReflectValue, curTime.UnixNano()/1e6)
} else if field.AutoUpdateTime == schema.UnixSecond {
field.Set(stmt.ReflectValue, curTime.Unix())
} else {
field.Set(stmt.ReflectValue, curTime)
}
values.Values[0][idx], _ = field.ValueOf(stmt.ReflectValue)
}
} else if field.AutoUpdateTime > 0 {

View File

@ -210,10 +210,10 @@ func ConvertToAssignments(stmt *gorm.Statement) (set clause.Set) {
set = append(set, clause.Assignment{Column: clause.Column{Name: field.DBName}, Value: now.UnixNano()})
} else if field.AutoUpdateTime == schema.UnixMillisecond {
set = append(set, clause.Assignment{Column: clause.Column{Name: field.DBName}, Value: now.UnixNano() / 1e6})
} else if field.GORMDataType == schema.Time {
set = append(set, clause.Assignment{Column: clause.Column{Name: field.DBName}, Value: now})
} else {
} else if field.AutoUpdateTime == schema.UnixSecond {
set = append(set, clause.Assignment{Column: clause.Column{Name: field.DBName}, Value: now.Unix()})
} else {
set = append(set, clause.Assignment{Column: clause.Column{Name: field.DBName}, Value: now})
}
}
}