Files
suixinkan_ios_new/suixinkan/Features/CooperationOrder/CooperationOrder.md
汉秋 1970572edd 迁移合作订单完整能力,并统一 AppRoleCode 角色权限与首页菜单展示。
新增 CooperationOrder 模块(双 Tab 列表、获客员绑定、主 Tab 扫码)、订单来源/带客单绑定及配套 API 测试;同步引入 roleCode 权限匹配与相关单元测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 13:33:00 +08:00

58 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 合作订单模块
## 职责
合作订单模块面向摄影师/门店角色,管理合作获客业务:
- **获客员线索**:查看合作获客员上报的潜在客户线索(手机号、备注、图片)
- **获客订单**:查看通过合作渠道产生的订单,支持关键词搜索
- **合作获客员**:查看已绑定获客员列表,扫码绑定新获客员
权限 URI`cooperation_order`(与 Android `CooperationOrderFeature.URI` 一致)。
## 核心流程
### 首页入口
1. 用户点击首页「合作订单」菜单(`cooperation_order`
2. `CooperationOrderAccessView` 校验 `PermissionContext.canAccess("cooperation_order")`
3. 无权限时 Toast 提示并返回;有权限进入 `CooperationOrderListView`
### 双 Tab 列表
| Tab | API | 说明 |
| --- | --- | --- |
| 获客员线索 | `GET .../sale-user/referral-leads` | 分页 10 条,下拉刷新/加载更多 |
| 获客订单 | `GET .../sale-user/acquisition-orders` | 支持 `keyword` 搜索 |
### 获客员绑定
1. 列表页右上角「合作获客员」→ `CooperationAcquirerView`
2. 扫码或主 Tab 扫码识别 `{"method":"sale_user_bind","sale_user_id":N}`
3. `BindAcquirerView` 加载邀请信息 → 确认 → `POST .../sale-user/accept-bind`
## 与订单模块关系
订单管理(`orderType` 11 摄影师跟拍 / 14 线下扫码)在订单卡片展示「订单来源」:
- Sheet 内选择获客员 → 带客单 → `POST .../bind-referral-order`
- 全页流程见 `ReferralOrderSelectView`
- 订单退款成功后,若已绑定带客单,调用 `POST .../referral-orders/{id}/status`status=3
## 主要文件
| 文件 | 说明 |
| --- | --- |
| `API/CooperationOrderAPI.swift` | 8 个 sale-user / cooperative 接口 |
| `Models/CooperationOrderModels.swift` | 实体与解码 |
| `Services/CooperationOrderFeature.swift` | 权限 URI 常量 |
| `ViewModels/*` | 列表、获客员、绑定 ViewModel |
| `Views/*` | SwiftUI 页面与卡片组件 |
## 依赖
- `@Environment(\.cooperationOrderAPI)` 注入网络层
- `@EnvironmentObject PermissionContext` 权限校验
- `@EnvironmentObject ToastCenter` 用户提示
- Kingfisher 加载线索图片