+ThingMap

+OnxxThing
This commit is contained in:
gazebo
2019-12-04 10:57:31 +08:00
parent f69173bd2e
commit 2635fb035a
5 changed files with 128 additions and 76 deletions

View File

@@ -97,10 +97,25 @@ func AddCategory(ctx *jxcontext.Context, cat *model.SkuCategory, userName string
} }
cat.Seq = maxSeq.MaxSeq + 1 cat.Seq = maxSeq.MaxSeq + 1
} }
if err = dao.CreateEntity(nil, cat); err == nil { dao.Begin(db)
outCat = cat defer func() {
_, err = CurVendorSync.SyncCategory(ctx, nil, cat.ID, false, userName) if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
} }
}()
if err = dao.CreateEntity(db, cat); err != nil {
dao.Rollback(db)
return nil, err
}
if err = OnCreateThing(db, int64(cat.ID), model.ThingTypeCategory); err != nil {
dao.Rollback(db)
return nil, err
}
dao.Commit(db)
outCat = cat
_, err = CurVendorSync.SyncCategory(ctx, nil, cat.ID, false, userName)
return outCat, err return outCat, err
} }
@@ -119,7 +134,24 @@ func UpdateCategory(ctx *jxcontext.Context, categoryID int, payload map[string]i
syncStatus = model.SyncFlagModifiedMask syncStatus = model.SyncFlagModifiedMask
valid[model.FieldJdSyncStatus] = int8(syncStatus) | cat.JdSyncStatus valid[model.FieldJdSyncStatus] = int8(syncStatus) | cat.JdSyncStatus
} }
if num, err = dao.UpdateEntityLogically(db, cat, valid, userName, nil); err == nil {
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
if num, err = dao.UpdateEntityLogically(db, cat, valid, userName, nil); err != nil {
dao.Rollback(db)
return 0, err
}
if err = OnUpdateThing(db, int64(categoryID), model.ThingTypeCategory); err != nil {
dao.Rollback(db)
return 0, err
}
dao.Commit(db)
SetStoreCategorySyncStatus2(db, nil, []int{categoryID}, model.SyncFlagModifiedMask) SetStoreCategorySyncStatus2(db, nil, []int{categoryID}, model.SyncFlagModifiedMask)
var skuIDs []int var skuIDs []int
if valid["jdCategoryID"] != nil || valid["ebaiCategoryID"] != nil || valid["mtwmCategoryID"] != nil || if valid["jdCategoryID"] != nil || valid["ebaiCategoryID"] != nil || valid["mtwmCategoryID"] != nil ||
@@ -163,20 +195,10 @@ func UpdateCategory(ctx *jxcontext.Context, categoryID int, payload map[string]i
CurVendorSync.SyncSkus(ctx, db, nil, skuIDs, true, true, userName) CurVendorSync.SyncSkus(ctx, db, nil, skuIDs, true, true, userName)
} }
} }
}
return num, err return num, err
} }
func SetStoreCategorySyncStatus2(db *dao.DaoDB, storeIDs []int, catIDs []int, syncStatus int) (num int64, err error) { func SetStoreCategorySyncStatus2(db *dao.DaoDB, storeIDs []int, catIDs []int, syncStatus int) (num int64, err error) {
// dao.Begin(db)
// defer func() {
// if r := recover(); r != nil || err != nil {
// dao.Rollback(db)
// if r != nil {
// panic(r)
// }
// }
// }()
for _, vendorID := range partner.GetSingleStoreVendorIDs() { for _, vendorID := range partner.GetSingleStoreVendorIDs() {
num2, err2 := dao.SetStoreCategorySyncStatus(db, vendorID, storeIDs, catIDs, syncStatus) num2, err2 := dao.SetStoreCategorySyncStatus(db, vendorID, storeIDs, catIDs, syncStatus)
if err = err2; err != nil { if err = err2; err != nil {
@@ -184,7 +206,6 @@ func SetStoreCategorySyncStatus2(db *dao.DaoDB, storeIDs []int, catIDs []int, sy
} }
num += num2 num += num2
} }
// dao.Commit(db)
return num, nil return num, nil
} }
@@ -252,15 +273,26 @@ func DeleteCategory(ctx *jxcontext.Context, categoryID int, userName string) (nu
} }
dao.Begin(db) dao.Begin(db)
defer func() { defer func() {
if r := recover(); r != nil {
dao.Rollback(db) dao.Rollback(db)
panic(r)
}
}() }()
if _, err = DeleteCategoryMap(ctx, db, categoryID); err == nil { if _, err = DeleteCategoryMap(ctx, db, categoryID); err != nil {
if num, err = dao.DeleteEntityLogically(db, cat, utils.Params2Map(model.FieldJdSyncStatus, model.SyncFlagDeletedMask), userName, nil); err == nil && num == 1 { dao.Rollback(db)
return 0, err
}
if num, err = dao.DeleteEntityLogically(db, cat, utils.Params2Map(model.FieldJdSyncStatus, model.SyncFlagDeletedMask), userName, nil); err != nil {
dao.Rollback(db)
return 0, err
}
if err = OnDeleteThing(db, int64(categoryID), model.ThingTypeCategory); err != nil {
dao.Rollback(db)
return 0, err
}
dao.Commit(db) dao.Commit(db)
_, err = CurVendorSync.SyncCategory(ctx, db, cat.ID, false, userName) _, err = CurVendorSync.SyncCategory(ctx, db, cat.ID, false, userName)
} }
}
}
return num, err return num, err
} }

View File

@@ -715,3 +715,15 @@ func GetTimeMixByInt(begin1, end1, begin2, end2 int16) (beginAt, endAt int16) {
} }
return beginAt, endAt return beginAt, endAt
} }
func OnCreateThing(db *dao.DaoDB, thingID int64, thingType int8) (err error) {
return err
}
func OnUpdateThing(db *dao.DaoDB, thingID int64, thingType int8) (err error) {
return err
}
func OnDeleteThing(db *dao.DaoDB, thingID int64, thingType int8) (err error) {
return err
}

View File

@@ -157,24 +157,6 @@ func (*SkuCategory) TableIndex() [][]string {
} }
} }
type SkuCategoryMap struct {
ModelIDCULD
CatID int `orm:"column(cat_id)" json:"catID"`
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
VendorOrgCode string `orm:"size(32)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空
VendorCatID string `orm:"size(32);column(vendor_cat_id)" json:"vendorCatID"`
SyncStatus int8 `orm:"default(2)"`
}
func (*SkuCategoryMap) TableUnique() [][]string {
return [][]string{
[]string{"CatID", "VendorID", "VendorOrgCode", "DeletedAt"},
[]string{"VendorCatID", "VendorID", "VendorOrgCode", "DeletedAt"},
}
}
type SkuName struct { type SkuName struct {
ModelIDCULD ModelIDCULD

View File

@@ -0,0 +1,26 @@
package model
const (
ThingTypeCategory = 1
ThingTypSkuName = 2
ThingTypeSku = 3
)
type ThingMap struct {
ModelIDCULD
ThingID int64 `orm:"column(thing_id)" json:"thingID"`
ThingType int8 `json:"thingType"`
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
VendorOrgCode string `orm:"size(32)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空
VendorThingID string `orm:"size(32);column(vendor_thing_id)" json:"vendorThingID"`
SyncStatus int8 `orm:"default(2)"`
}
func (*ThingMap) TableUnique() [][]string {
return [][]string{
[]string{"ThingID", "ThingType", "VendorID", "VendorOrgCode", "DeletedAt"},
[]string{"VendorThingID", "ThingType", "VendorID", "VendorOrgCode", "DeletedAt"},
}
}

View File

@@ -32,7 +32,7 @@ func Init() {
orm.RegisterModel(&model.Store{}, &model.StoreSub{}, &model.StoreMap{}, &model.StoreCourierMap{}) orm.RegisterModel(&model.Store{}, &model.StoreSub{}, &model.StoreMap{}, &model.StoreCourierMap{})
orm.RegisterModel(&model.SkuVendorCategory{}, &model.StoreSkuCategoryMap{}, &model.SkuName{}, &model.Sku{}, &model.SkuNamePlaceBind{}, &model.StoreSkuBind{}) orm.RegisterModel(&model.SkuVendorCategory{}, &model.StoreSkuCategoryMap{}, &model.SkuName{}, &model.Sku{}, &model.SkuNamePlaceBind{}, &model.StoreSkuBind{})
orm.RegisterModel(&model.SkuCategory{}) orm.RegisterModel(&model.SkuCategory{})
// orm.RegisterModel(&model.SkuCategoryMap{}) // orm.RegisterModel(&model.ThingMap{})
orm.RegisterModel(&model.AuthBind{}, &model.User{}) orm.RegisterModel(&model.AuthBind{}, &model.User{})