From 254a8172d308f39c6bf87e04f707c96532a96196 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 16 Nov 2018 12:18:14 +0800 Subject: [PATCH] - set ebai delivery_region when there is non nil value. --- business/partner/purchase/ebai/store.go | 62 +++++++++++++------------ 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/business/partner/purchase/ebai/store.go b/business/partner/purchase/ebai/store.go index 71e26af4b..67473850e 100644 --- a/business/partner/purchase/ebai/store.go +++ b/business/partner/purchase/ebai/store.go @@ -280,33 +280,35 @@ func EbaiDeliveryRegion2Jx(deliveryRegion interface{}) string { return "" } -func JxDeliveryRegion2Ebai(store *model.Store) interface{} { +func JxDeliveryRegion2Ebai(store *model.Store) (deliveryRegion interface{}) { rangeStr := strings.Trim(store.DeliveryRange, ";") if store.DeliveryRangeType == model.DeliveryRangeTypeRadius { rangeStr = jxutils.GetPolygonFromCircleStr(jxutils.IntCoordinate2Standard(store.Lng), jxutils.IntCoordinate2Standard(store.Lat), utils.Str2Float64(store.DeliveryRange), 8) } - pointPairs := strings.Split(rangeStr, ";") - region := make([]map[string]interface{}, 0) - for _, v := range pointPairs { - pointPair := strings.Split(v, ",") - if len(pointPair) == 2 { - region = append(region, map[string]interface{}{ - "longitude": utils.Str2Float64(pointPair[0]), - "latitude": utils.Str2Float64(pointPair[1]), - }) + if rangeStr != "" { + pointPairs := strings.Split(rangeStr, ";") + region := make([]map[string]interface{}, 0) + for _, v := range pointPairs { + pointPair := strings.Split(v, ",") + if len(pointPair) == 2 { + region = append(region, map[string]interface{}{ + "longitude": utils.Str2Float64(pointPair[0]), + "latitude": utils.Str2Float64(pointPair[1]), + }) + } } - } - deliveryRegion := []interface{}{ - map[string]interface{}{ - "name": "主要配送区", - "delivery_fee": 600, - "delivery_time": "60", - "min_buy_free": "0", - "min_order_price": "0", - "region": []interface{}{ - region, + deliveryRegion = []interface{}{ + map[string]interface{}{ + "name": "主要配送区", + "delivery_fee": 600, + "delivery_time": "60", + "min_buy_free": "0", + "min_order_price": "0", + "region": []interface{}{ + region, + }, }, - }, + } } return deliveryRegion } @@ -328,14 +330,16 @@ func JxBusinessTime2Ebai(store *model.Store) interface{} { func genStoreMapFromStore(store *tEbaiStoreInfo) map[string]interface{} { params := map[string]interface{}{ - "name": jxutils.ComposeStoreName(store.Name, partner.StoreNameSeparator, VendorStorePrefix), - "phone": store.Tel1, - "longitude": jxutils.IntCoordinate2Standard(store.Lng), - "latitude": jxutils.IntCoordinate2Standard(store.Lat), - "address": store.Address, - "coord_type": ebaiapi.CoordTypeAutonavi, // 一直用高德 - "delivery_region": JxDeliveryRegion2Ebai(&store.Store), - "business_time": JxBusinessTime2Ebai(&store.Store), + "name": jxutils.ComposeStoreName(store.Name, partner.StoreNameSeparator, VendorStorePrefix), + "phone": store.Tel1, + "longitude": jxutils.IntCoordinate2Standard(store.Lng), + "latitude": jxutils.IntCoordinate2Standard(store.Lat), + "address": store.Address, + "coord_type": ebaiapi.CoordTypeAutonavi, // 一直用高德 + "business_time": JxBusinessTime2Ebai(&store.Store), + } + if deliveryRegion := JxDeliveryRegion2Ebai(&store.Store); deliveryRegion != nil { + params["delivery_region"] = deliveryRegion } if store.VendorStoreID != "" { params["baidu_shop_id"] = store.VendorStoreID