diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 9ae29652c..649908a28 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -7,6 +7,8 @@ import ( "strings" "time" + "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" @@ -205,6 +207,7 @@ func GetStoreDetailByVendorStoreID(db *DaoDB, vendorStoreID string, vendorID int if storeDetail, err = getStoreDetail(db, int(utils.Str2Int64WithDefault(vendorStoreID, 0)), vendorID, "", vendorOrgCode); err == nil { storeDetail.VendorStoreID = vendorStoreID } + globals.SugarLogger.Debugf("GetStoreDetailByVendorStoreID storeDetail ====%s", utils.Format4Output(storeDetail, false)) return storeDetail, err } diff --git a/business/partner/purchase/ebai/store.go b/business/partner/purchase/ebai/store.go index 114cfa633..b4b7f04ae 100644 --- a/business/partner/purchase/ebai/store.go +++ b/business/partner/purchase/ebai/store.go @@ -270,6 +270,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin if err == nil { if shopID > 0 { err = p.UpdateStoreCustomID(jxcontext.AdminCtx, "", store.VendorStoreID, int64(shopID)) + globals.SugarLogger.Debugf("UpdateStore store.VendorStoreID====%s,shopID====%s", store.VendorStoreID, shopID) } else if shopID == 0 { // todo remove out shop id } @@ -342,7 +343,9 @@ func (p *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask } } if globals.EnableEbaiStoreWrite { - err = api.EbaiAPI.ShopIDBatchUpdate(baiduShopIDs, shopIDs) + fBaiduIDs, fShopIDs, err1 := FilterStoreRel(baiduShopIDs, shopIDs) + globals.SugarLogger.Debugf("RefreshAllStoresID FilterStoreRel fBaiduIDs====%d fShopIDs====%d err====%v", fBaiduIDs, fShopIDs, err1) + err = api.EbaiAPI.ShopIDBatchUpdate(fBaiduIDs, fShopIDs) globals.SugarLogger.Debugf("RefreshAllStoresID baiduShopIDs====%s,shopIDs====%s", baiduShopIDs, shopIDs) } return nil, err @@ -360,6 +363,29 @@ func (p *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask return rootTask.ID, err } +//过滤ebai平台与本地门店ID映射关系是否正确对应修改 +func FilterStoreRel(baiduShopIDs []string, shopIDs []string) (fBaiduShopIDs []string, fShopIDs []string, err error) { + //线上获取映射关系 + if len(baiduShopIDs) > 0 && len(shopIDs) > 0 { + relInfo := utils.Params2Map("baidu_shop_ids", baiduShopIDs, "shop_ids", shopIDs) + globals.SugarLogger.Debugf("FilterStoreRel relInfo====%s", utils.Format4Output(relInfo, false)) + for k, _ := range relInfo { + remoteRel, err := api.EbaiAPI.ShopGet2("", utils.Str2Int64(k)) + if err != nil { + return nil, nil, err + } + localRel, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), k, model.VendorIDEBAI, "") + globals.SugarLogger.Debugf("get localRel err===%v", err) + if remoteRel.ShopID != utils.Int2Str(localRel.ID) { + fBaiduShopIDs = append(fBaiduShopIDs, k) + fShopIDs = append(fShopIDs, utils.Int2Str(localRel.ID)) + } + } + return fBaiduShopIDs, fShopIDs, nil + } + return nil, nil, nil +} + // todo 此函数只考虑了在饿了么侧开店的情况 func EbaiDeliveryType2Jx(deliveryType string) int8 { spIndex := strings.Index(deliveryType, "|") @@ -645,8 +671,13 @@ func (c *PurchaseHandler) GetAllStoresVendorID(ctx *jxcontext.Context, vendorOrg func (c *PurchaseHandler) UpdateStoreCustomID(ctx *jxcontext.Context, vendorOrgCode string, vendorStoreID string, storeID int64) (err error) { if globals.EnableJdStoreWrite { - err = api.EbaiAPI.ShopIDBatchUpdate([]string{vendorStoreID}, []string{utils.Int64ToStr(storeID)}) - globals.SugarLogger.Debugf("UpdateStoreCustomID vendorStoreID====%s storeID====%d", vendorStoreID, storeID) + fBaiduIDs, fShopIDs, err1 := FilterStoreRel([]string{vendorStoreID}, []string{utils.Int64ToStr(storeID)}) + if err1 != nil { + globals.SugarLogger.Debugf("UpdateStoreCustomID err1====%v", err1) + } + globals.SugarLogger.Debugf("UpdateStoreCustomID fBaiduIDs====%s fShopIDs====%d err1", fBaiduIDs, fShopIDs) + err = api.EbaiAPI.ShopIDBatchUpdate(fBaiduIDs, fShopIDs) + //err = api.EbaiAPI.ShopIDBatchUpdate([]string{vendorStoreID}, []string{utils.Int64ToStr(storeID)}) } return err }