/** * 用户资金变动列表 * * @param $f3 */ public function Money($f3) { // 权限检查 $this->requirePrivilege('manage_account_user_money'); global $smarty; // 参数验证 $validator = new Validator($f3->get('GET')); $pageNo = $validator->digits()->min(0)->validate('pageNo'); $pageSize = $validator->digits()->min(0)->validate('pageSize'); //查询条件 $formQuery = array(); $formQuery['user_id'] = $validator->filter('ValidatorIntValue')->validate('user_id'); $formQuery['admin_user_id'] = $validator->filter('ValidatorIntValue')->validate('admin_user_id'); $formQuery['change_type'] = $validator->filter('ValidatorIntValue')->validate('change_type'); $formQuery['change_desc'] = $validator->validate('change_desc'); // 设置缺省值 $pageNo = isset($pageNo) && $pageNo > 0 ? $pageNo : 0; $pageSize = isset($pageSize) && $pageSize > 0 ? $pageSize : 20; if (!$this->validate($validator)) { goto out_display; } // 建立查询条件 $condArray = QueryBuilder::buildQueryCondArray($formQuery); // 查询资金列表 $accountLogService = new AccountLogService(); $totalCount = $accountLogService->_countArray('account_log', $condArray); if ($totalCount <= 0) { // 没用户,可以直接退出了 goto out_display; } // 页数超过最大值,返回第一页 if ($pageNo * $pageSize >= $totalCount) { RouteHelper::reRoute($this, '/Account/User/Money'); } // 资金列表 $accountLogArray = $accountLogService->_fetchArray('account_log', '*', $condArray, array('order' => 'log_id desc'), $pageNo * $pageSize, $pageSize); // 取用户信息 $userIdArray = array(); foreach ($accountLogArray as $accountLogItem) { $userIdArray[] = $accountLogItem['user_id']; } $userIdArray = array_unique($userIdArray); $userBasicService = new UserBasicService(); $userInfoArray = $userBasicService->fetchUserArrayByUserIdArray($userIdArray); //建立倒查表 $userIdToUserInfoMap = array(); foreach ($userInfoArray as $userInfo) { $userIdToUserInfoMap[$userInfo['user_id']] = $userInfo; } // 转换显示 foreach ($accountLogArray as &$accountLogItem) { $accountLogItem['user_name'] = @$userIdToUserInfoMap[$accountLogItem['user_id']]['user_name']; $accountLogItem['change_type_desc'] = AccountLogService::$changeTypeDesc[$accountLogItem['change_type']]; } // 给模板赋值 $smarty->assign('totalCount', $totalCount); $smarty->assign('pageNo', $pageNo); $smarty->assign('pageSize', $pageSize); $smarty->assign('accountLogArray', $accountLogArray); out_display: $smarty->display('account_user_money.tpl'); }