update
This commit is contained in:
parent
e235f0d7e3
commit
4696385bf4
|
@ -0,0 +1,39 @@
|
|||
package xorm
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
|
||||
"xorm.io/builder"
|
||||
"xorm.io/core"
|
||||
)
|
||||
|
||||
type SoftDelete interface {
|
||||
getDeleteValue() interface{}
|
||||
getSelectFilter(deleteField string) builder.Cond
|
||||
setBeanConumenAttr(bean interface{}, col *core.Column, val interface{})
|
||||
}
|
||||
|
||||
type DefaultSoftDeleteHandler struct {
|
||||
}
|
||||
|
||||
func (h *DefaultSoftDeleteHandler) setBeanConumenAttr(bean interface{}, col *core.Column, val interface{}) {
|
||||
t := val.(int64)
|
||||
v, err := col.ValueOf(bean)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if v.CanSet() {
|
||||
switch v.Type().Kind() {
|
||||
case reflect.Int, reflect.Int64, reflect.Int32:
|
||||
v.SetInt(t)
|
||||
case reflect.Uint, reflect.Uint64, reflect.Uint32:
|
||||
v.SetUint(uint64(t))
|
||||
}
|
||||
}
|
||||
}
|
||||
func (h *DefaultSoftDeleteHandler) getDeleteValue() interface{} {
|
||||
return int64(1)
|
||||
}
|
||||
func (h *DefaultSoftDeleteHandler) getSelectFilter(deleteField string) builder.Cond {
|
||||
return builder.Eq{deleteField: int64(0)}
|
||||
}
|
Loading…
Reference in New Issue