diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 3679f671d..a03f6adb8 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1950,7 +1950,21 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs for _, skuBindInfo := range skuBindInfos { // 关注且没有给价时,需要尝试从store_sku_bind中得到已有的单价 needGetExistingUnitPrice := skuBindInfo.UnitPrice == 0 && skuBindInfo.IsFocus == 1 + // 批量关注时补全sku,主要是为了补商品库存 + if len(skuBindInfo.Skus) > 0 && skuBindInfo.Skus[0].SkuID == 0 { + skuList, _ := dao.GetSkus(db, nil, []int{skuBindInfo.NameID}, nil, nil, nil) + skuBindInfoSkus := make([]*StoreSkuBindSkuInfo, 0, len(skuList)) + for _, sl := range skuList { + skuBindInfoSkus = append(skuBindInfoSkus, &StoreSkuBindSkuInfo{ + SkuID: sl.ID, + IsSale: skuBindInfo.IsSale, + Stock: skuBindInfo.Skus[0].Stock, + }) + } + skuBindInfo.Skus = skuBindInfoSkus + } inSkuBinds := skuBindInfo.Skus + var allBinds []*tStoreSkuBindAndSpec sql := ` SELECT diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index 449f02344..55050bc9f 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -247,6 +247,19 @@ func BaiDuCoord2Gaode2(baiduCoordinat []string) []string { return gaoCoordinat } +// GaodeCoord2BaiDu 高德坐标转百度坐标 +func GaodeCoord2BaiDu(lng, lat float64) (float64, float64) { + x := lng + y := lat + z := math.Sqrt(x*x+y*y) + 0.00002*math.Sin(y*math.Pi) + theta := math.Atan2(y, x) + 0.000003*math.Cos(x*math.Pi) + + bdLng := z*math.Cos(theta) + 0.0065 + bdLat := z*math.Sin(theta) + 0.006 + + return bdLng, bdLat +} + // distance单位为米 func ConvertDistanceToLogLat(lng, lat, distance, angle float64) (newLng, newLat float64) { oneDu := 111319.55 // 单位为米 diff --git a/business/partner/delivery/uupt/waybill.go b/business/partner/delivery/uupt/waybill.go index ad5a79223..9ae14a99a 100644 --- a/business/partner/delivery/uupt/waybill.go +++ b/business/partner/delivery/uupt/waybill.go @@ -324,10 +324,8 @@ func getOrderPrice(order *model.GoodsOrder) (orderPrice *uuptapi.GetOrderPriceRe // toLat = coords[1].Lat // toLng = coords[1].Lng //} - fromLat = jxutils.IntCoordinate2Standard(store.Lat) - fromLng = jxutils.IntCoordinate2Standard(store.Lng) - toLat = jxutils.IntCoordinate2Standard(order.ConsigneeLat) - toLng = jxutils.IntCoordinate2Standard(order.ConsigneeLng) + fromLng, fromLat = jxutils.GaodeCoord2BaiDu(jxutils.IntCoordinate2Standard(store.Lng), jxutils.IntCoordinate2Standard(store.Lat)) + toLng, toLat = jxutils.GaodeCoord2BaiDu(jxutils.IntCoordinate2Standard(order.ConsigneeLng), jxutils.IntCoordinate2Standard(order.ConsigneeLat)) weight := 4 tempWeight := 0