把 Web H5 与微信小程序的「附近热门营地」从“前端小样本重排”升级为后端统一排序:距离第一,点赞第二;搜索补强城市/省份命中能力。
关键词只搜 name/address/tags;默认排序是 rating DESC, like_count DESC。没有距离排序,没有 city 参数。
首页先拿后端热门前 50,有定位才在客户端按 Haversine 排序,最后展示前 8。
列表页只传 type/keyword/pageSize=20,后端仍按评分/点赞返回;附近入口等价普通列表。
无定位或坐标无效时,不强行改体验,继续按当前后端默认排序:
ORDER BY rating DESC, like_count DESC
这样不会影响拒绝定位、IP 定位失败、首屏尚未拿到定位的用户。
/api/camp/list?page=1&pageSize=20&lat=30.67&lng=104.06&sort=nearby
name LIKE ? OR address LIKE ? OR tags LIKE ?
name LIKE ? OR address LIKE ? OR province LIKE ? OR tags LIKE ?
省份走 province;城市名先依赖 address 命中。后续若要精确城市切换,再加 city 字段和回填。
采用字典序:距离 ASC → 点赞 DESC。优点是可解释、符合“距离第一”。
本次只扩展 province + address 搜索,避免牵涉发布、后台、迁移、回填。
/camp/nearby 继续服务附近地点选择;主列表统一增强 /camp/list。