コード例 #1
0
ファイル: Account.php プロジェクト: krisrita/udo
 function getOrderAction()
 {
     $userId = (int) $this->get('userId', 0);
     $mobile = $this->get('mobile', "");
     $status = (int) $this->get('status', -1);
     $payType = (int) $this->get('payType', 0);
     $previousId = (int) $this->get('previousId', 0);
     $pageSize = (int) $this->get('pageSize', 20);
     $date = $this->get('date', "");
     $page = (int) $this->get('page', 1);
     $startTime = 0;
     $endTime = 0;
     if ($date) {
         $startTime = strtotime(substr($date, 0, 10));
         $endTime = strtotime(substr($date, 13, 10));
     }
     /*        print_r($date);
             print_r(substr($date,0,10)." - ".substr($date,13,10));
             print_r($startTime." - ".$endTime);*/
     $accountModel = new AccountModel();
     $order = $accountModel->getOrder($userId, $mobile, $startTime, $endTime, $status, $payType, $previousId, $page, $pageSize);
     $orderList = $order['orderList'];
     $userModel = new UserModel();
     $schoolModel = new SchoolModel();
     $tradeModel = new TradeModel();
     //对orderList进行处理
     foreach ($orderList as $k => $value) {
         $orderList[$k]['mobile'] = $userModel->getUserName($value['userId'])['mobile'];
         switch ($value['payType']) {
             case Common_Config::UDO_PAYTYPE_COIN:
                 $orderList[$k]['payType'] = "U币购买";
                 break;
             case Common_Config::UDO_PAYTYPE_CREDIT:
                 $orderList[$k]['payType'] = "学分购买";
                 break;
             case Common_Config::UDO_PAYTYPE_RECHARGE:
                 $orderList[$k]['payType'] = "U币充值";
                 break;
         }
         switch ($value['status']) {
             case Common_Config::ORDER_SUCCESS:
                 $orderList[$k]['status'] = "支付成功";
                 break;
             case Common_Config::ORDER_NOT_PAY:
                 $orderList[$k]['status'] = "尚未支付";
                 break;
             case Common_Config::ORDER_FAIL:
                 $orderList[$k]['status'] = "订单支付失败";
                 break;
             case Common_Config::ORDER_CLOSED:
                 $orderList[$k]['status'] = "订单关闭";
                 break;
         }
         $orderList[$k]['createTime'] = date('Y-m-d H:i:s', $value['createTime']);
         //为order中的每一项赋予序号,便于在模板中的foreach给class赋值
         $orderList[$k]['no'] = $k;
         //处理resource
         //resource取出来是序列化的字符串,首先先反序列化
         if ($value['resource']) {
             $courseCount = 0;
             //$value['resource'] = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $value['resource']);
             //print_r($value['resource']);
             $orderList[$k]['resource'] = json_decode($value['resource'], true);
             $schoolInfo = [];
             //print_r($orderList[$k]['resource']);
             foreach ($orderList[$k]['resource'] as $v => $val) {
                 if ($val['resourceId'] == 1) {
                     continue;
                 }
                 $orderList[$k]['resource'][$v]['resourceName'] = $schoolModel->getSingleCourse($val['resourceId'])['name'];
                 $courseCount++;
                 if (!$schoolInfo) {
                     $schoolInfo = $schoolModel->getSchoolByCourse($val['resourceId']);
                 }
             }
             $orderList[$k]['courseCount'] = $courseCount;
             $orderList[$k]['schoolName'] = $schoolInfo['customer_name'];
             $orderList[$k]['schoolTitle'] = $schoolInfo['customer_title'];
         }
     }
     /*
      * 计算总页数,确定页码显示.页码显示需要的参数:
      */
     $pageNumber = ceil($order['orderCount'] / $pageSize);
     //如果总页数比10小或当前页比6小,那么分页变量是1到分页总数
     if ($pageNumber <= 10) {
         $pagination = range(1, $pageNumber);
     } elseif ($page <= 6 && $pageNumber > 10) {
         $pagination = range(1, 10);
     } else {
         $pagination = range($page - 5, $page + 4);
     }
     /*
      * 初始化筛选参数
      */
     $initFilter = array("date" => $date, "status" => $status, "payType" => $payType, "mobile" => $mobile, "userId" => $userId, "page" => $page, "pageNumber" => $pageNumber, "orderCount" => $order['orderCount']);
     $this->assign('orderList', $orderList);
     $this->assign('status', $tradeModel->getOrderStatus());
     $this->assign('payType', $tradeModel->getOrderPaytype());
     $this->assign('init', $initFilter);
     $this->assign('pagination', $pagination);
 }