首页 > 其他分享 >一个简单的遍历需求

一个简单的遍历需求

时间:2024-07-30 13:40:09浏览次数:6  
标签:需求 pageIndex 遍历 pageSize int lgType vo 简单 shopTab

今天开发一个前端遍历展示的接口,被前端怼了

看图需求很简单

  1. 多行展示
  2. 每行多个,可显示更多,每行可左右滑动

为了图省事简单组装一下直接返回回去了,方便是真的方便,前端生气也是真的生气,可以简单对这个横向、纵向接口压缩一下

  1. 横向空间上,可以取分页,前端自己传,无论是懒加载还是更多,根据pageSize、返回的数据量决定,可以提供给前端自定义的空间
  2. 纵向空间上,入参加入 type,前端自己写死对应枚举

这样无论扩展还是数据冗余都有比较大的改善

    /**
     * 兑换页信息
     */
    @RequestMapping("tab")
    public ResultVO<ShopTapBrieVo> tab(@RequestHeader(HttpHeadConstant.lgType) int lgType,
                                       @RequestParam int tabType,
                                       @RequestParam int pageIndex,
                                       @RequestParam int pageSize) {
        return ResultVO.success(shopService.tab(tabType, pageIndex, pageSize, lgType));
    }
    
    // service
    public ShopTapBrieVo tab(int pageIndex, int pageSize, int type, int lgType) {
        for (ShopTab shopTab : ItemManager.getShopTabs()) {
            if (shopTab.getId() != type) {
                continue;
            }
            ShopTapBrieVo vo = new ShopTapBrieVo();
            LanguageInfo language = LanguageManger.getLanguage(Module.SHOP, ItemManager.TYPE2_SHOP_TAP_NAME, 0, shopTab.getId(), lgType);
            if (language != null) {
                vo.setTapTitle(language.getContext1());
            } else {
                vo.setTapTitle(shopTab.getName());
            }
            List<ShopDefineBrieVo> collect = ItemManager.getShopTabDefines(shopTab.getId())
                    .stream()
                    .map(e -> new ShopDefineBrieVo(e, lgType))
                    .collect(Collectors.toList());

            // 内存分页
            int total = collect.size();
            int fromIndex = Math.min(pageIndex * pageSize, total);
            int toIndex = Math.min((pageIndex + 1) * pageSize, total);

            vo.setVos(collect.subList(fromIndex, toIndex));
            return vo;
        }
        return null;
    }

由于规则数据是预加载到内存中,所以直接使用内存分页,由于 subList 采用的是视图,并不会创建多余的对象,这里顺便回顾一下其他知识 java集合中sublist()的坑

这是一段防爬代码块,我不介意文章被爬取,但请注明出处
console.log("作者主页:https://www.cnblogs.com/Go-Solo");
console.log("原文地址:https://www.cnblogs.com/Go-Solo/p/18332136");

标签:需求,pageIndex,遍历,pageSize,int,lgType,vo,简单,shopTab
From: https://www.cnblogs.com/Go-Solo/p/18332136

相关文章

  • 如何使用支持简单类型和属性的字段声明协议?
    (相关但不重复:如何注释可以实现为属性的属性?)我想创建一个Protocol,其中字段可以通过简单类型和财产。例如:classP(Protocol):v:int@dataclassclassFoo(P):v:intclassBar(P):@propertydefv(self)->int:#ERROR......
  • 无法使用任何运算符将具有简单过滤条件的列转换为布尔值
    我正在尝试从python中的dict结构动态形成过滤条件,这是一个非常简单的条件,会给出以下错误:Finalconstructedfiltercondition:Column<'(CompanyCodeIN(1930,1931))'>Typeoffinal_condition:<class'pyspark.sql.column.Column'>PySparkValueError:[CANNOT_CON......
  • AI产品经理岗位现状:需求与就业前景分析
    前言在当今这个科技日新月异的时代,人工智能(AI)已不再仅仅是一个遥远的概念,而是深深嵌入到我们生活的方方面面,从日常的语音助手到复杂的自动驾驶系统,AI的触角无处不在。随着AI技术的广泛应用和持续进步,AI产品经理这一角色的重要性日益凸显,成为了连接技术与市场、推动AI产品创......
  • 7.8 做技术比管理工作简单多了
    整理项目进度的实际耗时远比想象的多,因为参与者众多且背景各异,大家也都自己本身的任务。值得一提的是,相较于两个月前初涉时的生涩,如今我在协调各方时多了几分从容不迫,工作推进亦显顺畅,这是否是我已有进步的标志。然而,项目管理的艺术深邃而复杂,还有很多学问等待我的探索。比如:如......
  • 用Devecostudio写一个简单的计算器
    用Devecostudio写一个简单的计算器//计算器import{Button1}from'./Button1'import{Button2}from'./Button2'//定义两个按钮格式//import{Cal}from'./cal'也可以将四则运算的函数定义到别处然后引入,这里为了方便直接放到这里了interfaceOperator{ symbol:st......
  • 数据库索引的简单分类
    数据库的索引可以简单的分为四类:主键索引。针对表的主键所创建的索引,这种索引是默认自动创建的,而且只能有一个。唯一索引。避免表中某列的值重复,可以有多个唯一索引,在为某字段限定唯一约束时,会自动创建一个唯一索引。常规索引。一般的用于快速定位检索数据的索引,可以有多......
  • 简单认识MySQL存储引擎
    MySQL体系结构连接层。一些客户端和链接服务,主要完成如连接处理、授权认证及选相关的安全方案服务层。主要完成大多数的核心服务功能,比如SQL接口,缓存的查询,SQL分析和优化,部分内置函数的执行。所以跨存储引擎的功能在这一层实现,如存储过程、函数等。引擎层。真正负责DBMS中数据......
  • 《史上最简单的SpringAI+Llama3.x教程》-05-打破界限,Function Calling在业务场景中的
    什么是FunctionCallingFunctionCalling是一种技术,它允许大型语言模型(如GPT)在生成文本的过程中调用外部函数或服务。这种功能的核心在于,模型本身不直接执行函数,而是生成包含函数名称和执行函数所需参数的JSON,然后由外部系统执行这些函数,并将结果返回给模型以完成对话或......
  • OncePower,让你的文件重命名变得像呼吸一样简单!
    ......
  • 11. 2 用Python开发一个简单的Web服务器
    用Python开发一个简单的Web服务器11.2用Python开发一个简单的Web服务器11.2.1需求分析11.2.2系统设计11.2.3详细设计11.2.4实现11.2.5测试11.2.6部署和维护11.2.7文档和帮助文档11.2.8用户反馈11.2用Python开发一个简单的Web服务......