public function editCardkeyClassAjaxAction(Request $request, Application $app)
 {
     $cardKeyClassId = $request->query->get('cardKeyClassId');
     $cardKeyClass = new CardKeyClass();
     $cardKeyClass->setId($cardKeyClassId);
     $resultFindById = $app['repository.cardKeyClass']->findById($cardKeyClass);
     if (!$resultFindById) {
         $app->abort(404, '没有找到此卡密大类');
     }
     $form = $app['form.factory']->create(new SaveCardKeyClassType(), $resultFindById);
     $form->handleRequest($request);
     if ($request->isMethod('POST')) {
         if ($form->isValid()) {
             $resultSave = $app['repository.cardKeyClass']->save($resultFindById);
             if ($resultSave) {
                 $msg = '修改成功。';
                 $url = '/admin/cardKeyClassList';
                 CommonFunc::alertHref($msg, $url);
                 return;
             } else {
                 $msg = '修改失败,请重试。';
                 CommonFunc::alertBack($msg);
                 return;
             }
         }
     }
     $data = array('form' => $form->createview(), 'title' => '卡密大类修改');
     return $app['twig']->render('admin/saveCardKeyClass.html.twig', $data);
 }
 protected function buildCardKeyClass($cardKeyClassData)
 {
     $cardKeyClass = new CardKeyClass();
     $cardKeyClass->setId($cardKeyClassData['id']);
     $cardKeyClass->setTitle($cardKeyClassData['title']);
     $cardKeyClass->setIntro($cardKeyClassData['intro']);
     $cardKeyClass->setIsVipOrInt($cardKeyClassData['isVipOrInt']);
     $cardKeyClass->setNumber($cardKeyClassData['number']);
     return $cardKeyClass;
 }
 public function userUseCardKeyAjaxAction(Request $request, Application $app)
 {
     $userCardKey = $request->query->get('cardKey');
     $userId = $app['session']->get('userId');
     $cardKey = new CardKey();
     $cardKey->setCardKey($userCardKey);
     $cardKeyInfo = $app['repository.cardKey']->findById($cardKey);
     if (!$cardKeyInfo) {
         $result = array('result' => 0, 'msg' => '卡密错误,请重新输入');
         return JsonResponse::create($result);
     }
     $cardKeyStatus = $cardKeyInfo->getStatus();
     if ($cardKeyStatus == -1) {
         $result = array('result' => -7, 'msg' => '卡密已经被删除');
         return JsonResponse::create($result);
     }
     if ($cardKeyStatus == 3) {
         $result = array('result' => -8, 'msg' => '卡密已经被兑换');
         return JsonResponse::create($result);
     }
     $cardKeyClass = new CardKeyClass();
     $cardKeyClass->setId($cardKeyInfo->getCardKeyClassId());
     $cardKeyClassInfo = $app['repository.cardKeyClass']->findById($cardKeyClass);
     if (!$cardKeyClassInfo) {
         $result = array('result' => -1, 'msg' => '卡密类型bug,请联系管理员');
         return JsonResponse::create($result);
     }
     $cardKeyClassType = $cardKeyClassInfo->getIsVipOrInt();
     $cardKeyClassNum = $cardKeyClassInfo->getNumber();
     $nowTime = time();
     if ($cardKeyClassType == 1) {
         $user = new User();
         $user->setId($userId);
         $userInfo = $app['repository.user']->findById($user);
         if ($userInfo->getVipEndTime() < $nowTime) {
             $user->setVipStartTime($nowTime);
             $user->setVipEndTime($nowTime + $cardKeyClassNum * 24 * 60 * 60);
         } else {
             $user->setVipStartTime($userInfo->getVipStartTime());
             $user->setVipEndTime($userInfo->getVipEndTime() + $cardKeyClassNum * 24 * 60 * 60);
         }
         $resultChangeVipTime = $app['repository.user']->changeVipTime($user);
         if ($resultChangeVipTime) {
             $cardKey = new CardKey();
             $cardKey->setStatus(3);
             $cardKey->setCardKey($userCardKey);
             $resultEditStatus = $app['repository.cardKey']->editStatus($cardKey);
             if ($resultEditStatus) {
                 $user = new User();
                 $user->setId($userId);
                 $user->setIsVip(1);
                 if ($userInfo->getIsVip() == 0) {
                     $resultChangeIsVip = $app['repository.user']->changeIsVip($user);
                 } else {
                     $resultChangeIsVip = 1;
                 }
                 if ($resultChangeIsVip) {
                     $result = array('result' => 1, 'msg' => '兑换成功');
                     return JsonResponse::create($result);
                 } else {
                     $result = array('result' => -6, 'msg' => '数据库错误,请联系管理员');
                     return JsonResponse::create($result);
                 }
             } else {
                 $result = array('result' => -3, 'msg' => '数据库错误,请联系管理员');
                 return JsonResponse::create($result);
             }
         } else {
             $result = array('result' => -2, 'msg' => '数据库错误,请联系管理员');
             return JsonResponse::create($result);
         }
     } else {
         if ($cardKeyClassType == 2) {
             $user = new User();
             $user->setId($userId);
             $userInfo = $app['repository.user']->findById($user);
             $user->setIntegration($userInfo->getIntegration() + $cardKeyClassNum);
             $user->setId($userId);
             $resultChangeIntegration = $app['repository.user']->changeIntegration($user);
             if ($resultChangeIntegration) {
                 $cardKey = new CardKey();
                 $cardKey->setStatus(3);
                 $cardKey->setCardKey($userCardKey);
                 $resultEditStatus = $app['repository.cardKey']->editStatus($cardKey);
                 if ($resultEditStatus) {
                     $result = array('result' => 1, 'msg' => '兑换成功');
                     return JsonResponse::create($result);
                 } else {
                     $result = array('result' => -5, 'msg' => '数据库错误,请联系管理员');
                     return JsonResponse::create($result);
                 }
             } else {
                 $result = array('result' => -4, 'msg' => '数据库错误,请联系管理员');
                 return JsonResponse::create($result);
             }
         }
     }
 }