diff --git a/business/partner/purchase/ebai/store.go b/business/partner/purchase/ebai/store.go index 39f6e44c8..c22fa7fa5 100644 --- a/business/partner/purchase/ebai/store.go +++ b/business/partner/purchase/ebai/store.go @@ -110,13 +110,6 @@ func (p *PurchaseHandler) ReadStore(vendorStoreID string) (*model.Store, error) retVal.Tel2 = tel2 } - db := dao.GetDB() - if city, err2 := dao.GetPlaceByName(db, utils.Interface2String(result["city"]), model.PlaceLevelCity, 0); err2 == nil { - retVal.CityCode = city.Code - if district, err2 := dao.GetPlaceByName(db, utils.Interface2String(result["county"]), model.PlaceLevelDistrict, city.Code); err2 == nil { - retVal.DistrictCode = district.Code - } - } lng := utils.MustInterface2Float64(result["longitude"]) lat := utils.MustInterface2Float64(result["latitude"]) if utils.Interface2String(result["coord_type"]) == ebaiapi.CoordTypeBaidu { @@ -128,8 +121,23 @@ func (p *PurchaseHandler) ReadStore(vendorStoreID string) (*model.Store, error) retVal.Lng = jxutils.StandardCoordinate2Int(lng) retVal.Lat = jxutils.StandardCoordinate2Int(lat) + db := dao.GetDB() + if city, err2 := dao.GetPlaceByName(db, utils.Interface2String(result["city"]), model.PlaceLevelCity, 0); err2 == nil { + retVal.CityCode = city.Code + districtName := utils.Interface2String(result["county"]) + if retVal.CityCode != 0 && districtName != "" { + if district, err2 := dao.GetPlaceByName(db, utils.Interface2String(result["county"]), model.PlaceLevelDistrict, city.Code); err2 == nil { + retVal.DistrictCode = district.Code + } + } + if retVal.DistrictCode == 0 { + retVal.DistrictCode = api.AutonaviAPI.GetCoordinateDistrictCode(lng, lat) + if district, err := dao.GetPlaceByCode(db, retVal.DistrictCode); err == nil { + retVal.CityCode = district.ParentCode + } + } + } retVal.ID = int(utils.Str2Int64WithDefault(utils.Interface2String(result["shop_id"]), 0)) - retVal.DeliveryRangeType = model.DeliveryRangeTypePolygon retVal.DeliveryRange = EbaiDeliveryRegion2Jx(result["delivery_region"])