Browse Source

取消姓名和手机号必填,自定义字段处理

master
李可松 4 years ago
parent
commit
3dd86d825d
  1. 28
      app/Http/Controllers/Api/OrderController.php

28
app/Http/Controllers/Api/OrderController.php

@ -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,

Loading…
Cancel
Save