- sku category.
This commit is contained in:
@@ -2,9 +2,11 @@ package dao
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"github.com/astaxie/beego/orm"
|
||||
)
|
||||
|
||||
@@ -79,6 +81,30 @@ func GetEntity(db *DaoDB, item interface{}, cols ...string) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
func GetEntities(db *DaoDB, item interface{}, conditions map[string]interface{}, isIncludeDeleted bool) (err error) {
|
||||
if db == nil {
|
||||
db = GetDB()
|
||||
}
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
typeInfo := reflect.TypeOf(item).Elem().Elem()
|
||||
if typeInfo.Kind() == reflect.Ptr {
|
||||
typeInfo = typeInfo.Elem()
|
||||
}
|
||||
qs := db.db.QueryTable(reflect.New(typeInfo).Interface())
|
||||
for k, v := range conditions {
|
||||
qs = qs.Filter(k, v)
|
||||
}
|
||||
if !isIncludeDeleted {
|
||||
if _, ok := typeInfo.FieldByName(model.FieldDeletedAt); ok {
|
||||
qs = qs.Filter(model.FieldDeletedAt, utils.DefaultTimeValue)
|
||||
}
|
||||
}
|
||||
_, err = qs.All(item)
|
||||
return err
|
||||
}, reflect.TypeOf(item).Name())
|
||||
return err
|
||||
}
|
||||
|
||||
func UpdateEntity(db *DaoDB, item interface{}, cols ...string) (num int64, err error) {
|
||||
if db == nil {
|
||||
db = GetDB()
|
||||
@@ -97,7 +123,7 @@ func UpdateEntityByKV(db *DaoDB, item interface{}, kvs map[string]interface{}, c
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
qs := db.db.QueryTable(item)
|
||||
if conditions == nil {
|
||||
qs = qs.Filter("id", jxutils.GetObjFieldByName(item, "ID"))
|
||||
qs = qs.Filter(model.FieldID, jxutils.GetObjFieldByName(item, model.FieldID))
|
||||
} else {
|
||||
for k, v := range conditions {
|
||||
qs = qs.Filter(k, v)
|
||||
@@ -120,18 +146,23 @@ func CreateEntity(db *DaoDB, item interface{}) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
func DeleteEntity(db *DaoDB, item interface{}, conditions map[string]interface{}) (num int64, err error) {
|
||||
// 如果logicDeletedBy不为空,表示逻辑删除,否则物理删除
|
||||
func DeleteEntity(db *DaoDB, item interface{}, conditions map[string]interface{}, logicDeletedBy string) (num int64, err error) {
|
||||
if db == nil {
|
||||
db = GetDB()
|
||||
}
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
qs := db.db.QueryTable(item)
|
||||
if len(conditions) == 0 {
|
||||
num, err = db.db.Delete(item)
|
||||
qs = qs.Filter("ID", jxutils.GetObjFieldByName(item, model.FieldID))
|
||||
} else {
|
||||
qs := db.db.QueryTable(item)
|
||||
for k, v := range conditions {
|
||||
qs = qs.Filter(k, v)
|
||||
}
|
||||
}
|
||||
if logicDeletedBy != "" {
|
||||
num, err = qs.Update(utils.Params2Map(model.FieldDeletedAt, time.Now(), model.FieldUpdatedAt, time.Now(), model.FieldLastOperator, logicDeletedBy))
|
||||
} else {
|
||||
num, err = qs.Delete()
|
||||
}
|
||||
return err
|
||||
|
||||
@@ -4,6 +4,13 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
FieldID = "ID"
|
||||
FieldDeletedAt = "DeletedAt"
|
||||
FieldUpdatedAt = "UpdatedAt"
|
||||
FieldLastOperator = "LastOperator"
|
||||
)
|
||||
|
||||
type ModelIDCUL struct {
|
||||
ID int `orm:"column(id)" json:"id"`
|
||||
CreatedAt time.Time `orm:"auto_now_add;type(datetime)" json:"createdAt"`
|
||||
@@ -11,6 +18,14 @@ type ModelIDCUL struct {
|
||||
LastOperator string `orm:"size(32)" json:"lastOperator"` // 最后操作员
|
||||
}
|
||||
|
||||
type ModelIDCULD struct {
|
||||
ID int `orm:"column(id)" json:"id"`
|
||||
CreatedAt time.Time `orm:"auto_now_add;type(datetime)" json:"createdAt"`
|
||||
UpdatedAt time.Time `orm:"auto_now;type(datetime)" json:"updatedAt"`
|
||||
LastOperator string `orm:"size(32)" json:"lastOperator"` // 最后操作员
|
||||
DeletedAt time.Time `orm:"type(datetime);default('1970-01-01 00:00:00')" json:"deletedAt"`
|
||||
}
|
||||
|
||||
// flag按位表示,第一位表示修改,第二位表示新增,第三位表示删除
|
||||
const (
|
||||
SyncFlagModifiedMask = 1
|
||||
|
||||
Reference in New Issue
Block a user