平台轮播开发文档
平台轮播由管理员按用户端、商户端分别配置,两端图片和公告链接互不影响。配置分别保存在 system_config.platform_banners_user 和 system_config.platform_banners_merchant,无需新增数据表。
1. 获取平台轮播图
接口地址:POST /home/index/platformBanners
认证:不需要
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scene | String | 是 | 轮播场景:user=用户端,merchant=商户端 |
用户端请求示例:
json
{
"scene": "user"
}商户端请求示例:
json
{
"scene": "merchant"
}商户端调用位置:mini_app_merchant/src/api/config/platformBanner.ts
用户端调用位置:mini_app_client/src/api/common/platformBanner.ts
成功响应示例:
json
{
"code": 1,
"msg": "获取成功",
"data": [
{
"image": "https://example.com/upload/image/20260803/banner-1.jpg",
"link": "https://example.com/activity",
"sort": 10
},
{
"image": "https://example.com/upload/image/20260803/banner-2.jpg",
"link": "",
"sort": 20
}
]
}响应字段:
| 字段名 | 类型 | 说明 |
|---|---|---|
| image | String | 图片完整访问地址 |
| link | String | 点击后的跳转链接;空字符串表示不可跳转 |
| sort | Integer | 排序值,数值越小越靠前 |
业务规则:
- 最多返回 5 张图片。
- 只返回已配置图片的项目。
- 返回前按照
sort升序排列;排序相同时保持原配置顺序。 - 未配置轮播图时返回空数组
[],前端不显示轮播区域。 link支持站内/开头路径、http://、https://和tg://链接。- 用户端只请求
scene=user,商户端只请求scene=merchant,两端配置互不混用。 - 为兼容拆分前的数据,如果某一端从未单独保存过配置,会临时回退读取旧的
system_config.platform_banners;该端首次保存后即停止回退。
2. 获取管理端轮播配置
接口地址:POST /adminapi/config/platformBanner/getConfig
认证:需要管理员 Token 和对应接口权限
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scene | String | 是 | user 或 merchant |
响应说明:响应结构与公开读取接口一致。管理端响应中的 image 保留配置原值,可能是上传接口返回的相对路径,便于继续编辑和保存。
3. 保存管理端轮播配置
接口地址:POST /adminapi/config/platformBanner/saveConfig
认证:需要管理员 Token 和对应接口权限
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| banners | Array | 是 | 轮播配置数组,最多 5 项;清空轮播时传空数组 |
| scene | String | 是 | 保存目标:user=用户端,merchant=商户端 |
| banners[].image | String | 是 | 图片地址或上传接口返回的图片路径 |
| banners[].link | String | 否 | 点击跳转链接,默认空字符串 |
| banners[].sort | Integer | 否 | 排序值,范围 0~9999,默认使用当前顺序 |
请求示例:
json
{
"scene": "user",
"banners": [
{
"image": "/upload/image/20260803/banner-1.jpg",
"link": "https://example.com/activity",
"sort": 10
},
{
"image": "/upload/image/20260803/banner-2.jpg",
"link": "",
"sort": 20
}
]
}成功响应示例:
json
{
"code": 1,
"msg": "保存成功",
"data": [
{
"image": "/upload/image/20260803/banner-1.jpg",
"link": "https://example.com/activity",
"sort": 10
},
{
"image": "/upload/image/20260803/banner-2.jpg",
"link": "",
"sort": 20
}
]
}常见错误:
json
{
"code": 0,
"msg": "轮播场景必须为 user 或 merchant"
}json
{
"code": 0,
"msg": "轮播图最多配置5张"
}json
{
"code": 0,
"msg": "第1张轮播图不能为空"
}json
{
"code": 0,
"msg": "第1张轮播图的跳转链接格式不正确"
}4. 缓存策略
- 两端使用独立应用缓存:用户端为
platform_banners_user_v1,商户端为platform_banners_merchant_v1。 - 缓存有效期为 3600 秒(1 小时)。
- 管理员保存某一端配置成功后,只删除该端缓存,不影响另一端。
- 缓存删除后,下一次商户端或用户端请求会从
system_config读取最新配置、生成图片完整地址并重新缓存。 - 前端请求中的时间戳参数不会绕过或重复生成服务端缓存。
5. 管理后台入口
进入“配置中心 → 网站配置 → 轮播配置”,先选择“用户端轮播”或“商户端轮播”,再上传图片、填写可选跳转链接和设置排序。每个端最多配置 5 张。
管理员上传图片使用现有接口:POST /adminapi/upload/upload,表单字段为 file,并携带 type=image。