黑马点评中商铺地址查询前端显示问题

黑马点评中商铺地址查询前端显示问题

这个页面存在以下前端问题,这个页面中选择美食之后往下翻是不能自动滚动分页查询所有的美食店铺数据的。前端往下翻没反应

但是还有个很奇怪的点就是前端点击距离之后滚动查询第一页查询了两次,如下图,点击距离之后除了第一页的数据查询了两次之外就其他就正常了

 

最后看了好久才知道是查询页面数据大小的问题

我的后端代码如下:

controller层

/** * 根据商铺类型分页查询商铺信息 * @param typeId 商铺类型 * @param current 页码 * @param x 经度 * @param y 纬度 * @return 商铺列表 */ @GetMapping("/of/type") public Result queryShopByType( @RequestParam("typeId") Integer typeId, @RequestParam(value = "current", defaultValue = "1") Integer current, @RequestParam("x") Double x, @RequestParam("y") Double y ) { // 调用Service层方法(修正方法名驼峰规范) return shopService.queryShopByType(typeId, current, x, y); }

 

 

serviceImpl层:

@Override public Result queryShopByType(Integer typeId, Integer current, Double x, Double y) { if(x==null || y==null){ //直接返回对应类型的店铺就行了 // 根据类型分页查询 Page<Shop> page = query() .eq("type_id", typeId) .page(new Page<>(current, SystemConstants.DEFAULT_PAGE_SIZE)); return Result.ok(page.getRecords()); } int from=(current-1)*SystemConstants.DEFAULT_PAGE_SIZE; int end=current*SystemConstants.DEFAULT_PAGE_SIZE; String key="geo:shop:type:"+typeId; // 2. 构造5000米的距离对象(核心:指定米为单位,5000m) Distance distance = new Distance(5000, Metrics.METERS); // 3. 完整的GEO圆形区域查询(补全所有参数) GeoResults<RedisGeoCommands.GeoLocation<String>> geoResults = stringRedisTemplate.opsForGeo() .search( key, // Redis的GEO集合Key(按商铺类型分组) GeoReference.fromCoordinate(new Point(x, y)), // 圆心坐标(x经度,y纬度) distance, // 圆形半径:5000米 // 查询参数配置:按距离由近到远+预查足够数据(为后续分页准备) RedisGeoCommands.GeoRadiusCommandArgs.newGeoRadiusArgs() .sortAscending() // 按距离从近到远排序(附近商户必备) .limit(end) .includeDistance() // 核心:让Redis返回每个元素到圆心的距离 .includeCoordinates() // 预查数据,避免分页漏条 ); // 4. 判空:geoResults为空 或 无内容,直接返回空列表(修复原判空不完整问题) if (geoResults == null || geoResults.getContent().isEmpty()) { return Result.ok(Collections.emptyList()); } // 5. 核心:Stream分页(skip+limit)并接收结果,提取【商铺ID+距离】 List<GeoResult<RedisGeoCommands.GeoLocation<String>>> pageGeoList = geoResults.getContent().stream() .skip(from) // 跳过前from条,实现分页 .limit(SystemConstants.DEFAULT_PAGE_SIZE) // 截取分页条数(一页的数量) .collect(Collectors.toList()); // 必须collect接收结果,否则跳过不生效 // 6. 提取商铺ID(批量查库,替代循环单查,提升性能10倍+) List<Long> shopIds = pageGeoList.stream() .map(geoResult -> Long.valueOf(geoResult.getContent().getName())) .collect(Collectors.toList()); if (shopIds.isEmpty()) { return Result.ok(Collections.emptyList()); } String shopIdstr = StringUtil.join(shopIds, ","); // 7. 批量查询商铺详情(MyBatis-Plus批量查,避免循环eq单查) List<Shop> shopList = query().in("id", shopIds).last(("ORDER BY FIELD(id, " +shopIdstr + ")")).list(); // 8. 给商铺赋值距离(并保证shopList顺序和pageGeoList一致) for (int i = 0; i < pageGeoList.size(); i++) { GeoResult<RedisGeoCommands.GeoLocation<String>> geoResult = pageGeoList.get(i); Shop shop = shopList.get(i); // 距离转Double,加非空判断(防止空指针) Double distValue = geoResult.getDistance().getValue(); shop.setDistance(distValue); // 给Shop的distance字段赋值 } return Result.ok(shopList); }

 

 

 

将DEFAULT_PAGE_SIZE的大小改为5以上就行了

 

 

 

 

 

 

 

Read more

数据库管理-第412期 OpenClaw深度进化+QClaw实测!这只AI“小龙虾”到底怎么玩透?(20260317)

数据库管理-第412期 OpenClaw深度进化+QClaw实测!这只AI“小龙虾”到底怎么玩透?(20260317)

数据库管理412期 2026-03-17 * 数据库管理-第412期 OpenClaw深度进化+QClaw实测!这只AI“小龙虾”到底怎么玩透?(20260317) * 1 进一步完善OpenClaw * 1.1 Ollama * 1.2 Skill依赖 * 1.3 Skill安装 * 2 试玩QClaw * 2.1 安装QClaw * 2.2 登录 * 2.4 关联微信 * 2.5 配置模型 * 2.6 安装Skill * 3 来自媳妇儿的灵感 * 总结 数据库管理-第412期 OpenClaw深度进化+QClaw实测!这只AI“小龙虾”到底怎么玩透?(20260317) 作者:胖头鱼的鱼缸(尹海文)

10款最火AI数据分析神器

10款最火AI数据分析神器

随着大数据时代的来临,数据分析已经成为各行各业的核心竞争力。而借助AI技术,分析效率和精度更是得到了飞速提升。本文将为大家精选10款目前最流行、最实用的AI数据分析工具,并附上官方链接,帮助你快速上手,一键提升数据洞察能力! 一、为什么要选择AI数据分析工具? 1. 自动化程度高 传统数据分析往往需要大量手动清洗、建模、参数调优等繁琐工作,而AI工具借助深度学习、AutoML等技术,实现了数据预处理、特征工程、模型选择和调优的自动化,显著节省人力和时间成本。 2. 预测效果更精准 AI模型(如神经网络、集成学习等)能够从海量数据中挖掘深层次关联,提高预测、分类和聚类的准确度,帮助企业在市场营销、风控、用户画像等场景中取得更优表现。 3. 可视化与交互友好 大多数AI分析工具都集成了可视化仪表盘、拖拽式建模界面或Notebook环境,让业务人员也能轻松进行数据探索和模型验证,进一步降低了使用门槛。 4. 快速迭代与部署 现代AI分析工具通常支持一键部署、API调用、云端算力等特性,从模型训练到上线只需几步操作,大大缩短了从研发到生产的时间。

认知刷新,AI 时代,“人人都是产品经理” 的全新内涵

认知刷新,AI 时代,“人人都是产品经理” 的全新内涵

从“人人都是产品经理”到AI时代的认知重构 在AI技术深度渗透产品全生命周期的当下,“人人都是产品经理”的内涵已从传统的需求洞察、流程设计,演变为基于AI工具的跨角色协同、数据驱动决策和快速价值落地。本文将拆解这一认知转变的底层逻辑、核心能力要求及实践路径。 传统“人人都是产品经理”的边界与局限 传统语境下的“人人都是产品经理”,核心是倡导全员具备用户思维和结果导向,但其落地存在明确边界: * 专业壁垒高:需求梳理、原型设计、资源协调等环节依赖系统的产品方法论,非专业人员难以快速掌握 * 效率瓶颈:从需求提出到功能上线需跨部门协作,周期通常以周或月为单位 * 决策主观性:需求优先级判断、用户反馈解读多依赖经验,缺乏量化数据支撑 * 资源约束:中小团队或个人开发者难以独立完成从需求到上线的全流程开发 AI时代“人人都是产品经理”的全新内涵 AI工具的普及打破了传统产品工作的专业壁垒,让“产品经理”从一个岗位角色,转变为一种可被全员掌握的能力模型,其核心内涵可概括为四个维度: 1. 需求到落地的“零代码/低代码”闭环 AI辅助开发工具(如GPT、Claude 3

【Vibe Coding】一口气搞懂AI黑话:Vibe Coding、Agent、提示词、MCP、Skills全解析

你是否也被AI领域的各种新名词轰炸得头晕眼花? Vibe Coding、AI Agent、提示词(Prompt)、MCP(Model Context Protocol)、Skills… 这些听起来高大上的术语到底是什么意思?它们之间有什么关系? 本文将用最通俗易懂的语言 + 生动比喻,带你一次性理清这些核心概念! 🚀 引言:AI正在改变我们“造物”的方式 随着大模型能力的飞速提升,AI不再仅仅是聊天问答工具。我们正在进入一个“AI驱动创造”的新时代: ✅ 用自然语言指挥AI写代码(Vibe Coding) ✅ 让AI像私人助理一样自主完成任务(AI Agent) ✅ 通过精准指令释放AI潜能(提示词工程) ✅ 赋予AI记忆与联网能力(MCP) ✅ 为AI安装“手脚”操作现实世界(Skills) 理解这些概念,是掌握下一代AI开发范式的关键! 🌈 一、Vibe Coding:用“感觉”写代码,告别996 大白话解释