public function discountedCart(Request $request, $cartId) { $input = $request->only('discount_percentage'); if (!$input['discount_percentage']) { $input['discount_percentage'] = 0; } $cart = Cart::where('id', $cartId)->update(['discount_percentage' => $input['discount_percentage']]); return $this->responseOk($cart); }
public function getSales(Request $request) { $input = $request->all(); $startDate = Carbon::today('Asia/Manila')->subDays(30); $endDate = Carbon::today('Asia/Manila'); if (isset($input['from'])) { $startDate = Carbon::createFromTimestamp(strtotime($input['from'])); $endDate = Carbon::createFromTimestamp(strtotime($input['to'])); } $carts = Cart::where('status', 'completed')->whereDate('created_at', '>=', $startDate->toDateString())->whereDate('created_at', '<=', $endDate->toDateString())->get(); $data = []; $difference = $endDate->diffInDays($startDate); $date = $startDate; for ($i = 1; $i <= $difference; $i++) { $date = $date->addDays(1); $data[$date->toDateString()] = ['appointment_date' => strtotime($date->toDateString()) * 1000, 'sales' => 0]; } foreach ($carts as $cart) { $dateKey = Carbon::createFromTimestamp(strtotime($cart['created_at']))->toDateString(); $data[$dateKey]['sales'] = $this->getTotalByCart($cart['id']); } return $this->responseOk(array_values($data)); }
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 setorder() { $address = Address::where('user_id', $this->user->id)->first(); if ($address) { $carts = Cart::with('good')->where('user_id', $this->user->id)->get(); $order = new Order(); $order->user_id = $this->user->id; $order->status = 0; $order->address_id = $address->id; $order->express_id = 1; $order->express_code = 918682605098; $order->total_price = $this->total_price(); $order->save(); foreach ($carts as $cart) { $order_good = new Order_good(); $order_good->good_id = $cart->good_id; $order_good->order_id = $order->id; $order_good->number = $cart->num; $order_good->save(); } $carts = Cart::where('user_id', $this->user->id)->delete(); $order_goods = Order_good::with('good')->where('order_id', $order->id)->get(); return view('wechat.setorder', ['address' => $address, 'carts' => $order_goods, 'total_price' => $order->total_price, 'cart_number' => 0, 'user_id' => $this->user->id]); } else { return redirect(url('/address', $this->user->id)); } }