diff --git a/app/Http/Controllers/Api/OrderController.php b/app/Http/Controllers/Api/OrderController.php index cb79d1e..a74eb59 100644 --- a/app/Http/Controllers/Api/OrderController.php +++ b/app/Http/Controllers/Api/OrderController.php @@ -128,17 +128,12 @@ class OrderController extends Controller $ap = AgentProduct::query() ->where('id', $formData['id']) - ->with('coupon') - ->with('product') + ->with(['coupon', 'product', 'agentCloudProduct:id,price']) ->has('product') ->first(); if (!$ap || !$ap->product) { $this->error('产品不存在或已下架'); } - //TODO 供应商产品需要判断组合产品库存 - if ($ap->stock < $formData['num'] || $ap->product->stock < $formData['num']) { - $this->error('对不起,库存不足'); - } $coupon_ids = []; if ($ap->coupon) { @@ -150,7 +145,6 @@ class OrderController extends Controller DB::beginTransaction(); try { $price = $this->calc($ap->price, $formData['num'], $formData['pay_type'], $ap); - $title = $ap->title; //产品标题 //供应商产品表减库存 $product_ids = explode(',', $ap->product_ids); @@ -184,7 +178,7 @@ class OrderController extends Controller 'price' => $price, 'name' => $formData['name'], 'mobile' => $formData['mobile'], - 'title' => $title, + 'title' => $ap->title, 'picture' => $ap->picture, 'agent_product_id' => $ap->id, 'product_id' => $ap->product_id, @@ -194,6 +188,8 @@ class OrderController extends Controller 'coupon_id' => join(',', $coupon_ids), 'guide_id' => $ap->guide_id, 'timeout' => $timeout, + 'agent_cloud_pid' => $ap->agent_cloud_pid, + 'agent_cloud_price' => $ap->agentCloudProduct->price, ]); //存入订单产品表 diff --git a/app/Models/AgentProduct.php b/app/Models/AgentProduct.php index a8c4d7f..c2733ca 100644 --- a/app/Models/AgentProduct.php +++ b/app/Models/AgentProduct.php @@ -52,6 +52,11 @@ class AgentProduct extends BaseModel return $this->hasMany(AgentProductItem::class); } + public function agentCloudProduct() + { + return $this->belongsTo(self::class, 'agent_cloud_pid', 'id'); + } + public function setChannelIdAttribute($value) { $this->attributes['channel_id'] = is_array($value) ? join(',', array_filter($value)) : $value;