Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop

This commit is contained in:
邹宗楠
2023-03-09 18:06:15 +08:00
3 changed files with 23 additions and 11 deletions

View File

@@ -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))
}
}
}

View File

@@ -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

View File

@@ -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必填")
}