question: @ RequestProcessing ( value = "/admin/charge-records" , method = HTTPRequestMethod . GET ) @ Before ( adviceClass = { StopwatchStartAdvice . class , MallAdminCheck . class } ) @ After ( adviceClass = { CSRFToken . class , StopwatchEndAdvice . class } ) public void showChargeRecords ( final HTTPRequestContext context , final HttpServletRequest request , final HttpServletResponse response ) throws Exception { final AbstractFreeMarkerRenderer renderer = new SkinRenderer ( ) ; context . setRenderer ( renderer ) ; renderer . setTemplateName ( "admin/charge-records.ftl" ) ; final Map < String , Object > dataModel = renderer . getDataModel ( ) ; String pageNumStr = request . getParameter ( "p" ) ; if ( Strings . isEmptyOrNull ( pageNumStr ) || ! Strings . isNumeric ( pageNumStr ) ) { pageNumStr = "1" ; } final int pageNum = Integer . valueOf ( pageNumStr ) ; final int pageSize = Symphonys . PAGE_SIZE ; final JSONObject result = pointtransferQueryService . getChargeRecords ( pageNum , pageSize ) ; final List < JSONObject > results = ( List < JSONObject > ) result . opt ( Keys . RESULTS ) ; for ( final JSONObject record : results ) { final String toUserId = record . optString ( Pointtransfer . TO_ID ) ; final JSONObject toUser = userQueryService . getUser ( toUserId ) ; record . put ( User . USER_NAME , toUser . optString ( User . USER_NAME ) ) ; record . put ( UserExt . USER_REAL_NAME , toUser . optString ( UserExt . USER_REAL_NAME ) ) ; final String handlerId = StringUtils . substringAfterLast ( record . optString ( Pointtransfer . DATA_ID ) , "-" ) ; final JSONObject handler = userQueryService . getUser ( handlerId ) ; record . put ( Common . HANDLER_NAME , handler . optString ( User . USER_NAME ) ) ; record . put ( Common . HANDLER_REAL_NAME , handler . optString ( UserExt . USER_REAL_NAME ) ) ; record . put ( Pointtransfer . TIME , new Date ( record . optLong ( Pointtransfer . TIME ) ) ) ; record . put ( Common . MONEY , StringUtils . substringBefore ( record . optString ( Pointtransfer . DATA_ID ) , "-" ) ) ; } dataModel . put ( Keys . RESULTS , results ) ; final long chargePointSum = pointtransferQueryService . getChargePointSum ( ) ; final int pointExchangeUnit = Symphonys . getInt ( "pointExchangeUnit" ) ; dataModel . put ( Common . CHARGE_SUM , chargePointSum / pointExchangeUnit ) ; final JSONObject pagination = result . optJSONObject ( Pagination . PAGINATION ) ; final int pageCount = pagination . optInt ( Pagination . PAGINATION_PAGE_COUNT ) ; final JSONArray pageNums = pagination . optJSONArray ( Pagination . PAGINATION_PAGE_NUMS ) ; dataModel . put ( Pagination . PAGINATION_FIRST_PAGE_NUM , pageNums . opt ( 0 ) ) ; dataModel . put ( Pagination . PAGINATION_LAST_PAGE_NUM , pageNums . opt ( pageNums . length ( ) - 1 ) ) ; dataModel . put ( Pagination . PAGINATION_CURRENT_PAGE_NUM , pageNum ) ; dataModel . put ( Pagination . PAGINATION_PAGE_COUNT , pageCount ) ; dataModel . put ( Pagination . PAGINATION_PAGE_NUMS , CollectionUtils . jsonArrayToList ( pageNums ) ) ; filler . fillHeaderAndFooter ( request , response , dataModel ) ; }
target:  Shows admin point charge records.