- store man almost ok.

This commit is contained in:
gazebo
2018-09-09 12:32:24 +08:00
parent 8c130a15a4
commit fc05f326b7
13 changed files with 392 additions and 93 deletions

View File

@@ -7,7 +7,8 @@ const (
VendorIDJD = 0
VendorIDMTWM = 1
VendorIDELM = 2
VendorIDPurchaseEnd = 2
VendorIDEBAI = 3
VendorIDPurchaseEnd = 3
VendorIDDeliveryBegin = 101
VendorIDDada = 101

View File

@@ -77,22 +77,22 @@ func GetEntity(db *DaoDB, item interface{}, cols ...string) error {
return err
}
func UpdateEntity(db *DaoDB, item interface{}, cols ...string) error {
func UpdateEntity(db *DaoDB, item interface{}, cols ...string) (num int64, err error) {
if db == nil {
db = GetDB()
}
err := utils.CallFuncLogError(func() error {
_, err2 := db.db.Update(item, cols...)
return err2
err = utils.CallFuncLogError(func() error {
num, err = db.db.Update(item, cols...)
return err
}, reflect.TypeOf(item).Name())
return err
return num, err
}
func UpdateEntityByKV(db *DaoDB, item interface{}, kvs map[string]interface{}, conditions map[string]interface{}) error {
func UpdateEntityByKV(db *DaoDB, item interface{}, kvs map[string]interface{}, conditions map[string]interface{}) (num int64, err error) {
if db == nil {
db = GetDB()
}
err := utils.CallFuncLogError(func() error {
err = utils.CallFuncLogError(func() error {
qs := db.db.QueryTable(item)
if conditions == nil {
qs = qs.Filter("id", jxutils.GetObjFieldByName(item, "ID"))
@@ -101,10 +101,10 @@ func UpdateEntityByKV(db *DaoDB, item interface{}, kvs map[string]interface{}, c
qs = qs.Filter(k, v)
}
}
_, err2 := qs.Update(kvs)
return err2
num, err = qs.Update(kvs)
return err
}, reflect.TypeOf(item).Name())
return err
return num, err
}
func CreateEntity(db *DaoDB, item interface{}) error {
@@ -117,3 +117,22 @@ func CreateEntity(db *DaoDB, item interface{}) error {
}, reflect.TypeOf(item).Name())
return err
}
func DeleteEntity(db *DaoDB, item interface{}, conditions map[string]interface{}) (num int64, err error) {
if db == nil {
db = GetDB()
}
err = utils.CallFuncLogError(func() error {
if len(conditions) == 0 {
num, err = db.db.Delete(item)
} else {
qs := db.db.QueryTable(item)
for k, v := range conditions {
qs = qs.Filter(k, v)
}
num, err = qs.Delete()
}
return err
}, reflect.TypeOf(item).Name())
return 0, err
}

View File

@@ -10,3 +10,28 @@ type ModelIDCUL struct {
UpdatedAt time.Time `orm:"auto_now;type(datetime)" json:"updatedAt"`
LastOperator string `orm:"size(32)" json:"lastOperator"` // 最后操作员
}
// flag按位表示第一位表示修改第二位表示新增第三位表示删除
const (
SyncFlagModifiedMask = 1
SyncFlagNewMask = 2
SyncFlagDeletedMask = 4
)
// const (
// KeyJdFlag = "jdFlag"
// KeyJdSyncedAt = "jdSyncedAt"
// KeyElmFlag = "elmFlag"
// KeyElmSyncedAt = "elmSyncedAt"
// KeyEbaiFlag = "ebaiFlag"
// KeyEbaiSyncedAt = "ebaiSyncedAt"
// )
// type ModelSyncFlag struct {
// JdFlag int8 `orm:"column(jd_flag);default(2)" json:"jdFlag"` // 京东同步状态
// JdSyncedAt time.Time `orm:"column(jd_synced_at);null" json:"jdSyncedAt"` // 京东最新成功同步时间
// ElmFlag int8 `orm:"column(elm_flag);default(2)" json:"elmFlag"` // 饿了么同步状态
// ElmSyncedAt time.Time `orm:"column(elm_synced_at);null" json:"elmSyncedAt"` // 京东最新成功同步时间
// EbaiFlag int8 `orm:"column(ebai_flag);default(2)" json:"ebaiFlag"` // 饿百同步状态
// EbaiSyncedAt time.Time `orm:"column(ebai_synced_at);null" json:"ebaiSyncedAt"` // 京东最新成功同步时间
// }

View File

@@ -35,6 +35,8 @@ type Store struct {
DeliveryRangeType int8 `json:"deliveryRangeType"` // 参见相关常量定义
DeliveryRange string `orm:"size(2048)" json:"deliveryRange"` // 如果DeliveryRangeType为DeliveryRangeTypePolygon则为逗号分隔坐标分号分隔的坐标点坐标与Lng和Lat一样都是整数比如 121361504,31189308;121420555,31150238。否则为半径单位为米
Status int `json:"status"`
DeliveryType int8 `orm:"-" json:"-"`
}
type StoreSub struct {
@@ -59,14 +61,16 @@ func (*StoreSub) TableUnique() [][]string {
type StoreMap struct {
ModelIDCUL
StoreID int `orm:"column(store_id)"`
VendorID int `orm:"column(vendor_id)"`
VendorStoreID string `orm:"column(vendor_store_id);size(48)"`
Status int // 取值同Store.Status
StoreID int `orm:"column(store_id)" json:"storeID"`
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
VendorStoreID string `orm:"column(vendor_store_id);size(48)" json:"vendorStoreID"`
Status int `json:"status"` // 取值同Store.Status
AutoPickup int8 // 是否自动拣货
DeliveryType int8 // 配送类型
DeliveryCompetition int8 // 是否支持配送竞争
SyncStatus int8 `orm:"default(2)" json:"syncStatus"`
AutoPickup int8 `json:"autoPickup"` // 是否自动拣货
DeliveryType int8 `json:"deliveryType"` // 配送类型
DeliveryCompetition int8 `json:"deliveryCompetition"` // 是否支持配送竞争
}
func (*StoreMap) TableUnique() [][]string {