From 7d3467080046803ea41249f4a9b833a8fa0c892a Mon Sep 17 00:00:00 2001 From: richboo111 Date: Thu, 9 Mar 2023 17:38:16 +0800 Subject: [PATCH] 1 --- business/jxstore/cms/store.go | 17 ++++++++++++----- business/partner/purchase/tiktok_store/store.go | 4 ++-- .../partner/purchase/tiktok_store/warehouse.go | 13 +++++++++---- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 4bffc88c7..91773638a 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -6052,12 +6052,19 @@ func AssistCreateFence(relInfo map[string][]tiktok_store.RelInfo) (string, error } if bindFence, err := tiktok_store.GetWarehouseByStore(k, utils.Str2Int64(i.VendorStoreID)); err == nil && (len(bindFence) > 0 && len(bindFence[i.VendorStoreID][0].OutFenceIds) > 0) { tempFenceID = bindFence[i.VendorStoreID][0].OutFenceIds[0] - if err1 := tiktok_store.UpdateFenceByStore(k, tempFenceID, utils.Str2Int(i.VendorStoreID)); err1 != nil { + if err1 := tiktok_store.UpdateFenceByStore(k, tempFenceID, i.StoreID); err1 != nil { errList.AddErr(fmt.Errorf("平台门店(%s),门店(%s)更新电子围栏失败:%v", i.VendorStoreID, i.StoreID, err1)) } } else { if fenceID, err := tiktok_store.CreateFenceByStore(k, tempStoreID); err != nil { - errList.AddErr(fmt.Errorf("平台门店(%s),门店(%s)创建电子围栏失败:%v", i.VendorStoreID, i.StoreID, err)) + if strings.Contains(err.Error(), "该电子围栏已经存在,请使用修改接口") { //兜底处理 + if err1 := tiktok_store.BindFenceByStore(k, tempVendorStoreID, []string{i.StoreID}); err1 == nil { + if err2 := tiktok_store.UpdateFenceByStore(k, i.StoreID, i.StoreID); err2 != nil { + errList.AddErr(fmt.Errorf("平台门店(%s),门店(%s)更新电子围栏失败:%v", i.VendorStoreID, i.StoreID, err1)) + } + } + errList.AddErr(fmt.Errorf("平台门店(%s),门店(%s)创建电子围栏失败:%v", i.VendorStoreID, i.StoreID, err)) + } } else if len(fenceID) > 0 { if err := tiktok_store.BindFenceByStore(k, tempVendorStoreID, []string{i.StoreID}); err != nil { errList.AddErr(fmt.Errorf("平台门店(%s),门店(%s)绑定电子围栏失败:%v", i.VendorStoreID, i.StoreID, err)) @@ -6111,18 +6118,18 @@ func BatchCreateFreeShipTemplate(relInfo map[string][]tiktok_store.RelInfo, ship //批量配置抖音门店自动呼叫运力 func SetStoreAutoCallRider(vendorOrgCode string, openIDs, closeIDs []int64) (string, error) { - var errList errlist.ErrList + var errList = errlist.New() if len(openIDs) > 0 { for _, i := range openIDs { if err := tiktok_store.SetStoreAutoCallRider(vendorOrgCode, tiktok_api.AutoCallRiderOpen, i); err != nil { - errList.AddErr(fmt.Errorf("%d", i)) + errList.AddErr(fmt.Errorf("%d err:%v", i, err)) } } } if len(closeIDs) > 0 { for _, j := range closeIDs { if err := tiktok_store.SetStoreAutoCallRider(vendorOrgCode, tiktok_api.AutoCallRiderClose, j); err != nil { - errList.AddErr(fmt.Errorf("%d", j)) + errList.AddErr(fmt.Errorf("%d err:%v", j, err)) } } } diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index 5e4cc393f..1d025ffa6 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -203,7 +203,7 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee //(2)电子围栏 if len(bind[utils.Int64ToStr(storeID)][0].OutFenceIds) > 0 { tempFenceID := bind[utils.Int64ToStr(storeID)][0].OutFenceIds[0] - if err1 := UpdateFenceByStore(vendorOrgCode, tempFenceID, int(vendorStoreID)); err1 != nil { + if err1 := UpdateFenceByStore(vendorOrgCode, tempFenceID, utils.Int64ToStr(storeID)); err1 != nil { errList.AddErr(fmt.Errorf("平台门店(%d),门店(%d)更新电子围栏失败:%v", vendorStoreID, storeID, err1)) } FreightTemplate.FenceID = bind[utils.Int64ToStr(storeID)][0].OutFenceIds[0] //保存一个就足够 @@ -369,7 +369,7 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin } else if len(bind[storeInfo.VendorStoreID][0].OutFenceIds) > 0 { //默认更新第一个电子围栏 outFenceID := bind[storeInfo.VendorStoreID][0].OutFenceIds[0] - if err = UpdateFenceByStore(storeInfo.VendorOrgCode, outFenceID, storeID); err != nil { + if err = UpdateFenceByStore(storeInfo.VendorOrgCode, outFenceID, utils.Int2Str(storeID)); err != nil { errList.AddErr(errors.New(fmt.Sprintf("更新电子围栏失败,原因:%v", err))) } FreightTemplate.FenceID = outFenceID diff --git a/business/partner/purchase/tiktok_store/warehouse.go b/business/partner/purchase/tiktok_store/warehouse.go index 75269da45..39dd0c879 100644 --- a/business/partner/purchase/tiktok_store/warehouse.go +++ b/business/partner/purchase/tiktok_store/warehouse.go @@ -1,6 +1,7 @@ package tiktok_store import ( + "errors" "fmt" "strconv" "strings" @@ -172,19 +173,23 @@ func CreateFenceByStore(appOrgCode string, storeID int64) (fenceID string, err e } } -// 通过门店更新电子围栏 -func UpdateFenceByStore(appOrgCode, outFenceID string, storeID int) error { +// 通过围栏id更新电子围栏 +func UpdateFenceByStore(appOrgCode, outFenceID, storeID string) error { var ( db *dao.DaoDB localStore *LocalStore vertex []warehouse_setFence_request.VerticesItem param = &warehouse_setFence_request.WarehouseSetFenceParam{} ) + localID, err := dao.GetStoreDetail(db, utils.Str2Int(storeID), 0, "") + if err != nil { + return errors.New("获取门店id失败") + } sqlParam := []interface{}{} sqlStr := `SELECT t.lng,t.lat,t.delivery_range_type,t.delivery_range FROM store t` - if storeID != 0 { + if localID.Store.ID != 0 { sqlStr += " WHERE t.id = ? " - sqlParam = append(sqlParam, storeID) + sqlParam = append(sqlParam, localID.Store.ID) } else { return fmt.Errorf("storeID必填") }