diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 809faafac..5c67bb0cc 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1099,14 +1099,20 @@ func updateOrCreateCourierStore(ctx *jxcontext.Context, storeDetail *dao.StoreDe return false, fmt.Errorf("门店的城市码有问题,请检查") } storeDetail = formalizeStore4Courier(storeDetail) + needUpdate := false if _, err = handlerInfo.Handler.GetStore(ctx, 0, storeDetail.VendorStoreID); err != nil { if handlerInfo.Handler.IsErrStoreNotExist(err) { storeDetail.VendorStoreID, storeDetail.AuditStatus, err = handlerInfo.Handler.CreateStore(ctx, storeDetail) if err == nil { isCreated = true + } else if handlerInfo.Handler.IsErrStoreExist(err) { + err = nil } } } else { + needUpdate = true + } + if err == nil && needUpdate { if updateHandler, _ := handlerInfo.Handler.(partner.IDeliveryUpdateStoreHandler); updateHandler != nil { err = updateHandler.UpdateStore(ctx, storeDetail) } else { @@ -1148,13 +1154,13 @@ func UpdateOrCreateCourierStores(ctx *jxcontext.Context, storeID int, isForceUpd if _, ok := v.Handler.(partner.IDeliveryUpdateStoreHandler); ok { storeDetail, err2 := dao.GetStoreDetail2(db, storeID, "", vendorID) if err = err2; err2 == nil { - if isForceUpdate || storeDetail.VendorStoreID == "" { - var isCreated bool - if storeDetail.VendorStoreID == "" { + isNeedAdd := storeDetail.VendorStoreID == "" + if isForceUpdate || isNeedAdd { + if isNeedAdd { storeDetail.VendorID = vendorID storeDetail.VendorStoreID = utils.Int2Str(storeDetail.ID) } - if isCreated, err = updateOrCreateCourierStore(ctx, storeDetail); err == nil && isCreated { + if _, err = updateOrCreateCourierStore(ctx, storeDetail); err == nil && isNeedAdd { storeCourier := &model.StoreCourierMap{ VendorStoreID: storeDetail.VendorStoreID, Status: model.StoreStatusOpened, diff --git a/business/partner/delivery/dada/waybill.go b/business/partner/delivery/dada/waybill.go index bb845dbf6..1677760c5 100644 --- a/business/partner/delivery/dada/waybill.go +++ b/business/partner/delivery/dada/waybill.go @@ -186,6 +186,10 @@ func (c *DeliveryHandler) IsErrStoreNotExist(err error) bool { return dadaapi.IsErrShopNotExist(err) } +func (c *DeliveryHandler) IsErrStoreExist(err error) bool { + return dadaapi.IsErrShopExist(err) +} + func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo *partner.WaybillFeeInfo, err error) { db := dao.GetDB() deliveryFeeInfo = &partner.WaybillFeeInfo{} diff --git a/business/partner/delivery/mtps/store.go b/business/partner/delivery/mtps/store.go index 44527dd8b..778f6dc0f 100644 --- a/business/partner/delivery/mtps/store.go +++ b/business/partner/delivery/mtps/store.go @@ -86,6 +86,10 @@ func (c *DeliveryHandler) IsErrStoreNotExist(err error) bool { return mtpsapi.IsErrShopNotExist(err) } +func (c *DeliveryHandler) IsErrStoreExist(err error) bool { + return mtpsapi.IsErrShopExist(err) +} + func (c *DeliveryHandler) UpdateStore(ctx *jxcontext.Context, storeDetail *dao.StoreDetail2) (err error) { if globals.EnableStoreWrite { err = api.MtpsAPI.PagePoiUpdate(storeDetail.VendorStoreID, storeDetail.PayeeName, storeDetail.Tel1, "fakeemail@163.com") diff --git a/business/partner/partner_delivery.go b/business/partner/partner_delivery.go index c564d79b0..3246dac9e 100644 --- a/business/partner/partner_delivery.go +++ b/business/partner/partner_delivery.go @@ -33,6 +33,7 @@ type IDeliveryPlatformHandler interface { CreateStore(ctx *jxcontext.Context, storeDetail *dao.StoreDetail2) (vendorStoreID string, status int, err error) GetStore(ctx *jxcontext.Context, storeID int, vendorStoreID string) (storeDetail *dao.StoreDetail2, err error) IsErrStoreNotExist(err error) bool + IsErrStoreExist(err error) bool CreateWaybill(order *model.GoodsOrder, policy CreateWaybillPolicy) (bill *model.Waybill, err error) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error)