Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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));
 }
Esempio n. 3
0
 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));
     }
 }