/** * 將傳入的商品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'); }
/** * @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; }