public function actionOneKey() { if (Yii::app()->request->isAjaxRequest) { //查询出今日待付款的订单 $criteria = new CDbCriteria(); $criteria->order = 't.create_time DESC'; //按时间倒序排 $today = strtotime(date('Y-m-d')); $tomorrow = strtotime(date('Y-m-d', time() + 24 * 3600)); $criteria->condition = '(t.status = :status) AND t.create_time > :today AND t.create_time < :tomorrow'; $criteria->params = array(':status' => 1, ':today' => $today, ':tomorrow' => $tomorrow); $model = FoodOrder::model()->with('shops', 'members')->findAll($criteria); //循环扣款 foreach ($model as $k => $cur_order) { $user_balance = $cur_order->members->balance; //获取用户的账户余额 //如果用户账户余额不够就直接下一个 if ($user_balance < $cur_order->total_price) { continue; } $cur_order->members->balance -= $cur_order->total_price; if ($cur_order->members->save()) { $cur_order->status = 2; if ($cur_order->save()) { //创建一条订单日志 $foodOrderLog = new FoodOrderLog(); $foodOrderLog->food_order_id = $cur_order->id; $foodOrderLog->status = $cur_order->status; $foodOrderLog->create_time = time(); if ($foodOrderLog->save()) { //记录扣款记录 Yii::app()->record->record($cur_order->food_user_id, $cur_order->total_price); } } } } $this->output(array('success' => 1, 'successText' => '一健扣款成功')); } else { throw new CHttpException(404, Yii::t('yii', '非法操作')); } }
public function actionCancelOrder() { if (Yii::app()->request->isAjaxRequest) { $food_order_id = Yii::app()->request->getParam('id'); if (!$food_order_id) { $this->errorOutput(array('errorCode' => 1, 'errorText' => '没有id')); } //判断当前时间有没有已经过了订餐的时间,如果过了订餐的时间,就不能取消订单了,只能让妹子操作后台取消 if (!Yii::app()->check_time->isOnTime()) { $this->errorOutput(array('errorCode' => 1, 'errorText' => '已经过了订餐时间,您暂时不能取消订单,如果确实需要取消,请联系前台妹子')); } $orderInfo = FoodOrder::model()->find('id=:id AND food_user_id=:food_user_id', array(':id' => $food_order_id, ':food_user_id' => Yii::app()->user->member_userinfo['id'])); if (!$orderInfo) { $this->errorOutput(array('errorCode' => 1, 'errorText' => '该订单不存在')); } else { if ($orderInfo->status != 1) { $this->errorOutput(array('errorCode' => 1, 'errorText' => '该订单不能被取消')); } } $orderInfo->status = 3; if ($orderInfo->save()) { //创建一条订单日志 $foodOrderLog = new FoodOrderLog(); $foodOrderLog->food_order_id = $food_order_id; $foodOrderLog->status = $orderInfo->status; $foodOrderLog->create_time = time(); if ($foodOrderLog->save()) { $this->output(array('success' => 1, 'successText' => '取消订单成功')); } else { $this->errorOutput(array('errorCode' => 1, 'errorText' => '更新订单状态失败')); } } else { $this->errorOutput(array('errorCode' => 1, 'errorText' => '取消订单失败')); } } else { throw new CHttpException(404, Yii::t('yii', '非法操作')); } }
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); } } }