Browse Source

配送费

master
Lemon 5 years ago
parent
commit
5a5b5d1e1c
  1. 17
      app/Service/v3/Implementations/DistributionPriceService.php
  2. 2
      config/config.php

17
app/Service/v3/Implementations/DistributionPriceService.php

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

2
config/config.php

@ -62,6 +62,6 @@ return [
'tencent' => env('TENCENT_MAP_KEY', ''), 'tencent' => env('TENCENT_MAP_KEY', ''),
], ],
'distance' => [ 'distance' => [
'delivery_distance' => env('DELIVERY_DISTANCE', '8000')
'delivery_distance' => env('DELIVERY_DISTANCE', '7000')
], ],
]; ];
Loading…
Cancel
Save