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