| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -119,19 +119,19 @@ class OrderController extends Controller | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$pay_type_values = join(',', array_keys(PayType::array())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$request->validate([ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'id' => ['required', 'regex:/^\d+$/'], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'name' => ['required', 'between:2,20'], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'mobile' => ['required', 'regex:/^1[3-9]\d{9}$/'], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//			'name' => ['required', 'between:2,20'],
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//			'mobile' => ['required', 'regex:/^1[3-9]\d{9}$/'],
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'pay_type' => ['required', 'in:' . $pay_type_values], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'num' => ['required', 'min:1'], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'spec_id' => ['required', 'array'], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'info' => ['array'], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							], [ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'id.required' => '未指定产品ID', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'name.required' => '请输入联系人姓名', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'mobile.required' => '请输入联系手机号', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//			'name.required' => '请输入联系人姓名',
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//			'mobile.required' => '请输入联系手机号',
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'id.regex' => '产品ID错误', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'name.between' => '联系人姓名在2~20字符之间', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'mobile.regex' => '请输入11位手机号', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//			'name.between' => '联系人姓名在2~20字符之间',
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//			'mobile.regex' => '请输入11位手机号',
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'pay_type.required' => '请选择支付方式', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'pay_type.in' => '不存在此支付方式', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'num.required' => '请输入购买数量', | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -141,7 +141,7 @@ class OrderController extends Controller | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								'info.array' => '订单信息必须是数组', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$ap = AgentProduct::with(['coupon', 'product', 'agentCloudProduct:id,price']) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$ap = AgentProduct::with(['coupon', 'product.diyForm.fields', 'agentCloudProduct:id,price']) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								->where('stock', '>=', $formData['num']) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								->where(['id' => $formData['id'], 'status' => ProductStatus::ON_SALE, 'agent_id' => $this->agent_id]) //判断agent_id,防止新入驻小程序的演示产品被下单
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								->whereDoesntHave('agentProductItem', function ($query) { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -155,6 +155,16 @@ class OrderController extends Controller | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$order_info = $formData['info'] ?? []; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (!empty($ap->product->diyForm->fields) && !$ap->product->diyForm->fields->isEmpty()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$fields = array_column($ap->product->diyForm->fields->toArray(), null, 'field'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								foreach ($fields as &$field) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if ($field['required'] && !isset($order_info[$field['field']])) { //判断是否必填
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										return $this->error($field['field'] . '不能为空'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									$field['value'] = $order_info[$field['field']] ?? ''; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$order_info = $fields; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//0:单品销售;1:组合销售
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if ($ap->type == 0) { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -287,8 +297,8 @@ class OrderController extends Controller | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									'order_no' => $orderNo, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									'num' => $formData['num'], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									'price' => $order_price, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									'name' => $formData['name'], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									'mobile' => $formData['mobile'], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									'name' => $formData['name'] ?? '', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									'mobile' => $formData['mobile'] ?? '', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									'title' => $ap->title, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									'picture' => $ap->picture, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									'agent_product_id' => $ap->id, | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |