102 行
2.0 KiB
Markdown
102 行
2.0 KiB
Markdown
# 产品状态变更接口拆分
|
|
|
|
**日期**: 2026-04-15
|
|
**服务**: hl-product-service-v2
|
|
**影响**: 管理端产品管理
|
|
|
|
---
|
|
|
|
## 变更概要
|
|
|
|
原 `POST /admin/product/item/{id}/action` 接口拆分为2个独立接口,**前端不再需要传动作码**,后端自动判断。旧接口保留但已废弃。
|
|
|
|
---
|
|
|
|
## 新增接口
|
|
|
|
### 1. 上架/下架切换
|
|
|
|
```
|
|
POST /admin/product/item/{id}/toggle-publish
|
|
```
|
|
|
|
**请求体**(可选):
|
|
```json
|
|
{
|
|
"remark": "备注原因(可选)"
|
|
}
|
|
```
|
|
|
|
**后端自动逻辑**:
|
|
| 当前状态 | 普通用户 | 超管(SUPER_ADMIN) |
|
|
|----------|----------|-------------------|
|
|
| 草稿/已驳回/已下架 | 提交上架审批→待审核 | 直接上架→已上架 |
|
|
| 已上架 | 申请下架审批→待审核 | 强制下架→已下架 |
|
|
| 待审核 | 撤回→草稿 | 撤回→草稿 |
|
|
|
|
**审批流程**: 普通用户上架/下架会自动提交企微OA审批,审批通过后自动变更状态,无需前端处理。
|
|
|
|
**响应**:
|
|
```json
|
|
{
|
|
"code": 200,
|
|
"message": "操作成功",
|
|
"data": null
|
|
}
|
|
```
|
|
|
|
### 2. 完成设计(仅定制产品)
|
|
|
|
```
|
|
POST /admin/product/item/{id}/complete
|
|
```
|
|
|
|
**请求体**(可选):
|
|
```json
|
|
{
|
|
"remark": "备注(可选)"
|
|
}
|
|
```
|
|
|
|
**限制**: 仅 `productType=CUSTOM` 的草稿产品可调用,其他类型返回500。
|
|
|
|
**响应**:
|
|
```json
|
|
{
|
|
"code": 200,
|
|
"message": "完成设计成功",
|
|
"data": null
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 废弃接口
|
|
|
|
### ~~POST /admin/product/item/{id}/action~~
|
|
|
|
**状态**: @Deprecated,暂时保留兼容,后续版本移除。
|
|
|
|
请尽快迁移到上述2个新接口。
|
|
|
|
---
|
|
|
|
## 人群优惠bug修复
|
|
|
|
`GET /admin/product/item/{id}` 返回的 `crowdBenefit` 对象之前只有 `tips` 字段,现在完整返回所有字段:
|
|
|
|
```json
|
|
{
|
|
"crowdBenefit": {
|
|
"childTicket": "HALF_PRICE",
|
|
"childAccommodation": "NO_BED",
|
|
"childMeal": "HALF",
|
|
"elderTicket": "FREE",
|
|
"elderAccommodation": "SAME_AS_ADULT",
|
|
"tips": "3岁以下免费"
|
|
}
|
|
}
|
|
```
|
|
|
|
**前端无需改动**,之前缺失的字段现在正常返回。
|