resolved #163
This commit is contained in:
parent
5cdb680945
commit
507ee4df02
|
@ -1405,6 +1405,11 @@ func (engine *Engine) NowTime(sqlTypeName string) interface{} {
|
|||
return engine.FormatTime(sqlTypeName, t)
|
||||
}
|
||||
|
||||
func (engine *Engine) NowTime2(sqlTypeName string) (interface{}, time.Time) {
|
||||
t := time.Now()
|
||||
return engine.FormatTime(sqlTypeName, t), t
|
||||
}
|
||||
|
||||
func (engine *Engine) FormatTime(sqlTypeName string, t time.Time) (v interface{}) {
|
||||
switch sqlTypeName {
|
||||
case core.Time:
|
||||
|
|
15
helpers.go
15
helpers.go
|
@ -336,10 +336,21 @@ func genCols(table *core.Table, session *Session, bean interface{}, useCol bool,
|
|||
}
|
||||
|
||||
if (col.IsCreated || col.IsUpdated) && session.Statement.UseAutoTime {
|
||||
args = append(args, session.Engine.NowTime(col.SQLType.Name))
|
||||
val, t := session.Engine.NowTime2(col.SQLType.Name)
|
||||
args = append(args, val)
|
||||
session.afterClosures = append(session.afterClosures, func(bean interface{}) {
|
||||
v, _ := col.ValueOf(bean)
|
||||
switch v.Type().Kind() {
|
||||
case reflect.Struct:
|
||||
v.Set(reflect.ValueOf(t))
|
||||
case reflect.Int, reflect.Int64, reflect.Int32:
|
||||
v.SetInt(t.Unix())
|
||||
case reflect.Uint, reflect.Uint64, reflect.Uint32:
|
||||
v.SetUint(uint64(t.Unix()))
|
||||
}
|
||||
})
|
||||
} else if col.IsVersion && session.Statement.checkVersion {
|
||||
args = append(args, 1)
|
||||
//} else if !col.DefaultIsEmpty {
|
||||
} else {
|
||||
arg, err := session.value2Interface(col, fieldValue)
|
||||
if err != nil {
|
||||
|
|
|
@ -1626,7 +1626,6 @@ func (session *Session) row2Bean(rows *core.Rows, fields []string, fieldsCount i
|
|||
}
|
||||
|
||||
func (session *Session) _row2Bean(rows *core.Rows, fields []string, fieldsCount int, bean interface{}, dataStruct *reflect.Value, table *core.Table) error {
|
||||
|
||||
scanResults := make([]interface{}, fieldsCount)
|
||||
for i := 0; i < len(fields); i++ {
|
||||
var cell interface{}
|
||||
|
@ -1766,6 +1765,12 @@ func (session *Session) _row2Bean(rows *core.Rows, fields []string, fieldsCount
|
|||
// t = fieldValue.Interface().(time.Time)
|
||||
// z, _ = t.Zone()
|
||||
// session.Engine.LogDebug("fieldValue key[%v]: %v | zone: %v | location: %+v\n", key, t, z, *t.Location())
|
||||
} else if rawValueType == core.IntType || rawValueType == core.Int64Type ||
|
||||
rawValueType == core.Int32Type {
|
||||
hasAssigned = true
|
||||
t := time.Unix(vv.Int(), 0).In(session.Engine.TZLocation)
|
||||
vv = reflect.ValueOf(t)
|
||||
fieldValue.Set(vv)
|
||||
}
|
||||
} else if session.Statement.UseCascade {
|
||||
table := session.Engine.autoMapType(*fieldValue)
|
||||
|
@ -3783,7 +3788,6 @@ func (session *Session) Delete(bean interface{}) (int64, error) {
|
|||
copy(afterClosures, session.afterClosures)
|
||||
session.afterDeleteBeans[bean] = &afterClosures
|
||||
}
|
||||
|
||||
} else {
|
||||
if _, ok := interface{}(bean).(AfterInsertProcessor); ok {
|
||||
session.afterDeleteBeans[bean] = nil
|
||||
|
|
Loading…
Reference in New Issue