/** * Run the database seeds. * * @return void */ public function run() { for ($i = 1; $i < 10; $i++) { \App\Models\Cart::create(['table_id' => $i, 'status' => 'active']); } $faker = Faker\Factory::create(); for ($i = 1; $i < 10; $i++) { for ($k = 1; $k < 6; $k++) { \App\Models\CartItem::create(['cart_id' => $i, 'product_id' => $k, 'quantity' => $faker->numberBetween(5, 20), 'status' => 'active']); } } }
public function add_cart(Request $request) { //判断购物车,当前商品是否有记录 $cart = Cart::where('good_id', $request->good_id)->where('user_id', $this->user->id)->first(); //当前商品库存数 $number = Good::find($request->good_id)->number; // //如果是初次新增到购物车 if (!$cart) { //如果用户提交数大于库存数,提示商品库存不足 if ($request->num > $number) { return response()->json(['status' => 0, 'info' => '商品库存不足']); } Cart::create(['good_id' => $request->good_id, 'user_id' => $this->user->id, 'number' => $request->num]); return response()->json(['status' => 1, 'info' => '恭喜,已添至购物车~', 'cart_number' => $this->cart_number()]); } //如果购物车已经有该商品的记录 //购物车里的数量+用户新提交的数量 > 库存数 $new_num = $cart->number + $request->num; if ($new_num > $number) { return response()->json(['status' => 0, 'info' => '商品库存不足']); } //如果库存足够,就把原有的数量+新数量,更新数据库 $cart->number = $new_num; $cart->save(); //status起一个壮态标志作用,看是否购买成功 return response()->json(['status' => 1, 'info' => '恭喜,已添至购物车~', 'cart_number' => $this->cart_number()]); }
public function add_cart(Request $request) { //判断购物车,当前商品是否有记录 $cart = Cart::where('good_id', $request->good_id)->where('user_id', $this->user->id)->first(); //当前商品库存数 $number = Good::find($request->good_id)->number; //如果是初次新增到购物车 if (!$cart) { //如果用户提交数大于库存数,提示商品库存不足 if ($request->num > $number) { return response()->json(['status' => 0, 'info' => '购买量不能超过库存总数']); } Cart::create(['good_id' => $request->good_id, 'user_id' => $this->user->id, 'num' => $request->num]); return response()->json(['status' => 1, 'info' => '恭喜,已添至购物车~', 'cart_number' => $this->cart_number()]); } //如果购物车已经有该商品的记录 //购物车里的数量+用户新提交的数量 > 库存数 $new_num = $cart->num + $request->num; if ($new_num > $number) { return response()->json(['status' => 0, 'info' => '购物车中该商品数量已超过库存']); } $cart->num = $new_num; $cart->save(); return response()->json(['status' => 1, 'info' => '恭喜,已添至购物车~', 'cart_number' => $this->cart_number(), 'total_price' => number_format($this->total_price(), 2)]); }
/** * Create the cart * * @param $tableId * @return static */ private function createCart($data) { return Cart::create($data); }