From 9932d6dc94a5e0c19962fc5e5fc614d70d8af77a Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 14 Mar 2019 16:34:21 +0800 Subject: [PATCH] - use ShippingList and ShippingFetch to get delivery info for mtwm store --- business/model/store.go | 2 +- business/partner/purchase/mtwm/store.go | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/business/model/store.go b/business/model/store.go index d2f42dd9d..f70922f46 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -135,7 +135,7 @@ type Store struct { Licence string `orm:"size(255)" json:"licence"` LicenceCode string `orm:"size(32)" json:"licenceCode"` - DeliveryType int8 `orm:"-" json:"-"` + DeliveryType int8 `orm:"-" json:"deliveryType"` // 仅用于传值 } func (*Store) TableUnique() [][]string { diff --git a/business/partner/purchase/mtwm/store.go b/business/partner/purchase/mtwm/store.go index afdca03bf..3a76d3733 100644 --- a/business/partner/purchase/mtwm/store.go +++ b/business/partner/purchase/mtwm/store.go @@ -3,7 +3,9 @@ package mtwm import ( "errors" + "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" @@ -30,16 +32,15 @@ type tEbaiStoreInfo struct { DistrictID int `orm:"column(district_id)"` } -func (p *PurchaseHandler) ReadStore(vendorStoreID string) (*model.Store, error) { +func (p *PurchaseHandler) ReadStore(vendorStoreID string) (retVal *model.Store, err error) { result, err := api.MtwmAPI.PoiGet(vendorStoreID) if err == nil { // globals.SugarLogger.Debug(utils.Format4Output(result, false)) - retVal := &model.Store{ + retVal = &model.Store{ Address: utils.Interface2String(result["address"]), Tel1: utils.Interface2String(result["phone"]), } _, retVal.Name = jxutils.SplitStoreName(utils.Interface2String(result["name"]), partner.StoreNameSeparator, VendorStorePrefix) - retVal.DeliveryType = 0 // todo openTimes := openTimeMtwm2JX(result["shipping_time"].(string)) if len(openTimes) > 0 { @@ -70,11 +71,19 @@ func (p *PurchaseHandler) ReadStore(vendorStoreID string) (*model.Store, error) poiCode := utils.Interface2String(result["app_poi_code"]) retVal.ID = int(utils.Str2Int64WithDefault(poiCode, 0)) retVal.DeliveryRangeType = model.DeliveryRangeTypePolygon - if deliveryRangeInfo, err := api.MtwmAPI.ShippingList(poiCode); err != nil { - return nil, err - } else { + var deliveryRangeInfo []map[string]interface{} + deliveryRangeInfo, err = api.MtwmAPI.ShippingList(poiCode) + if err != nil { + deliveryRangeInfo, err = api.MtwmAPI.ShippingFetch(poiCode) + } + if err == nil { if len(deliveryRangeInfo) > 0 { retVal.DeliveryRange = rangeMtwm2JX(deliveryRangeInfo[0]["area"].(string)) + if utils.Interface2String(deliveryRangeInfo[0]["logistics_code"]) == mtwmapi.PeiSongTypeSelf { + retVal.DeliveryType = scheduler.StoreDeliveryTypeByStore + } else { + retVal.DeliveryType = scheduler.StoreDeliveryTypeCrowdSourcing + } } } return retVal, nil