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

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

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

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

 

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

我的后端代码如下:

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

2025终极指南:whisper.cpp跨平台语音识别部署全流程

2025终极指南:whisper.cpp跨平台语音识别部署全流程 【免费下载链接】whisper.cppOpenAI 的 Whisper 模型在 C/C++ 中的移植版本。 项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp 还在为语音转文字服务的网络延迟和高成本烦恼?whisper.cpp作为开源语音识别解决方案,提供了本地化部署的完美选择。本文将带你深入了解如何在不同平台上快速部署和使用这个强大的离线语音识别工具。 通过本文,你将掌握: * 多平台环境配置的一键安装方法 * 模型下载与优化的性能调优技巧 * 常见部署问题的快速解决方案 * 监控与维护的最佳实践 平台选择:找到最适合你的方案 平台类型安装难度推理速度内存占用适用场景Windows桌面⭐⭐1.2x1.1GB个人使用Linux服务器⭐⭐⭐1.5x0.9GB企业部署macOS开发⭐2.0x0.7GB移动应用Android设备⭐⭐⭐⭐0.8x0.5GB边缘计算 环境搭建:快速启动的完整步骤 基础环境准备

文心一言4.5开源模型实战:ERNIE-4.5-0.3B轻量化部署与效能突破

文心一言4.5开源模型实战:ERNIE-4.5-0.3B轻量化部署与效能突破

文心一言4.5开源模型实战:ERNIE-4.5-0.3B轻量化部署与效能突破 文心一言4.5开源模型实战:ERNIE-4.5-0.3B轻量化部署与效能突破,本文介绍百度文心一言 4.5 开源模型中 ERNIE-4.5-0.3B 的轻量化部署与效能。该 3 亿参数模型破解大模型落地的算力、效率、安全困局,在 FastDeploy 框架下实现单张 RTX 4090 承载百万级日请求等突破。文章解析其技术架构,给出本地化部署步骤,通过工业场景、中文特色、工程数学计算等测试验证其能力,还提供性能优化、安全加固及故障排查方法,展现其轻量高效与能力均衡特性。 引言:轻量化部署的时代突围 ✨ 当行业还在为千亿参数模型的算力消耗争论不休时,百度文心一言4.5开源版本以颠覆性姿态撕开了一条新赛道。2025年6月30日,💥 文心一言4.5系列模型正式开源,其中ERNIE-4.5-0.3B这款仅3亿参数的轻量模型,为破解大模型产业落地的三大困局提供了全新方案: * 算力成本困局:

从零开始:AIGC中的变分自编码器(VAE)代码与实现

从零开始:AIGC中的变分自编码器(VAE)代码与实现

个人主页:chian-ocean 文章专栏 深入理解AIGC中的变分自编码器(VAE)及其应用 随着AIGC(AI-Generated Content)技术的发展,生成式模型在内容生成中的地位愈发重要。从文本生成到图像生成,变分自编码器(Variational Autoencoder, VAE)作为生成式模型的一种,已经广泛应用于多个领域。本文将详细介绍VAE的理论基础、数学原理、代码实现、实际应用以及与其他生成模型的对比。 1. 什么是变分自编码器(VAE)? 变分自编码器(VAE)是一种生成式深度学习模型,结合了传统的概率图模型与深度神经网络,能够在输入空间和隐变量空间之间建立联系。VAE与普通自编码器不同,其目标不仅仅是重建输入,而是学习数据的概率分布,从而生成新的、高质量的样本。 1.1 VAE 的核心特点 * 生成能力:VAE通过学习数据的分布,能够生成与训练数据相似的新样本。 * 隐空间结构化表示:VAE学习的隐变量分布是连续且结构化的,使得插值和生成更加自然。 * 概率建模:VAE通过最大化似然估计,能够对数据分布进行建模,并捕获数据的复杂特性。

第二章-AIGC入门-AIGC工具全解析:技术控的效率神器,DeepSeek国产大模型的骄傲(8/36)

第二章-AIGC入门-AIGC工具全解析:技术控的效率神器,DeepSeek国产大模型的骄傲(8/36)

一、引言:AIGC 时代的浪潮 在数字化时代的浪潮中,人工智能生成内容(AIGC)技术正以迅猛之势席卷而来,深刻地改变着我们的生活和工作方式。从日常的社交媒体互动,到专业的内容创作、设计、教育、医疗等领域,AIGC 工具无处不在,展现出强大的影响力和无限的潜力。 AIGC 技术的核心在于利用人工智能算法,通过对海量数据的学习和分析,自动生成各种形式的内容,包括文本、图像、音频、视频等 。这一技术的突破,打破了传统内容创作的边界,使得内容生产变得更加高效、智能和多样化。无论是创作一篇新闻报道、设计一幅精美的海报,还是制作一段引人入胜的视频,AIGC 工具都能提供有力的支持,帮助创作者节省时间和精力,激发更多的创意灵感。 如今,AIGC 工具已经广泛应用于各个行业。在新闻媒体领域,自动化新闻写作工具能够快速生成体育赛事、财经新闻等报道,大大提高了新闻的时效性;在广告营销行业,AIGC 可以根据产品特点和目标受众,生成极具吸引力的广告文案和创意设计,提升营销效果;在影视游戏制作中,AIGC