Esempio n. 1
0
 public function actionConfirmOrder()
 {
     //确认订单之前查看用户余额够不够付
     $memberInfo = Members::model()->find('id=:id', array(':id' => Yii::app()->user->member_userinfo['id']));
     if ($memberInfo->balance < $this->order['Total'] && !in_array(Yii::app()->user->member_userinfo['id'], Yii::app()->params['allow_user_id'])) {
         throw new CHttpException(404, Yii::t('yii', '亲!您的账户余额不足,不能下单哦,到前台妹子交钱吧!'));
     }
     //构建数据
     $foodOrder = new FoodOrder();
     $foodOrder->shop_id = $this->order['shop_id'];
     $foodOrder->order_number = date('YmdHis', time()) . Common::getRandNums(6);
     $foodOrder->food_user_id = Yii::app()->user->member_userinfo['id'];
     $foodOrder->total_price = $this->order['Total'];
     $foodOrder->create_time = time();
     $foodOrder->product_info = serialize($this->order['Items']);
     if ($foodOrder->save()) {
         //记录订单动态
         $foodOrderLog = new FoodOrderLog();
         $foodOrderLog->food_order_id = $foodOrder->id;
         $foodOrderLog->create_time = time();
         if ($foodOrderLog->save()) {
             //清空购物车
             unset(Yii::app()->request->cookies['cart']);
             $this->redirect(Yii::app()->createUrl('site/orderok', array('ordernumber' => $foodOrder->order_number)));
         }
     } else {
         throw new CHttpException(404, Yii::t('yii', '下单失败'));
     }
 }
Esempio n. 2
0
 public function actionConfirmOrder()
 {
     //确认订单之前查看用户余额够不够付
     $memberInfo = Members::model()->find('id=:id', array(':id' => Yii::app()->user->member_userinfo['id']));
     //如果常驻员工只定了一份饭,则将费用减免掉
     if ($memberInfo->resident == 1 and $this->order['Count'] == 1) {
         $this->order['Total'] = 0;
         foreach ($this->order['Items'] as $k => $v) {
             $this->order['Items'][$k]['Price'] = 0;
             $this->order['Items'][$k]['smallTotal'] = 0;
         }
     }
     //服务器端判断订餐时间有没有超过限制时间
     $shop_id = Yii::app()->request->getParam('shop_id');
     if (!Yii::app()->check_time->isShopOntime($shop_id)) {
         throw new CHttpException(404, Yii::t('yii', '你提交的订餐不在该餐订餐时间内'));
     }
     //如果状态禁用,不允许提交订单
     if ($memberInfo->status == 2) {
         throw new CHttpException(404, Yii::t('yii', '你的帐号被管理员禁用,请联系行政MM处理!'));
     }
     if ($memberInfo->balance < $this->order['Total'] && !in_array(Yii::app()->user->member_userinfo['id'], Yii::app()->params['allow_user_id'])) {
         throw new CHttpException(404, Yii::t('yii', '您的账户余额不足,不能下单,到行政MM交钱吧!'));
     }
     //构建数据
     $foodOrder = new FoodOrder();
     $foodOrder->shop_id = $this->order['shop_id'];
     $foodOrder->order_number = date('YmdHis', time()) . Common::getRandNums(6);
     $foodOrder->food_user_id = Yii::app()->user->member_userinfo['id'];
     $foodOrder->total_price = $this->order['Total'];
     $foodOrder->create_time = time();
     $foodOrder->product_info = serialize($this->order['Items']);
     if ($foodOrder->save()) {
         //记录订单动态
         $foodOrderLog = new FoodOrderLog();
         $foodOrderLog->food_order_id = $foodOrder->id;
         $foodOrderLog->create_time = time();
         if ($foodOrderLog->save()) {
             //清空购物车
             unset(Yii::app()->request->cookies['cart']);
             $this->redirect(Yii::app()->createUrl('site/orderok', array('ordernumber' => $foodOrder->order_number)));
         }
     } else {
         throw new CHttpException(404, Yii::t('yii', '下单失败'));
     }
 }
Esempio n. 3
0
 public function actionConfirmOrder()
 {
     //检查在不在订餐时间内
     if (!Yii::app()->check_time->isOnTime()) {
         Error::output(Error::ERR_NOT_IN_TIME);
     }
     //接收传递过来的订单
     $menuInfo = Yii::app()->request->getParam('menu_info');
     $menuInfo = json_decode($menuInfo, 1);
     if ($menuInfo) {
         $shop_id = 0;
         $totalPrice = 0;
         //记录总价
         $orderData = array();
         //根据传递过来的订单构造数据
         foreach ($menuInfo as $k => $v) {
             $menu = Menus::model()->find('id = :id AND status = :status', array(':id' => $v['id'], ':status' => 2));
             if (!$menu) {
                 Error::output(Error::ERR_ORDER_DATA_WRONG);
             }
             if (!$shop_id) {
                 $shop_id = $menu->shop_id;
             } elseif ($menu->shop_id != $shop_id) {
                 Error::output(Error::ERR_MENU_NOT_SAME_SHOP);
             }
             $orderData[] = array('Id' => $menu->id, 'Name' => $menu->name, 'Count' => intval($v['nums']), 'Price' => $menu->price, 'smallTotal' => $menu->price * $v['nums']);
             $totalPrice += $menu->price * $v['nums'];
         }
         if (!$shop_id || empty($orderData)) {
             Error::output(Error::ERR_ORDER_DATA_WRONG);
         }
         //获取当前用户信息,查看用户账户余额够不够付款
         if ($this->module->user['balance'] < $totalPrice && !in_array($this->module->user['id'], Yii::app()->params['allow_user_id'])) {
             Error::output(Error::ERR_BALANCE_NOT_ENOUGH);
         }
         //构建数据
         $foodOrder = new FoodOrder();
         $foodOrder->shop_id = $shop_id;
         $foodOrder->order_number = date('YmdHis', time()) . Common::getRandNums(6);
         $foodOrder->food_user_id = $this->module->user['id'];
         $foodOrder->total_price = $totalPrice;
         $foodOrder->create_time = time();
         $foodOrder->product_info = serialize($orderData);
         if ($foodOrder->save()) {
             //记录订单动态
             $foodOrderLog = new FoodOrderLog();
             $foodOrderLog->food_order_id = $foodOrder->id;
             $foodOrderLog->create_time = time();
             $foodOrderLog->save();
             Out::jsonOutput(array('return' => 1));
             //下单成功
         } else {
             Error::output(Error::ERR_SAVE_FAIL);
         }
     }
 }