4.5 KiB
4.5 KiB
客户管理API设计
1. API概览
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/customers |
查询客户列表 |
| GET | /api/customers/{id} |
获取客户详情 |
| POST | /api/customers |
创建客户 |
| PUT | /api/customers/{id} |
更新客户信息 |
| DELETE | /api/customers/{id} |
删除客户(软删除) |
| PATCH | /api/customers/{id}/status |
修改客户状态 |
2. 数据模型
客户信息结构
{
"id": "uuid",
"customer_code": "CUS-2025-0001",
"customer_name": "北京科技有限公司",
"customer_type": "enterprise",
"customer_type_display": "企业客户",
"contact_person": "张三",
"contact_title": "技术总监",
"email": "zhangsan@example.com",
"phone": "13800138000",
"address": "北京市朝阳区科技园区100号",
"company_size": "medium",
"company_size_display": "中型企业",
"customer_level": "vip",
"customer_level_display": "VIP客户",
"status": "active",
"status_display": "激活",
"description": "重要客户,需要优先技术支持",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-20T15:45:00Z",
"created_by": "admin_uuid",
"updated_by": "admin_uuid"
}
字段说明
customer_type:individual|enterprise|government|educationcustomer_type_display: 客户类型的多语言显示名称company_size:small|medium|large|enterprisecompany_size_display: 企业规模的多语言显示名称customer_level:normal|vip|enterprise|strategiccustomer_level_display: 客户等级的多语言显示名称status:active|disabledstatus_display: 状态的多语言显示名称
注意:
*_display字段根据请求头Accept-Language或查询参数lang返回对应语言的显示文本
3. API详细设计
3.1 查询客户列表
GET /api/customers
Query参数
page: 页码,默认1page_size: 每页条数,默认20,最大100search: 搜索关键词(支持客户编码、名称、联系人、邮箱)customer_type: 客户类型筛选customer_level: 客户等级筛选status: 状态筛选sort: 排序字段,默认created_atorder: 排序方向,默认desc
响应示例
{
"code": 0,
"message": "success",
"data": {
"list": [
{
"id": "uuid",
"customer_code": "CUS-2025-0001",
"customer_name": "北京科技有限公司",
"customer_type": "enterprise",
"customer_type_display": "企业客户",
"contact_person": "张三",
"email": "zhangsan@example.com",
"customer_level": "vip",
"customer_level_display": "VIP客户",
"status": "active",
"status_display": "激活",
"created_at": "2025-01-15T10:30:00Z"
}
],
"total": 100,
"page": 1,
"page_size": 20,
"total_pages": 5
}
}
3.2 获取客户详情
GET /api/customers/{id}
响应示例
{
"code": 0,
"message": "success",
"data": {
// 完整的客户信息结构
}
}
3.3 创建客户
POST /api/customers
请求体
{
"customer_name": "北京科技有限公司",
"customer_type": "enterprise",
"contact_person": "张三",
"contact_title": "技术总监",
"email": "zhangsan@example.com",
"phone": "13800138000",
"address": "北京市朝阳区科技园区100号",
"company_size": "medium",
"customer_level": "normal",
"description": "新客户",
"status": "active"
}
必填字段
customer_name: 客户名称contact_person: 联系人姓名customer_level: 客户等级customer_type: 客户类型company_size: 企业规模status: 状态
响应示例
{
"code": 0,
"message": "客户创建成功",
"data": {
// 创建后的完整客户信息
}
}
3.4 更新客户信息
PUT /api/customers/{id}
请求体: 与创建客户相同,但所有字段都是可选的
响应示例
{
"code": 0,
"message": "客户信息更新成功",
"data": {
// 更新后的完整客户信息
}
}
3.5 删除客户
DELETE /api/customers/{id}
响应示例
{
"code": 0,
"message": "客户删除成功",
"data": null
}
3.6 修改客户状态
PATCH /api/customers/{id}/status
请求体
{
"status": "disabled"
}
响应示例
{
"code": 0,
"message": "客户状态更新成功",
"data": {
"id": "uuid",
"status": "disabled"
}
}