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