@Around("pageableCut()")
    public Object mapperAround(final ProceedingJoinPoint point) {
        // CHECKSTYLE:OFF
        try {
            Object query = point.getArgs()[0];
            PageParameter pageParameter = (PageParameter) ReflectUtils.getFieldValue(query, "pageParameter");
            if (Objects.isNull(pageParameter)) {
                return point.proceed();
            }
            Page<?> page = PageMethod.startPage(pageParameter.getCurrentPage(), pageParameter.getPageSize());
            Object proceed = point.proceed();
            CommonPager<?> commonPager = (CommonPager<?>) proceed;
            PageParameter result = commonPager.getPage();
            result = convert(page, result);
            commonPager.setPage(result);
            return proceed;
        } catch (Throwable throwable) {
            PageMethod.clearPage();
            throw new ShenyuException(throwable);
        }
        // CHECKSTYLE:ON
    }
@Test
    public void testMapperAround() {
        MetaDataQuery metaDataQuery = new MetaDataQuery();
        PageParameter pageParameter = new PageParameter();
        MetaDataQuery[] metaDataQueries = {metaDataQuery};
        /**
         * test null return.
         */
        when(point.getArgs()).thenReturn(metaDataQueries);
        Object result = pageableAspect.mapperAround(point);
        assertTrue(Objects.isNull(result));
        /**
         * test thrown Exception.
         */
        metaDataQuery.setPageParameter(pageParameter);
        when(point.getArgs()).thenReturn(metaDataQueries);
        boolean thrown = false;
        try {
            pageableAspect.mapperAround(point);
        } catch (ShenyuException e) {
            thrown = true;
        }
        assertTrue(thrown);
        /**
         * test return proceed.
         */
        CommonPager commonPager = mock(CommonPager.class);
        metaDataQuery.setPageParameter(pageParameter);
        when(point.getArgs()).thenReturn(metaDataQueries);
        pageParameter.setCurrentPage(1);
        pageParameter.setPageSize(50);
        pageParameter.setOffset(50);
        try {
            when(point.proceed()).thenReturn(commonPager);
        } catch (Throwable throwable) {
            throw new ShenyuException(throwable);
        }
        PageParameter newPageParameter = new PageParameter();
        when(commonPager.getPage()).thenReturn(newPageParameter);
        CommonPager resultCommonPager = (CommonPager) pageableAspect.mapperAround(point);
        assertEquals(pageParameter, newPageParameter);
        assertEquals(pageParameter, resultCommonPager.getPage());
    }