/**
  * 將傳入的商品id作為條件選取出商品陣列,並將陣列內的商品從本促銷活動中移除
  * 
  * @Route("/api/{id}/product", name="promotion_api_product_delete", options={"expose"=true})
  * @ParamConverter("promotion", class="WoojinGoodsBundle:Promotion")
  * @Method("PUT")
  */
 public function removeAction(Request $request, Promotion $promotion)
 {
     $user = $this->get('security.token_storage')->getToken()->getUser();
     $em = $this->getDoctrine()->getManager();
     $qb = $em->createQueryBuilder();
     $qb->select('g')->from('WoojinGoodsBundle:GoodsPassport', 'g')->where($qb->expr()->in('g.id', json_decode($request->request->get('ids'))), $qb->expr()->eq('g.promotion', $promotion->getId()));
     $products = $qb->getQuery()->getResult();
     foreach ($products as $product) {
         $product->setPromotion(null);
         $em->persist($product);
     }
     $em->flush();
     return new Response('ok');
 }
Beispiel #2
0
 /**
  * @Route("/promotion/{id}", name="mobile_front_promotion", options={"expose"=true})
  * @ParamConverter("promotion", class="WoojinGoodsBundle:Promotion")
  * @Method("GET")
  * @Template()
  */
 public function promotionAction(Request $request, Promotion $promotion)
 {
     $request->request->set('page', $request->query->get('page', 1));
     $request->request->set('promotion', array($promotion->getId()));
     $request->request->set('productStatus', array(Avenue::GS_ONSALE));
     $request->request->set('perpage', 10);
     $request->request->set('isAllowWeb', 1);
     $return = $this->get('product.finder')->find($request)->getMobileViewData();
     $return['promotion'] = $promotion;
     return $return;
 }