| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -17,6 +17,7 @@ use GuzzleHttp\Exception\GuzzleException; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use Illuminate\Http\Request; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use Illuminate\Support\Facades\DB; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use App\Common\OrderStatus as Status; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use Illuminate\Support\Facades\Storage; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * 订单 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -111,7 +112,7 @@ class OrderController extends Controller | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (!$ap || !$ap->product) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$this->error('产品不存在'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if ($ap->product->stock < $formData['num']) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if ($ap->stock < $formData['num'] || $ap->product->stock < $formData['num']) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$this->error('对不起,库存不足'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -131,8 +132,10 @@ class OrderController extends Controller | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								//供应商产品表加销量、减库存
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								// $ap->product->sale += $formData['num']; TODO 支付成功之后再增加销量
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$ap->product->stock -= $formData['num']; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$ap->product->save(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$ap->product->decrement('stock', $formData['num']); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								//代理商产品表减库存
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$ap->decrement('stock', $formData['num']); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								// 存入订单表
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$order = Order::query()->create([ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -187,22 +190,27 @@ class OrderController extends Controller | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//去掉图片地址前的域名
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$host = env('APP_URL'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$prefix = Storage::disk('public')->url(''); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							foreach ($formData['pictures'] as &$v) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$v = str_replace($host, '', $v); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$v = str_replace($prefix, '', $v); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//TODO 需要后台处理,然后向微信发起退款申请
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$order = Order::find($formData['id']); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (!in_array($order->status, [Status::PAY_EARNEST, Status::PAID, Status::PAID_RETAINAGE])) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$order = Order::firstWhere(['id' => $formData['id'], 'user_id' => $this->user_id]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (!$order) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return $this->error('订单不存在'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//订金/定金/首付款不允许退款,只有付全款才能申请退款
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (!in_array($order->status, [Status::PAID, Status::PAID_RETAINAGE])) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return $this->error('当前订单状态不允许退款'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$order->status = Status::REFUNDING; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$order->refund_info = [ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'desc' => strip_tags($formData['desc']), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'refund_no' => $this->getOrderNo(), //退款单号
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'pictures' => $formData['pictures'] ?? [], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'old_status' => $order->status, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$order->status = Status::REFUNDING; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$order->save(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return $this->success(); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |