|
|
@ -11,28 +11,27 @@ class DistributionPriceService implements DistributionPriceServiceInterface |
|
|
{ |
|
|
{ |
|
|
public function do($distance) |
|
|
public function do($distance) |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
$deliveryDistance = config('distance.delivery_distance'); |
|
|
$deliveryDistance = config('distance.delivery_distance'); |
|
|
$deliveryDistance = ceil($deliveryDistance/1000); |
|
|
$deliveryDistance = ceil($deliveryDistance/1000); |
|
|
$km = ceil($distance/1000); |
|
|
$km = ceil($distance/1000); |
|
|
switch (true){ |
|
|
switch (true){ |
|
|
|
|
|
case ($km > $deliveryDistance) : |
|
|
|
|
|
throw new ErrorCodeException(ErrorCode::LOCATION_LONG_DISTANCE,'',['message' => '超出配送范围', 'data' => ['距离' => $km, '配送距离' => $deliveryDistance]]); |
|
|
|
|
|
break; |
|
|
case ($km > 3 && $km <= 5) : |
|
|
case ($km > 3 && $km <= 5) : |
|
|
// $distributionPrice = bcmul(0.70,($km-3),2);
|
|
|
// $distributionPrice = bcmul(0.70,($km-3),2);
|
|
|
$distributionPrice = 0; |
|
|
$distributionPrice = 0; |
|
|
break; |
|
|
break; |
|
|
case ($km > 5 && $km < 7) : |
|
|
|
|
|
|
|
|
case ($km > 5 && $km <= 7) : |
|
|
$distributionPrice = bcmul(1.50,($km-5),2); |
|
|
$distributionPrice = bcmul(1.50,($km-5),2); |
|
|
break; |
|
|
break; |
|
|
case ($km >= 7 && $km <= $deliveryDistance) : |
|
|
|
|
|
$distributionPrice = bcmul(1.50,($km-5),2); |
|
|
|
|
|
break; |
|
|
|
|
|
case ($km > $deliveryDistance) : |
|
|
|
|
|
throw new ErrorCodeException(ErrorCode::LOCATION_LONG_DISTANCE,'',['message' => '超出配送范围', 'data' => ['距离' => $km, '配送距离' => $deliveryDistance]]); |
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
// case ($km > 7 && $km <= $deliveryDistance) :
|
|
|
|
|
|
// $distributionPrice = bcmul(1.50,($km-5),2);
|
|
|
|
|
|
// break;
|
|
|
default: |
|
|
default: |
|
|
$distributionPrice = 0; |
|
|
$distributionPrice = 0; |
|
|
} |
|
|
} |
|
|
$distributionPrice = bcadd($distributionPrice,3.50,2); |
|
|
|
|
|
|
|
|
//$distributionPrice = bcadd($distributionPrice,3.50,2);
|
|
|
return (float) $distributionPrice; |
|
|
return (float) $distributionPrice; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|