# 微信小程序 · 按资源反查攻略接口 **日期**:2026-04-21 **影响**:**微信小程序** 行程中·今日详情页景点/活动节点的"攻略"按钮(原型 `7wZKh.s2card`) **PR**:#1122(Closes #1117) --- ## 概述 按资源(景点/活动/酒店等)反查已关联的攻略文章列表。用于行程详情页节点旁的"攻略"按钮。 数据关联来自 `guide_article_resource` 表,管理端在编辑攻略时已能配置"该篇攻略关联哪些资源"。本接口做反向查询。 --- ## 接口 ``` GET /mp/wiki/by-resource?resourceType=SCENIC&resourceId=2022992828971433985 ``` **鉴权**:Bearer token。 **缓存**:5 分钟。 ### 入参 | 参数 | 位置 | 类型 | 必填 | 说明 | |---|---|---|---|---| | resourceType | Query | String | ✅ | 资源类型;取值:`SCENIC` / `ACTIVITY` / `HOTEL` / `RESTAURANT` / `PRODUCT` | | resourceId | Query | Long | ✅ | 资源主键 ID(景点ID / 活动ID 等) | ### 出参 `Result>` 按关联表 `sort_order` 升序;列表为空表示该资源无绑定攻略或均未发布。 **`MpGuideArticleSimpleVO`**: | 字段 | 类型 | 说明 | |---|---|---| | articleId | Long | 文章ID | | categoryId | Long | 分类ID | | categoryName | String | 分类中文名 | | title | String | 标题 | | coverUrl | String | 封面 URL | | summary | String | 摘要 | | viewCount | Integer | 浏览量 | | publishTime | LocalDateTime | 发布时间 | ### 响应示例 ```json { "code": 200, "message": "成功", "data": [ { "articleId": "2030823225496145921", "categoryId": "2030822478645792769", "categoryName": "景区攻略", "title": "莫日格勒河游玩攻略:天下第一曲水的正确打开方式", "coverUrl": "https://cdn.1814.love/guide/covers/mogelehe.png", "summary": "莫日格勒河被誉为'天下第一曲水',蜿蜒流淌于呼伦贝尔大草原上。本攻略详细介绍最佳观景点、拍照机位、游览路线和注意事项。", "viewCount": 0, "publishTime": "2026-03-09 09:49:23" } ], "success": true } ``` ### 空数据响应 ```json { "code": 200, "data": [], "success": true } ``` --- ## 边界行为 - 未登录:401(网关拦截) - 资源无任何关联攻略:返 `[]` - 关联攻略全部为草稿/已下架/已删除:返 `[]`(已过滤) - 攻略服务降级:返 `[]`(不 500,不阻断页面) --- ## 数据来源 ### 关联表 `guide_article_resource` 管理端在攻略文章编辑页配置资源关联(已有能力)。 ### 后端查询逻辑 1. 按 `resource_type + resource_id` 从 `guide_article_resource` 拿 `article_id` 列表(按 `sort_order` 升序) 2. 按 `article_id` 批量查 `guide_article`,只返回 `status = PUBLISHED` 且未软删除的 3. 按原 `sort_order` 顺序返回(同资源关联多篇时保留管理员设置的顺序) ### 反查索引 本次 PR 顺带补 `KEY idx_resource (resource_type, resource_id)`,已通过 migration `V20260421__guide_article_resource_add_idx_resource.sql` 幂等升级。 --- ## 字典参考 `resourceType` 对应后端枚举 `GuideConstants`: | 值 | 含义 | |---|---| | `SCENIC` | 景点 | | `ACTIVITY` | 游玩项目/活动 | | `HOTEL` | 酒店 | | `RESTAURANT` | 餐厅 | | `PRODUCT` | 产品 |