예제 #1
0
 public function toPdtContent(Request $request, $product_id)
 {
     $product = Product::find($product_id);
     $pdt_content = PdtContent::where('product_id', $product_id)->first();
     $pdt_images = PdtImages::where('product_id', $product_id)->get();
     $count = 0;
     $member = $request->session()->get('member', '');
     if ($member != '') {
         $cart_items = CartItem::where('member_id', $member->id)->get();
         foreach ($cart_items as $cart_item) {
             if ($cart_item->product_id == $product_id) {
                 $count = $cart_item->count;
                 break;
             }
         }
     } else {
         $bk_cart = $request->cookie('bk_cart');
         $bk_cart_arr = $bk_cart != null ? explode(',', $bk_cart) : array();
         foreach ($bk_cart_arr as $value) {
             // 一定要传引用
             $index = strpos($value, ':');
             if (substr($value, 0, $index) == $product_id) {
                 $count = (int) substr($value, $index + 1);
                 break;
             }
         }
     }
     return view('pdt_content')->with('product', $product)->with('pdt_content', $pdt_content)->with('pdt_images', $pdt_images)->with('count', $count);
 }
예제 #2
0
 public function toOrderCommit(Request $request)
 {
     // 获取微信重定向返回的code
     $code = $request->input('code', '');
     if ($code != '') {
         //获取code码,以获取openid
         $openid = WXTool::getOpenid($code);
         // 将openid保存到session
         $request->session()->put('openid', $openid);
     }
     $product_ids = $request->input('product_ids', '');
     $product_ids_arr = $product_ids != '' ? explode(',', $product_ids) : array();
     $member = $request->session()->get('member', '');
     $cart_items = CartItem::where('member_id', $member->id)->whereIn('product_id', $product_ids_arr)->get();
     $order = new Order();
     $order->member_id = $member->id;
     $order->save();
     $cart_items_arr = array();
     $cart_items_ids_arr = array();
     $total_price = 0;
     $name = '';
     foreach ($cart_items as $cart_item) {
         $cart_item->product = Product::find($cart_item->product_id);
         if ($cart_item->product != null) {
             $total_price += $cart_item->product->price * $cart_item->count;
             $name .= '《' . $cart_item->product->name . '》';
             array_push($cart_items_arr, $cart_item);
             array_push($cart_items_ids_arr, $cart_item->id);
             $order_item = new OrderItem();
             $order_item->order_id = $order->id;
             $order_item->product_id = $cart_item->product_id;
             $order_item->count = $cart_item->count;
             $order_item->pdt_snapshot = json_encode($cart_item->product);
             $order_item->save();
         }
     }
     CartItem::whereIn('id', $cart_items_ids_arr)->delete();
     $order->name = $name;
     $order->total_price = $total_price;
     $order->order_no = 'E' . time() . '' . $order->id;
     $order->save();
     // JSSDK 相关
     $access_token = WXTool::getAccessToken();
     $jsapi_ticket = WXTool::getJsApiTicket($access_token);
     $noncestr = WXTool::createNonceStr();
     $timestamp = time();
     $url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
     // 签名
     $signature = WXTool::signature($jsapi_ticket, $noncestr, $timestamp, $url);
     // 返回微信参数
     $bk_wx_js_config = new BKWXJsConfig();
     $bk_wx_js_config->appId = config('wx_config.APPID');
     $bk_wx_js_config->timestamp = $timestamp;
     $bk_wx_js_config->nonceStr = $noncestr;
     $bk_wx_js_config->signature = $signature;
     return view('order_commit')->with('cart_items', $cart_items_arr)->with('total_price', $total_price)->with('name', $name)->with('order_no', $order->order_no)->with('bk_wx_js_config', $bk_wx_js_config);
 }
 public function create()
 {
     $Request = $this->container->get('Core\\Http\\Request\\Request');
     if ($Request->getMethod() == 'POST') {
         $form = $Request->getPost()->get('form');
         if ($form->get('title') && $form->get('content')) {
             $em = $this->container->get('Core\\Orm\\Orm')->getEntityManager();
             $Product = new Product();
             $Product->setName($form->get('title'));
             $Product->setContent($form->get('content'));
             $em->persist($Product);
             $em->flush();
             $flash = "Added";
         } else {
             $flash = "Empty";
         }
     }
     return new Response('Default/create.html.twig', ['flash' => !empty($flash) ? $flash : '']);
 }
예제 #4
0
 private function syncCart($member_id, $bk_cart_arr)
 {
     $cart_items = CartItem::where('member_id', $member_id)->get();
     $cart_items_arr = array();
     foreach ($bk_cart_arr as $value) {
         $index = strpos($value, ':');
         $product_id = substr($value, 0, $index);
         $count = (int) substr($value, $index + 1);
         // 判断离线购物车中product_id 是否存在 数据库中
         $exist = false;
         foreach ($cart_items as $temp) {
             if ($temp->product_id == $product_id) {
                 if ($temp->count < $count) {
                     $temp->count = $count;
                     $temp->save();
                 }
                 $exist = true;
                 break;
             }
         }
         // 不存在则存储进来
         if ($exist == false) {
             $cart_item = new CartItem();
             $cart_item->member_id = $member_id;
             $cart_item->product_id = $product_id;
             $cart_item->count = $count;
             $cart_item->save();
             $cart_item->product = Product::find($cart_item->product_id);
             array_push($cart_items_arr, $cart_item);
         }
     }
     // 为每个对象附加产品对象便于显示
     foreach ($cart_items as $cart_item) {
         $cart_item->product = Product::find($cart_item->product_id);
         array_push($cart_items_arr, $cart_item);
     }
     return $cart_items_arr;
 }
예제 #5
0
 public function productAdd(Request $request)
 {
     $name = $request->input('name', '');
     $summary = $request->input('summary', '');
     $price = $request->input('price', '');
     $category_id = $request->input('category_id', '');
     $preview = $request->input('preview', '');
     $content = $request->input('content', '');
     $preview1 = $request->input('preview1', '');
     $preview2 = $request->input('preview2', '');
     $preview3 = $request->input('preview3', '');
     $preview4 = $request->input('preview4', '');
     $preview5 = $request->input('preview5', '');
     $product = new Product();
     $product->summary = $summary;
     $product->price = $price;
     $product->category_id = $category_id;
     $product->preview = $preview;
     $product->name = $name;
     $product->save();
     $pdt_content = new PdtContent();
     $pdt_content->product_id = $product->id;
     $pdt_content->content = $content;
     $pdt_content->save();
     if ($preview1 != '') {
         $pdt_images = new PdtImages();
         $pdt_images->image_path = $preview1;
         $pdt_images->image_no = 1;
         $pdt_images->product_id = $product->id;
         $pdt_images->save();
     }
     if ($preview2 != '') {
         $pdt_images = new PdtImages();
         $pdt_images->image_path = $preview2;
         $pdt_images->image_no = 2;
         $pdt_images->product_id = $product->id;
         $pdt_images->save();
     }
     if ($preview3 != '') {
         $pdt_images = new PdtImages();
         $pdt_images->image_path = $preview3;
         $pdt_images->image_no = 3;
         $pdt_images->product_id = $product->id;
         $pdt_images->save();
     }
     if ($preview4 != '') {
         $pdt_images = new PdtImages();
         $pdt_images->image_path = $preview4;
         $pdt_images->image_no = 4;
         $pdt_images->product_id = $product->id;
         $pdt_images->save();
     }
     if ($preview5 != '') {
         $pdt_images = new PdtImages();
         $pdt_images->image_path = $preview5;
         $pdt_images->image_no = 5;
         $pdt_images->product_id = $product->id;
         $pdt_images->save();
     }
     $m3_result = new M3Result();
     $m3_result->status = 0;
     $m3_result->message = '添加成功';
     return $m3_result->toJson();
 }