user_id = $user->id; $order->source = $params['source']; $order->save(); $sku = GoodsSku::where("goods_id", $params['id'])->where("id", $params['sku_id'])->first(); if (is_null($sku)) { throw new ClientException("sku id:{$params['sku_id']} 没有找到"); } $og = new OrderGoods(); $og->order_id = $order->id; $og->goods_id = $params['id']; $og->sku_id = $params['sku_id']; $og->count = 1; $og->sn = $sku->sn; if ($skuCustom = Arr::get($params, "sku_custom")) { $og->sn = $og->sn . "-" . implode("-", Arr::pluck($skuCustom, "spec_attr_custom")); } $og->save(); return $order; }); OrderCreateEvent::dispatch($order); $gid = $order->goods->first()->goods_id; $goods = Goods::find($gid); return [ "id" => $order->id, "thumb" => $goods->thumb, "name" => $goods->name, "url" => "http://baidu.com/xxxx", ]; } public function askByCart(User $user, $params) { /** @var Order $order */ $order = DB::transaction(function () use ($user, $params) { $order = new Order(); $order->user_id = $user->id; $order->source = $params['source']; $order->save(); foreach ($params['ids'] as $cartId) { $cart = Cart::where("user_id", $user->id)->where("id", $cartId)->first(); if (is_null($cart)) { continue; } $og = new OrderGoods(); $og->order_id = $order->id; $og->goods_id = $cart->goods_id; $og->sku_id = $cart->sku_id; $og->count = $cart->count; $og->sn = $cart->sn; $og->save(); } return $order; }); OrderCreateEvent::dispatch($order); $gid = $order->goods->first()->goods_id; $goods = Goods::find($gid); return [ "id" => $order->id, "thumb" => $goods->thumb, "name" => $goods->name, "url" => "http://baidu.com/xxxx", ]; } }