diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index 176995dad..1abf229cb 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -669,14 +669,17 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way riderLine := strings.Split(v.OriginalData, ";") // 路线坐标点 courierDistance := float64(time.Now().Unix()-v.WaybillCreatedAt.Unix()) * (float64(v.Distance) / float64(v.DurationTime)) // 当前骑手骑行距离 - nowCourierDrop := int64(math.Ceil((courierDistance / float64(v.Distance)) * float64(len(riderLine)))) // 当前骑手骑行距离,占中的骑行距离百分比. + if courierDistance >= float64(v.Distance) { + courierDistance = float64(v.Distance) + } + nowCourierDrop := int64(math.Ceil((courierDistance / float64(v.Distance)) * float64(len(riderLine)))) // 当前骑手骑行距离,占中的骑行距离百分比. if nowCourierDrop >= int64(len(riderLine)) { - v.CourierCoordinate = riderLine[nowCourierDrop-2] + v.CourierCoordinate = riderLine[nowCourierDrop-1] } if nowCourierDrop <= 0 { v.CourierCoordinate = riderLine[0] } - if v.Status == model.WaybillStatusDelivered { + if v.Status >= model.WaybillStatusDelivered { v.CourierCoordinate = riderLine[len(riderLine)-1] } }