Ejemplo n.º 1
0
 /**
  * 用户资金变动列表
  *
  * @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');
 }