- sku category.

This commit is contained in:
gazebo
2018-09-10 07:47:18 +08:00
parent d8907cf010
commit ce56d774a2
5 changed files with 82 additions and 21 deletions

View File

@@ -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