手动实现分页接口

当项目组负责某个业务service的同学告诉你,他的数据是自己通过汇聚其他接口拼凑来的,所以无法使用自带分页插件,前端的同学告诉你他的view组件是默认需要分页的,数据格式必须按照分页的格式来,做为提供接口的你该如何是好?只好手动写分页了。

public UnifyResp recommendProductlist(RecommendProductVO search) {
        try {
            RecommendProductVO rproduct = recommendproductservice.getRecommendProductByCode(search.getRecommendCode());
            if (null != rproduct) {
                String ids = rproduct.getIds();
                //查商品
                List<ProductVO> productVOList = productService.simpleBatchSelectByPids(Arrays.asList(ids.split(",")));
                int listSize = productVOList.size();
                //返回total
                rproduct.setTotal(listSize);

                int currentPage = search.getCurrentPage();
                int pageSize = search.getPageSize();
                //当前页码数据有误设置页码为1
                if (null == Integer.valueOf(currentPage) || currentPage < 1) {
                    currentPage = 1;
                }
                rproduct.setCurrentPage(currentPage);

                //当前条数有误设置条数为10
                if (null == Integer.valueOf(pageSize) || 0 == pageSize) {
                    pageSize = 10;
                }
                rproduct.setPageSize(pageSize);

                int startIndex;
                int endIndex = 1;
                //当前页码为1,设置初始值为0
                if (currentPage == 1) {
                    startIndex = 0;
                    //当前页码不为1,设置结束值=条数值
                    if (pageSize != 1) {
                        endIndex = pageSize;
                    }
                } else {
                    //起始值 = (当前页码-1) * 条数
                    startIndex = (currentPage - 1) * pageSize;
                    //结束值 = 当前页码 * 条数 - 1
                    endIndex = currentPage * pageSize - 1;
                }
                //当前页x条数如果大于总size
                if (currentPage * pageSize > listSize) {
                    //当前页码显示的第一条数据如果大于总size(总size=7 当前页码5,总条数2),直接返回空数据
                    if (currentPage * pageSize - pageSize >= listSize) {
                        rproduct.setProductList(new ArrayList<>());
                        return UnifyResp.success(rproduct, UnifyCode.SUCCESS);
                    } else if (endIndex >= listSize) { //当前页码显示的第一条数据在总size范围内,结束值设置为总size
                        endIndex = listSize;
                    }
                }
                //subList取值index需要+1,如果结束值小于总size并且当前页码不等于1,结束值+1
                if (endIndex < listSize && currentPage != 1) {
                    productVOList = productVOList.subList(startIndex, endIndex + 1);
                } else {
                    productVOList = productVOList.subList(startIndex, endIndex);
                }
                rproduct.setProductList(productVOList);
            }
            return UnifyResp.success(rproduct, UnifyCode.SUCCESS);

        } catch (Exception e) {
            e.printStackTrace();
            log.error(e.getMessage(), e);
        }
        return UnifyResp.error(UnifyCode.ERROR500);
    }
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇