+ThingMap
+OnxxThing
This commit is contained in:
@@ -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,64 +134,71 @@ 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 {
|
|
||||||
SetStoreCategorySyncStatus2(db, nil, []int{categoryID}, model.SyncFlagModifiedMask)
|
|
||||||
var skuIDs []int
|
|
||||||
if valid["jdCategoryID"] != nil || valid["ebaiCategoryID"] != nil || valid["mtwmCategoryID"] != nil ||
|
|
||||||
valid["jdPricePercentage"] != nil || valid["ebaiPricePercentage"] != nil || valid["mtwmPricePercentage"] != nil {
|
|
||||||
if skuList, err2 := dao.GetSkuByCats(db, []int{categoryID}); err2 == nil && len(skuList) > 0 {
|
|
||||||
for _, sku := range skuList {
|
|
||||||
skuIDs = append(skuIDs, sku.ID)
|
|
||||||
}
|
|
||||||
if valid["jdCategoryID"] != nil {
|
|
||||||
dao.SetSkuSyncStatus(db, model.VendorIDJD, skuIDs, model.SyncFlagModifiedMask)
|
|
||||||
}
|
|
||||||
|
|
||||||
// todo 如下逻辑,在不同平台同时改pricePercentage与平台分类映射时,会不必要的打上多余的标记
|
dao.Begin(db)
|
||||||
var vendorIDs []int
|
defer func() {
|
||||||
syncStatus := model.SyncFlagModifiedMask
|
if r := recover(); r != nil {
|
||||||
if valid["jdPricePercentage"] != nil {
|
dao.Rollback(db)
|
||||||
vendorIDs = append(vendorIDs, model.VendorIDJD)
|
panic(r)
|
||||||
syncStatus |= model.SyncFlagPriceMask
|
}
|
||||||
}
|
}()
|
||||||
|
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)
|
||||||
|
|
||||||
if valid["ebaiPricePercentage"] != nil {
|
SetStoreCategorySyncStatus2(db, nil, []int{categoryID}, model.SyncFlagModifiedMask)
|
||||||
vendorIDs = append(vendorIDs, model.VendorIDEBAI)
|
var skuIDs []int
|
||||||
syncStatus |= model.SyncFlagPriceMask
|
if valid["jdCategoryID"] != nil || valid["ebaiCategoryID"] != nil || valid["mtwmCategoryID"] != nil ||
|
||||||
} else if valid["ebaiCategoryID"] != nil {
|
valid["jdPricePercentage"] != nil || valid["ebaiPricePercentage"] != nil || valid["mtwmPricePercentage"] != nil {
|
||||||
vendorIDs = append(vendorIDs, model.VendorIDEBAI)
|
if skuList, err2 := dao.GetSkuByCats(db, []int{categoryID}); err2 == nil && len(skuList) > 0 {
|
||||||
}
|
for _, sku := range skuList {
|
||||||
|
skuIDs = append(skuIDs, sku.ID)
|
||||||
|
}
|
||||||
|
if valid["jdCategoryID"] != nil {
|
||||||
|
dao.SetSkuSyncStatus(db, model.VendorIDJD, skuIDs, model.SyncFlagModifiedMask)
|
||||||
|
}
|
||||||
|
|
||||||
if valid["mtwmPricePercentage"] != nil {
|
// todo 如下逻辑,在不同平台同时改pricePercentage与平台分类映射时,会不必要的打上多余的标记
|
||||||
vendorIDs = append(vendorIDs, model.VendorIDMTWM)
|
var vendorIDs []int
|
||||||
syncStatus |= model.SyncFlagPriceMask
|
syncStatus := model.SyncFlagModifiedMask
|
||||||
} else if valid["mtwmCategoryID"] != nil {
|
if valid["jdPricePercentage"] != nil {
|
||||||
vendorIDs = append(vendorIDs, model.VendorIDMTWM)
|
vendorIDs = append(vendorIDs, model.VendorIDJD)
|
||||||
}
|
syncStatus |= model.SyncFlagPriceMask
|
||||||
if len(vendorIDs) > 0 {
|
}
|
||||||
SetStoreSkuSyncStatus2(db, nil, vendorIDs, skuIDs, syncStatus)
|
|
||||||
}
|
if valid["ebaiPricePercentage"] != nil {
|
||||||
|
vendorIDs = append(vendorIDs, model.VendorIDEBAI)
|
||||||
|
syncStatus |= model.SyncFlagPriceMask
|
||||||
|
} else if valid["ebaiCategoryID"] != nil {
|
||||||
|
vendorIDs = append(vendorIDs, model.VendorIDEBAI)
|
||||||
|
}
|
||||||
|
|
||||||
|
if valid["mtwmPricePercentage"] != nil {
|
||||||
|
vendorIDs = append(vendorIDs, model.VendorIDMTWM)
|
||||||
|
syncStatus |= model.SyncFlagPriceMask
|
||||||
|
} else if valid["mtwmCategoryID"] != nil {
|
||||||
|
vendorIDs = append(vendorIDs, model.VendorIDMTWM)
|
||||||
|
}
|
||||||
|
if len(vendorIDs) > 0 {
|
||||||
|
SetStoreSkuSyncStatus2(db, nil, vendorIDs, skuIDs, syncStatus)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_, err = CurVendorSync.SyncCategory(ctx, db, categoryID, false, userName)
|
}
|
||||||
if len(skuIDs) > 0 {
|
_, err = CurVendorSync.SyncCategory(ctx, db, categoryID, false, userName)
|
||||||
CurVendorSync.SyncSkus(ctx, db, nil, skuIDs, true, true, userName)
|
if len(skuIDs) > 0 {
|
||||||
}
|
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,14 +273,25 @@ func DeleteCategory(ctx *jxcontext.Context, categoryID int, userName string) (nu
|
|||||||
}
|
}
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
defer func() {
|
defer func() {
|
||||||
dao.Rollback(db)
|
if r := recover(); r != nil {
|
||||||
}()
|
dao.Rollback(db)
|
||||||
if _, err = DeleteCategoryMap(ctx, db, categoryID); err == nil {
|
panic(r)
|
||||||
if num, err = dao.DeleteEntityLogically(db, cat, utils.Params2Map(model.FieldJdSyncStatus, model.SyncFlagDeletedMask), userName, nil); err == nil && num == 1 {
|
|
||||||
dao.Commit(db)
|
|
||||||
_, err = CurVendorSync.SyncCategory(ctx, db, cat.ID, false, userName)
|
|
||||||
}
|
}
|
||||||
|
}()
|
||||||
|
if _, err = DeleteCategoryMap(ctx, db, categoryID); err != nil {
|
||||||
|
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)
|
||||||
|
_, err = CurVendorSync.SyncCategory(ctx, db, cat.ID, false, userName)
|
||||||
}
|
}
|
||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
26
business/model/sync_map.go
Normal file
26
business/model/sync_map.go
Normal 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"},
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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{})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user