- implement mtwm.DeleteRemoteStoreSkus

This commit is contained in:
gazebo
2019-03-20 15:31:26 +08:00
parent de63254fc3
commit 02db9f0b4f
4 changed files with 46 additions and 11 deletions

View File

@@ -357,7 +357,7 @@ func JxBusinessTime2Ebai(store *model.Store) interface{} {
func genStoreMapFromStore(store *tEbaiStoreInfo) map[string]interface{} {
params := map[string]interface{}{
"name": jxutils.ComposeStoreName(store.Name, model.VendorIDEBAI),
// "name": jxutils.ComposeStoreName(store.Name, model.VendorIDEBAI),
"phone": store.Tel1,
"longitude": jxutils.IntCoordinate2Standard(store.Lng),
"latitude": jxutils.IntCoordinate2Standard(store.Lat),

View File

@@ -107,7 +107,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
openTime = append(openTime, [2]int16{storeDetail.OpenTime2, storeDetail.CloseTime2})
}
params := map[string]interface{}{
"name": jxutils.ComposeStoreName(storeDetail.Store.Name, model.VendorIDMTWM),
// "name": jxutils.ComposeStoreName(storeDetail.Store.Name, model.VendorIDMTWM),
"address": storeDetail.Address,
"longitude": jxutils.IntCoordinate2Standard(storeDetail.Lng),
"latitude": jxutils.IntCoordinate2Standard(storeDetail.Lat),

View File

@@ -310,20 +310,25 @@ func (p *PurchaseHandler) FullSyncStoreSkus(ctx *jxcontext.Context, parentTask t
rootTask := tasksch.NewSeqTask("美团外卖FullSyncStoreSkus", userName, func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
switch step {
case 0:
if err = p.DeleteRemoteSkus(ctx, rootTask, storeID, nil); err == nil {
_, err = dao.SetStoreCategorySyncStatus(db, model.VendorIDMTWM, storeID, nil, model.SyncFlagNewMask)
err = p.DeleteRemoteSkus(ctx, rootTask, storeID, nil)
if isContinueWhenError {
err = nil
}
case 1:
_, err = dao.SetStoreSkuSyncStatus(db, model.VendorIDMTWM, storeID, nil, model.SyncFlagNewMask)
case 2:
_, err = p.SyncLocalStoreCategory(ctx, db, storeID, true)
if err = p.DeleteRemoteCategories(ctx, rootTask, storeID, nil); err == nil {
_, err = dao.SetStoreCategorySyncStatus(db, model.VendorIDMTWM, storeID, nil, model.SyncFlagNewMask)
}
case 3:
_, err = p.SyncStoreCategory(ctx, rootTask, storeID, false)
_, err = p.SyncLocalStoreCategory(ctx, db, storeID, true)
case 4:
_, err = p.SyncStoreCategory(ctx, rootTask, storeID, false)
case 5:
_, err = p.SyncStoreSkus(ctx, rootTask, storeID, nil, false, isContinueWhenError)
}
return nil, err
}, 5)
}, 6)
tasksch.AddChild(parentTask, rootTask).Run()
if !isAsync {
_, err = rootTask.GetResult(0)
@@ -377,7 +382,7 @@ func (p *PurchaseHandler) GetAllRemoteSkus(storeID int) (skus []map[string]inter
return skus, err
}
func (p *PurchaseHandler) DeleteRemoteCategories(storeID int, vendorCatIDs []string) (err error) {
func (p *PurchaseHandler) DeleteRemoteCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorCatIDs []string) (err error) {
storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDMTWM)
if err != nil {
return err
@@ -416,11 +421,41 @@ func (p *PurchaseHandler) DeleteRemoteCategories(storeID int, vendorCatIDs []str
}
return nil, err
}, 2)
rootTask.Run()
tasksch.AddChild(parentTask, rootTask).Run()
_, err = rootTask.GetResult(0)
return err
}
func (p *PurchaseHandler) DeleteRemoteStoreSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, isAsync, isContinueWhenError bool) (hint string, err error) {
return hint, err
userName := ctx.GetUserName()
globals.SugarLogger.Debugf("mtwm DeleteRemoteStoreSkus storeID:%d, isContinueWhenError:%t, userName:%s", storeID, isContinueWhenError, userName)
db := dao.GetDB()
var errDeleteSku error
rootTask := tasksch.NewSeqTask("mtwm DeleteRemoteStoreSkus", userName, func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
switch step {
case 0:
err = p.DeleteRemoteSkus(ctx, rootTask, storeID, nil)
errDeleteSku = err
// 强制忽略删除SKU错误
if isContinueWhenError {
err = nil
}
case 1:
_, err = dao.SetStoreSkuSyncStatus(db, model.VendorIDMTWM, storeID, nil, model.SyncFlagNewMask)
case 2:
if err = p.DeleteRemoteCategories(ctx, rootTask, storeID, nil); err == nil {
_, err = dao.SetStoreCategorySyncStatus(db, model.VendorIDMTWM, storeID, nil, model.SyncFlagNewMask)
}
}
return nil, err
}, 3)
tasksch.AddChild(parentTask, rootTask).Run()
if !isAsync {
_, err = rootTask.GetResult(0)
}
if err == nil {
err = errDeleteSku
}
return rootTask.ID, err
}

View File

@@ -39,7 +39,7 @@ func TestDeleteRemoteSkus(t *testing.T) {
}
func TestDeleteRemoteCategories(t *testing.T) {
err := new(PurchaseHandler).DeleteRemoteCategories(100077, nil)
err := new(PurchaseHandler).DeleteRemoteCategories(jxcontext.AdminCtx, nil, 100077, nil)
if err != nil {
t.Fatal(err)
}