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)
|
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{}) {
|
func (engine *Engine) FormatTime(sqlTypeName string, t time.Time) (v interface{}) {
|
||||||
switch sqlTypeName {
|
switch sqlTypeName {
|
||||||
case core.Time:
|
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 {
|
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 {
|
} else if col.IsVersion && session.Statement.checkVersion {
|
||||||
args = append(args, 1)
|
args = append(args, 1)
|
||||||
//} else if !col.DefaultIsEmpty {
|
|
||||||
} else {
|
} else {
|
||||||
arg, err := session.value2Interface(col, fieldValue)
|
arg, err := session.value2Interface(col, fieldValue)
|
||||||
if err != nil {
|
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 {
|
func (session *Session) _row2Bean(rows *core.Rows, fields []string, fieldsCount int, bean interface{}, dataStruct *reflect.Value, table *core.Table) error {
|
||||||
|
|
||||||
scanResults := make([]interface{}, fieldsCount)
|
scanResults := make([]interface{}, fieldsCount)
|
||||||
for i := 0; i < len(fields); i++ {
|
for i := 0; i < len(fields); i++ {
|
||||||
var cell interface{}
|
var cell interface{}
|
||||||
|
@ -1766,6 +1765,12 @@ func (session *Session) _row2Bean(rows *core.Rows, fields []string, fieldsCount
|
||||||
// t = fieldValue.Interface().(time.Time)
|
// t = fieldValue.Interface().(time.Time)
|
||||||
// z, _ = t.Zone()
|
// z, _ = t.Zone()
|
||||||
// session.Engine.LogDebug("fieldValue key[%v]: %v | zone: %v | location: %+v\n", key, t, z, *t.Location())
|
// 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 {
|
} else if session.Statement.UseCascade {
|
||||||
table := session.Engine.autoMapType(*fieldValue)
|
table := session.Engine.autoMapType(*fieldValue)
|
||||||
|
@ -3783,7 +3788,6 @@ func (session *Session) Delete(bean interface{}) (int64, error) {
|
||||||
copy(afterClosures, session.afterClosures)
|
copy(afterClosures, session.afterClosures)
|
||||||
session.afterDeleteBeans[bean] = &afterClosures
|
session.afterDeleteBeans[bean] = &afterClosures
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if _, ok := interface{}(bean).(AfterInsertProcessor); ok {
|
if _, ok := interface{}(bean).(AfterInsertProcessor); ok {
|
||||||
session.afterDeleteBeans[bean] = nil
|
session.afterDeleteBeans[bean] = nil
|
||||||
|
|
Loading…
Reference in New Issue