follow-up: admin 定价管理单房差前端回填 + 卡片列遗漏(后端正常)
这个提交包含在:
父节点
f8d53fb3b5
当前提交
1dd018fb57
@ -0,0 +1,82 @@
|
|||||||
|
# admin 价格日历"单房差"前端回填 + 卡片展示遗漏
|
||||||
|
|
||||||
|
> **服务**: hl-product-service-v2(后端无改动)
|
||||||
|
> **PR**: 无后端 PR(后端已就位)
|
||||||
|
> **日期**: 2026-05-09
|
||||||
|
> **影响范围**: 管理端"产品编辑 → 定价管理"页
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚠️ 现象(后端正常,前端遗漏)
|
||||||
|
|
||||||
|
测试 + 正式环境复现:
|
||||||
|
|
||||||
|
1. 用户在"编辑价格区间"弹窗填 `单房差 = 100` → 点"确认添加" → **接口 200 + DB 实际写入 single_room_diff=100** ✅
|
||||||
|
2. 但页面上看不到效果:
|
||||||
|
- **卡片只读视图缺"单房差"列**(只显示 成人/儿童/小童优惠/幼童)
|
||||||
|
- **再次打开"编辑价格区间"弹窗,单房差栏回显 ¥0.00**(应该回显 100)
|
||||||
|
|
||||||
|
后端验证:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl https://api.test.1814.love:9443/admin/product/item/2045345825172639746/price-calendar?month=2026-04
|
||||||
|
# 响应每条记录都含 "singleRoomDiff": 100.0
|
||||||
|
```
|
||||||
|
|
||||||
|
DB 直查也是 `single_room_diff=100.00`,**后端完全没问题**。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、缺失项清单(@mmg 需修)
|
||||||
|
|
||||||
|
### A. 卡片只读视图加"单房差"展示(2026.04.01 — 2026.04.30 那种卡片)
|
||||||
|
|
||||||
|
**当前**:卡片只显示 4 列(成人 / 儿童 / 小童优惠 / 幼童)。
|
||||||
|
**应改**:加第 5 列"单房差 ¥XXX"(条件:`singleRoomDiff > 0` 才展示这列;= 0 时可隐藏避免干扰)。
|
||||||
|
|
||||||
|
数据来源:`GET /admin/product/{id}/price-calendar?month=...` 响应数组每条记录的 `singleRoomDiff` 字段。
|
||||||
|
|
||||||
|
### B. "编辑价格区间"弹窗 form 初始化回填 `singleRoomDiff`
|
||||||
|
|
||||||
|
**当前**:用户保存后再次点编辑,form 单房差栏初始化为 `0.00`(form default value),没读 DB 真实值。
|
||||||
|
**应改**:打开编辑弹窗时 form.setFieldsValue 把对应区间记录的 `singleRoomDiff` 回填到单房差输入框。
|
||||||
|
|
||||||
|
注意:同一区间内 4-1 ~ 4-30 每天的 single_room_diff 都一样(后端按 rangeId 区间统一展开),取任一一天的值即可,或取该区间第一条记录的 `singleRoomDiff`。
|
||||||
|
|
||||||
|
### C. (可选)新建价格区间时单房差默认值
|
||||||
|
|
||||||
|
**当前**:输入框默认 `0.00`,@NotNull @DecimalMin("0.00"),0 合法(=不收单房差)。
|
||||||
|
**建议**:维持 0.00 默认,不强制用户填 — 不收单房差是常态。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、字段路径速查(无后端改动)
|
||||||
|
|
||||||
|
| 场景 | 接口 | 字段路径 | 类型 |
|
||||||
|
|------|------|---------|------|
|
||||||
|
| 列表回显 | `GET /admin/product/{id}/price-calendar?month=YYYY-MM` | `data[i].singleRoomDiff` | BigDecimal(Number) |
|
||||||
|
| 弹窗保存 | `POST /admin/product/{id}/price-calendar/batch` | request body `singleRoomDiff` | BigDecimal(Number),@NotNull |
|
||||||
|
| 班期同款 | `GET /admin/product/{id}/schedule` 等 | `data[i].singleRoomDiff` | BigDecimal |
|
||||||
|
|
||||||
|
**字段名**:`singleRoomDiff`(camelCase),不是 `single_room_diff`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、回归用例
|
||||||
|
|
||||||
|
测试服 / 正式环境随便挑一个产品:
|
||||||
|
|
||||||
|
1. 进"产品编辑 → 定价管理 → 编辑价格区间"
|
||||||
|
2. 填日期范围 + 各栏价格 + 单房差 100
|
||||||
|
3. 点"确认添加" → 接口 200
|
||||||
|
4. **验收 A**:卡片视图显示"单房差 ¥100"行 / 列
|
||||||
|
5. **验收 B**:再次点该区间编辑按钮,弹窗里单房差栏显示 100,不是 0.00
|
||||||
|
6. 改成 200 保存 → 卡片更新为 200,再次编辑显示 200
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、@mmg 关注点
|
||||||
|
|
||||||
|
- 后端接口 + DB 字段 + GET 响应 **全部就位**,**只缺前端绑定**
|
||||||
|
- 不需要任何后端改动
|
||||||
|
- 班期(GROUP 小蒙马)的"班期编辑"弹窗也应同步检查这两个问题(同样有 `singleRoomDiff` 字段)
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户