/** * 列出结算对应的订单明细 * * @param $f3 */ public function ListOrderGoods($f3) { global $smarty; // 参数验证 $validator = new Validator($f3->get('GET')); $settle_id = $validator->required('结算ID非法')->digits('结算ID非法')->min(1, true, '结算ID非法')->validate('settle_id'); $pageNo = $validator->digits()->min(0)->validate('pageNo'); $pageSize = $validator->digits()->min(0)->validate('pageSize'); // 设置缺省值 $pageNo = isset($pageNo) && $pageNo > 0 ? $pageNo : 0; $pageSize = isset($pageSize) && $pageSize > 0 ? $pageSize : 10; if (!$this->validate($validator)) { goto out_fail; } // 做权限检查 $authSupplierUser = AuthHelper::getAuthUser(); $orderSettleService = new OrderSettleService(); $orderSettle = $orderSettleService->loadOrderSettleBySettleId($settle_id); if ($orderSettle->isEmpty() || $authSupplierUser['suppliers_id'] !== $orderSettle['suppliers_id']) { $this->addFlashMessage('结算ID非法'); goto out_fail; } $orderGoodsService = new OrderGoodsService(); $totalCount = $orderGoodsService->countOrderGoodsArray(array(array('settle_id = ?', $settle_id))); if ($totalCount <= 0) { // 没订单,可以直接退出了 goto out; } // 页数超过最大值,返回结算列表 if ($pageNo * $pageSize >= $totalCount) { goto out_fail; } $orderGoodsArray = $orderGoodsService->fetchOrderGoodsArray(array(array('settle_id = ?', $settle_id)), $pageNo * $pageSize, $pageSize); // 转换状态显示 foreach ($orderGoodsArray as &$orderGoodsItem) { $orderGoodsItem['order_goods_status_desc'] = OrderGoodsService::$orderGoodsStatusDesc[$orderGoodsItem['order_goods_status']]; } unset($orderGoodsItem); // 给模板赋值 $smarty->assign('totalCount', $totalCount); $smarty->assign('pageNo', $pageNo); $smarty->assign('pageSize', $pageSize); $smarty->assign('orderGoodsArray', $orderGoodsArray); out: $smarty->display('order_settle_listordergoods.tpl'); return; out_fail: // 失败从这里退出 RouteHelper::reRoute($this, '/Order/Settle/ListSettle'); }