You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
4.1 KiB
58 lines
4.1 KiB
|
5 days ago
|
# 06 — 联系人建模 CRUD + 全局搜索 + 商机侧硬依赖接口
|
||
|
|
|
||
|
|
Type: research
|
||
|
|
Status: open
|
||
|
|
Blocked by: 02
|
||
|
|
|
||
|
|
## 问题
|
||
|
|
|
||
|
|
定 `customer_contact` 实体表、CRUD 接口、全局搜索(商机侧硬依赖)、联系人电话查重、职务字段占位(图谱划出但字段留占位)。归属客户不孤立、权限继承客户团队。
|
||
|
|
|
||
|
|
## 一手证据(蓝湖缓存 txt)
|
||
|
|
|
||
|
|
- `a4-3-3-1_新增客户信息.txt` — 新增客户内嵌联系人明细表(序号/*联系人/*职务/联系电话/是否内线/礼品备注/来源/操作),OCR/批量导入按钮划出
|
||
|
|
- `a4-5-1_联系人列表_列表视图_.txt` / `a4-5-1_联系人列表_分屏视图_.txt` — 顶级联系人菜单
|
||
|
|
- `a4-5-2_新增联系人.txt` / `a4-5-3_编辑联系人.txt` — 独立联系人 CRUD
|
||
|
|
- `a4-5-4_联系人详情_联系人信息_.txt` / `a4-5-5_联系人详情_联系人信息_.txt` — 联系人详情
|
||
|
|
- `a4-5-5_联系人详情_操作日志_.txt` / `a4-5-6_联系人详情_操作日志_.txt` — 联系人操作日志
|
||
|
|
- `a4-3-4_添加联系人.txt` — 客户下快速添加联系人
|
||
|
|
- `a4-4-2_客户详情_联系人_.txt` — 客户详情联系人页签
|
||
|
|
- `.scratch/opp-customer-dependency/商机模块前置客户接口依赖分析报告.md` — 商机硬依赖清单
|
||
|
|
|
||
|
|
## 已知字段线索
|
||
|
|
|
||
|
|
- **联系人**(必填)— 姓名。
|
||
|
|
- **职务**(必填)— 见 `a4-3-3-1.txt` 底部「职务 - 搜索二级联动下拉框」需求:**图谱划出但存储字段留占位**:`job_title_name`(文本必填) + `job_title_id`(标准职务id可空) + `job_title_category`(类别可空) + `job_title_level`(层级 int 可空)。自定义职务时后三列空。
|
||
|
|
- **联系电话** — 手机号格式;**全库按电话查重**:新增/编辑时电话完全相同禁止创建;同表格内不同行电话相同禁止提交。
|
||
|
|
- **是否内线** — 布尔。
|
||
|
|
- **是否关键联系人** — 布尔(原型有)。
|
||
|
|
- **礼品备注** — 文本。
|
||
|
|
- **来源** — 字典 `contact_source`:组会/组局/转介绍/其他。
|
||
|
|
- **归属客户** — `customer_id` NOT NULL(无孤立联系人)。
|
||
|
|
- **系统字段** — 创建人/时间、修改人/时间。
|
||
|
|
|
||
|
|
## 商机侧硬依赖(对齐 opp-customer-dependency P0/P1)
|
||
|
|
|
||
|
|
| 优先级 | 接口 | 商机侧用途 |
|
||
|
|
|---|---|---|
|
||
|
|
| P0 | `POST /api/customer/search` | 商机新增关联客户下拉数据源 |
|
||
|
|
| P0 | `GET /api/customer/{id}/contacts` | 商机字段17按客户筛选联系人 |
|
||
|
|
| P0 | `GET /api/customer/{id}` | 商机编辑回显客户带出 |
|
||
|
|
| P1 | `GET /api/customer/contact/search` | 商机字段13全局搜联系人+带出所属公司 |
|
||
|
|
| P1 | `POST /api/customer/quick-create` | 商机弹窗「+快速创建客户」入口 |
|
||
|
|
|
||
|
|
**本票产出**:以上契约签名 + 请求/响应 DTO(复用已有的分析报告,把它 promote 成正式契约稿)。
|
||
|
|
|
||
|
|
## 待拍板点
|
||
|
|
|
||
|
|
1. **联系人权限模型**:明说「继承客户团队权限」——本票落成契约:无独立 `@DataScope` 注解,服务层显式按 customer 校验(对客户有读权限即对全部联系人有读权限)。
|
||
|
|
2. **联系人删除**:软删还是硬删?→ 推荐软删(联系人可能被商机/项目引用做快照);主表加 `deleted` 位。
|
||
|
|
3. **联系人电话唯一 vs 允许一号多人**:原型「联系电话完全相同禁止新建」听起来是全库唯一——但同一联系人可能有座机 vs 手机?→ 拍板:**仅手机号做唯一约束**,座机不查重;或直接单一 `phone` 列全库唯一,用户共号自己处理。先按后者简化。
|
||
|
|
4. **快速创建客户 `POST /api/customer/quick-create`**:字段集是**新增客户表单的必填最小子集**?还是就用完整表单?→ 推荐最小集(客户名称/客户类型/所属地区/行业/星级/关系星级)+ 服务端默认(销售负责人=当前用户/is_child=否)。
|
||
|
|
5. **联系人的操作日志**:单独一张 `customer_contact_oplog` 还是并入客户 oplog(票 07)用 `biz_type=CONTACT`?→ 推荐后者,参商机 oplog 口径。
|
||
|
|
6. **人脉关系单位** 与联系人是独立集合,仅是标签(非联系人子表)——归客户主表 JSON/子表(票 02 决定)。
|
||
|
|
|
||
|
|
## Answer
|
||
|
|
|
||
|
|
_(待 resolve)_
|