feat: 完善接口19-顶部通知铃铛与站内通知中心
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m5s

This commit is contained in:
luo
2026-07-25 10:20:53 +08:00
parent eb13763020
commit 9289a6e940
37 changed files with 1264 additions and 226 deletions

View File

@@ -7,7 +7,7 @@
## What Changes
- 在店铺新建和编辑表单新增可清空、可搜索的“平台业务员”选择器。
- 候选业务员复用启用的平台账号查询接口,展示账号名和手机号摘要。
- 候选业务员使用店铺业务员候选接口,展示账号名和手机号摘要。
- 扩展店铺创建、更新、列表查询、列表返回和详情返回的数据契约,支持 `business_owner_account_id` 及业务员展示字段。
- 在店铺列表新增业务员列和按业务员筛选项,在店铺详情展示业务员名称和手机号摘要。
- 已停用的已绑定业务员仅用于历史列表和详情展示,不能作为新建或编辑表单的候选项。
@@ -26,4 +26,5 @@
- `POST /api/admin/shops`
- `PUT /api/admin/shops/{id}`
- `GET /api/admin/shops`
- `GET /api/admin/accounts?account_type=platform&status=1`
- `GET /api/admin/shops/{id}`
- `GET /api/admin/shops/business-owner-candidates`

View File

@@ -27,7 +27,9 @@ The system SHALL allow users to assign or clear an optional platform salesperson
#### Scenario: Do not expose disabled accounts as editable candidates
- **WHEN** 用户打开或搜索“平台业务员”选择器
- **THEN** 系统 MUST 仅查询 `account_type=platform``status=1` 的账号
- **THEN** 系统 MUST query `GET /api/admin/shops/business-owner-candidates`
- **AND** 请求 MUST support `keyword``page``page_size`
- **AND** 候选项 MUST use `id``username` and `phone_summary`
- **AND** 已停用平台账号 MUST NOT 作为新建或编辑候选项显示
#### Scenario: No eligible salesperson exists
@@ -45,7 +47,7 @@ The shop list SHALL display the assigned salesperson and support filtering by `b
- **WHEN** 用户查看店铺列表
- **THEN** 列表 MUST 显示业务员列
- **AND** 已绑定业务员的行 MUST 展示 `business_owner_name``business_owner_phone_masked`
- **AND** 已绑定业务员的行 MUST 展示 `business_owner_username``business_owner_phone_summary`
#### Scenario: Filter shops by salesperson
@@ -57,7 +59,7 @@ The shop list SHALL display the assigned salesperson and support filtering by `b
- **GIVEN** 店铺历史上已绑定的平台业务员后来被停用
- **WHEN** 用户查看店铺列表
- **THEN** 列表 MUST 继续展示该店铺返回的 `business_owner_name``business_owner_phone_masked`
- **THEN** 列表 MUST 继续展示该店铺返回的 `business_owner_username``business_owner_phone_summary`
### Requirement: Shop Detail Salesperson Display
@@ -72,7 +74,8 @@ The shop detail SHALL display the assigned salesperson name and masked phone fro
- **GIVEN** 店铺绑定的业务员已停用
- **WHEN** 用户查看该店铺详情
- **THEN** 页面 MUST 继续使用详情响应中的 `business_owner_name``business_owner_phone_masked` 展示历史业务员信息
- **THEN** 页面 MUST request `GET /api/admin/shops/{id}`
- **AND** 页面 MUST 继续使用详情响应中的 `business_owner_username``business_owner_phone_summary` 展示历史业务员信息
#### Scenario: Do not add distribution or commission semantics

View File

@@ -3,7 +3,7 @@
- [x] 1.1 更新店铺创建和编辑请求类型,支持可空的 `business_owner_account_id`
- [x] 1.2 更新店铺列表查询类型,支持 `business_owner_account_id` 筛选参数。
- [x] 1.3 更新店铺列表和详情响应类型,读取业务员 ID、名称和脱敏手机号字段。
- [x] 1.4 复用启用平台账号查询接口,读取 `account_id``account_name``phone_masked` 作为候选项。
- [x] 1.4 接入店铺业务员候选接口,读取 `id``username``phone_summary` 作为候选项。
## 2. Shop Form UI