- use ShippingList and ShippingFetch to get delivery info for mtwm store

This commit is contained in:
gazebo
2019-03-14 16:34:21 +08:00
parent 1c5a431c10
commit 9932d6dc94
2 changed files with 16 additions and 7 deletions

View File

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

View File

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