bug: 前端资源编辑传素材URL而非素材ID,导致封面图不保存
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
这个提交包含在:
父节点
fcca90370c
当前提交
772ca420f2
@ -0,0 +1,48 @@
|
|||||||
|
# 🐛 前端BUG — 资源编辑传素材URL而非素材ID
|
||||||
|
|
||||||
|
**日期**: 2026-03-30 11:30
|
||||||
|
**类型**: 前端BUG
|
||||||
|
**紧急程度**: 高(正式环境所有资源编辑受影响)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 问题现象
|
||||||
|
|
||||||
|
1. **封面图上传后不显示**:保存成功但重新打开编辑页封面图为空
|
||||||
|
2. **横幅图超过4张报500**(已通过后端改字段类型修复,但数据格式仍不对)
|
||||||
|
|
||||||
|
## 根因
|
||||||
|
|
||||||
|
前端在提交资源编辑(酒店/景区/活动/餐厅等)时,**媒体素材字段传的是 OSS URL 而不是素材ID(数字)**。
|
||||||
|
|
||||||
|
### 具体表现
|
||||||
|
|
||||||
|
| 字段 | 应该传 | 实际传 |
|
||||||
|
|------|--------|--------|
|
||||||
|
| `coverMaterialId` | `"2036285563975241730"` | `"https://hlgl-test.oss-cn-beijing.aliyuncs.com/prod/material/xxx.jpg"` |
|
||||||
|
| `bannerMaterialIds` | `["2036285563975241730", "2036285563975241731"]` | `["https://...xxx.jpg", "https://...yyy.jpg"]` |
|
||||||
|
| `videoMaterialIds` | 同上 | 同上 |
|
||||||
|
|
||||||
|
### 后果
|
||||||
|
|
||||||
|
- `coverMaterialId`:后端 `parseLongSafe` 解析URL失败返回null → 封面图不保存
|
||||||
|
- `bannerMaterialIds`:URL字符串直接存入数据库 → 详情页无法通过素材服务解析出URL → 图片靠前端直接用URL显示,但后端素材引用关系断裂
|
||||||
|
|
||||||
|
## 修复方向
|
||||||
|
|
||||||
|
前端素材选择组件(MaterialSelect)返回值应该是**素材ID**,提交表单时传ID数组,而不是URL数组。
|
||||||
|
|
||||||
|
后端接口定义:
|
||||||
|
```
|
||||||
|
coverMaterialId: String // 素材ID,如 "2036285563975241730"
|
||||||
|
bannerMaterialIds: List<String> // 素材ID数组
|
||||||
|
videoMaterialIds: List<String> // 素材ID数组
|
||||||
|
```
|
||||||
|
|
||||||
|
可参考 Knife4j 文档:`https://api.1814.love/doc.html`
|
||||||
|
|
||||||
|
## 后端已完成的修复
|
||||||
|
|
||||||
|
- `banner_material_ids` / `video_material_ids` 列类型从 `varchar(512)` 改为 `TEXT`(所有资源表)
|
||||||
|
- `star_level` 从 `tinyint` 改为 `varchar(32)`
|
||||||
|
- 所有 `parseLongSafe` 容错(不再500,但数据存不进去)
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户