版本: 1.0.0
描述: 多租户 SaaS 平台 — 用户、角色、权限、租户管理接口
License: Apache 2.0
Contact: SaaS Platform Team
| 项目 | 说明 |
|---|---|
| Base URL | http://121.41.54.56:9090 |
| OpenAPI | 3.0.1 |
| 认证方式 | Bearer JWT(Header: Authorization: Bearer <token>) |
| 文档源 | /tenant/v3/api-docs |
| Swagger UI | http://121.41.54.56:9090/webjars/swagger-ui/index.html?urls.primaryName=%E7%A7%9F%E6%88%B7%E7%AE%A1%E7%90%86%E6%9C%8D%E5%8A%A1 |
几乎所有接口返回统一包装:
{
"code": 0,
"message": "success",
"data": { ... },
"timestamp": 1690000000000,
"success": true
}
| 字段 | 类型 | 说明 |
|---|---|---|
code |
integer | 业务状态码,通常 0 表示成功 |
message |
string | 提示信息 |
data |
object | 业务数据(见各接口返回模型) |
timestamp |
long | 毫秒时间戳 |
success |
boolean | 是否成功 |
GET /tenant/roles当前租户角色列表(含预设角色)
list响应 (Response)
200 OK
返回包装类型: ResultListRoleVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: array\<RoleVO\>
- 400 Bad Request → ResultVoid
- 405 Method Not Allowed → ResultVoid
- 500 Internal Server Error → ResultVoid
GET /tenant/roles/{id}获取角色详情
getById请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id |
path | integer (int64) | 是 | 角色 id |
响应 (Response)
200 OK
返回包装类型: ResultRoleVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: RoleVO
角色响应体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
roleName |
string | 否 | 角色名称 | 租户管理员 |
roleCode |
string | 否 | 角色编码(预置角色常量如 TENANT_ADMIN/PLATFORM_ADMIN;自建角色为自定义) | TENANT_ADMIN |
description |
string | 否 | 角色描述 | 企业管理者 |
roleType |
string 枚举: PRESET / CUSTOM |
否 | 角色类型(PRESET 预置,全租户共享 / CUSTOM 自建,本租户) | PRESET |
status |
string 枚举: ENABLED / DISABLED / DELETED |
否 | 状态(ENABLED 启用 / DISABLED 停用 / DELETED 已删除) | ENABLED |
400 Bad Request → ResultVoid405 Method Not Allowed → ResultVoid500 Internal Server Error → ResultVoidPUT /tenant/roles/{id}/toggle-status启用/停用角色
toggleStatus请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id |
path | integer (int64) | 是 | 角色 id |
响应 (Response)
200 OK
返回包装类型: ResultVoid
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: object
- 400 Bad Request → ResultVoid
- 405 Method Not Allowed → ResultVoid
- 500 Internal Server Error → ResultVoid
POST /tenant/organizations创建组织
create请求体 (Request Body)
Content-Type: application/json
类型: OrgCreateDTO
创建组织请求体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
orgName |
string | 是 | 组织名称 | 华东分公司 |
orgType |
string 枚举: HQ / BRANCH / DEALER / AGENT / DEPT / TEAM |
否 | 组织类型(HQ 公司本部 / BRANCH 分公司 / DEALER 经销商 / AGENT 代理商 / DEPT 部门 / TEAM 团队);默认 DEPT | BRANCH |
parentId |
integer (int64) | 否 | 上级组织 id;根组织留空 | |
leaderId |
integer (int64) | 否 | 负责人员工 id;可空 | |
region |
string | 否 | 所在地区;可空 | 上海 |
sortOrder |
integer (int32) | 否 | 同级内显示排序(数字越小越靠前);可空 | 1 |
响应 (Response)
200 OK
返回包装类型: ResultOrgVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: OrgVO
组织响应体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
orgName |
string | 否 | 组织名称 | 华东分公司 |
orgType |
string 枚举: HQ / BRANCH / DEALER / AGENT / DEPT / TEAM |
否 | 组织类型(HQ 公司本部 / BRANCH 分公司 / DEALER 经销商 / AGENT 代理商 / DEPT 部门 / TEAM 团队) | BRANCH |
parentId |
integer (int64) | 否 | 上级组织 id(根组织为 null) | |
orgPath |
string | 否 | 组织路径(从根到本节点的全路径,如 /默认租户/华东分公司) | |
leaderId |
integer (int64) | 否 | 负责人员工 id(可空) | |
region |
string | 否 | 所在地区 | 上海 |
sortOrder |
integer (int32) | 否 | 同级内显示排序(数字越小越靠前) | |
status |
boolean | 否 | 启用状态(true 启用 / false 停用) |
400 Bad Request → ResultVoid405 Method Not Allowed → ResultVoid500 Internal Server Error → ResultVoidGET /tenant/organizations/tree获取组织树
getTree响应 (Response)
200 OK
返回包装类型: ResultListOrgVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: array\<OrgVO\>
- 400 Bad Request → ResultVoid
- 405 Method Not Allowed → ResultVoid
- 500 Internal Server Error → ResultVoid
PUT /tenant/organizations/{id}更新组织
update请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id |
path | integer (int64) | 是 | 组织 id |
请求体 (Request Body)
Content-Type: application/json
类型: OrgCreateDTO
创建组织请求体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
orgName |
string | 是 | 组织名称 | 华东分公司 |
orgType |
string 枚举: HQ / BRANCH / DEALER / AGENT / DEPT / TEAM |
否 | 组织类型(HQ 公司本部 / BRANCH 分公司 / DEALER 经销商 / AGENT 代理商 / DEPT 部门 / TEAM 团队);默认 DEPT | BRANCH |
parentId |
integer (int64) | 否 | 上级组织 id;根组织留空 | |
leaderId |
integer (int64) | 否 | 负责人员工 id;可空 | |
region |
string | 否 | 所在地区;可空 | 上海 |
sortOrder |
integer (int32) | 否 | 同级内显示排序(数字越小越靠前);可空 | 1 |
响应 (Response)
200 OK
返回包装类型: ResultOrgVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: OrgVO
组织响应体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
orgName |
string | 否 | 组织名称 | 华东分公司 |
orgType |
string 枚举: HQ / BRANCH / DEALER / AGENT / DEPT / TEAM |
否 | 组织类型(HQ 公司本部 / BRANCH 分公司 / DEALER 经销商 / AGENT 代理商 / DEPT 部门 / TEAM 团队) | BRANCH |
parentId |
integer (int64) | 否 | 上级组织 id(根组织为 null) | |
orgPath |
string | 否 | 组织路径(从根到本节点的全路径,如 /默认租户/华东分公司) | |
leaderId |
integer (int64) | 否 | 负责人员工 id(可空) | |
region |
string | 否 | 所在地区 | 上海 |
sortOrder |
integer (int32) | 否 | 同级内显示排序(数字越小越靠前) | |
status |
boolean | 否 | 启用状态(true 启用 / false 停用) |
400 Bad Request → ResultVoid405 Method Not Allowed → ResultVoid500 Internal Server Error → ResultVoidDELETE /tenant/organizations/{id}删除组织
delete请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id |
path | integer (int64) | 是 | 组织 id |
响应 (Response)
200 OK
返回包装类型: ResultVoid
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: object
- 400 Bad Request → ResultVoid
- 405 Method Not Allowed → ResultVoid
- 500 Internal Server Error → ResultVoid
PUT /tenant/organizations/{id}/toggle-status启用/停用组织
toggleStatus_1请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id |
path | integer (int64) | 是 | 组织 id |
响应 (Response)
200 OK
返回包装类型: ResultVoid
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: object
- 400 Bad Request → ResultVoid
- 405 Method Not Allowed → ResultVoid
- 500 Internal Server Error → ResultVoid
GET /tenant/employees员工分页列表
list_1请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
query |
query | EmployeePageQuery | 是 |
响应 (Response)
200 OK
返回包装类型: ResultPageResultEmployeeVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
page |
integer (int64) | 否 | ||
size |
integer (int64) | 否 | ||
total |
integer (int64) | 否 | ||
totalPages |
integer (int64) | 否 | ||
records |
array<EmployeeVO> | 否 |
400 Bad Request → ResultVoid405 Method Not Allowed → ResultVoid500 Internal Server Error → ResultVoidPOST /tenant/employees创建员工
create_1请求体 (Request Body)
Content-Type: application/json
创建员工请求体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
name |
string | 是 | 员工姓名 | 张三 |
phone |
string | 是 | 登录/联系手机号(同租户内唯一建议) | 13800138000 |
orgId |
integer (int64) | 是 | 所属组织 id | 1 |
roleId |
integer (int64) | 是 | 角色 id(关联 crm_role.id;2 为 TENANT_ADMIN 预置角色) | 2 |
position |
string | 否 | 职位 | 销售主管 |
email |
string | 否 | 邮箱 | zhangsan@example.com |
avatarUrl |
string | 否 | 头像 URL | |
holdLimit |
integer (int32) | 否 | 客户持有上限(可负责客户数) | 50 |
region |
string | 否 | 负责区域 | 华东 |
productTags |
string | 否 | 擅长产品标签(逗号分隔自由文本) | 汽车,零售 |
响应 (Response)
200 OK
返回包装类型: ResultEmployeeVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: EmployeeVO
员工响应体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
name |
string | 否 | 员工姓名 | 张三 |
phone |
string | 否 | 登录/联系手机号 | 13800138000 |
orgId |
integer (int64) | 否 | 所属组织 id | |
roleId |
integer (int64) | 否 | 角色 id(关联 crm_role.id;为 2 即 TENANT_ADMIN 预置角色) | |
position |
string | 否 | 职位 | 销售主管 |
email |
string | 否 | 邮箱 | zhangsan@example.com |
avatarUrl |
string | 否 | 头像 URL | |
status |
string 枚举: ACTIVE / DISABLED |
否 | 状态(ACTIVE 在职 / DISABLED 停用) | ACTIVE |
holdLimit |
integer (int32) | 否 | 客户持有上限(可负责的客户数) | |
region |
string | 否 | 负责区域 | 华东 |
productTags |
string | 否 | 擅长产品标签(逗号分隔自由文本) | 汽车,零售 |
hireDate |
string (date) | 否 | 入职日期 |
400 Bad Request → ResultVoid405 Method Not Allowed → ResultVoid500 Internal Server Error → ResultVoidGET /tenant/employees/by-org/{orgId}按组织查询员工列表
getByOrgId请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
orgId |
path | integer (int64) | 是 | 组织 id |
响应 (Response)
200 OK
返回包装类型: ResultListEmployeeVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: array\<EmployeeVO\>
- 400 Bad Request → ResultVoid
- 405 Method Not Allowed → ResultVoid
- 500 Internal Server Error → ResultVoid
GET /tenant/employees/by-role/{roleId}按角色查询员工列表
getByRoleId请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
roleId |
path | integer (int64) | 是 | 角色 id |
响应 (Response)
200 OK
返回包装类型: ResultListEmployeeVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: array\<EmployeeVO\>
- 400 Bad Request → ResultVoid
- 405 Method Not Allowed → ResultVoid
- 500 Internal Server Error → ResultVoid
GET /tenant/employees/count-by-role/{roleId}统计角色关联的员工数
countByRoleId请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
roleId |
path | integer (int64) | 是 | 角色 id |
响应 (Response)
200 OK
返回包装类型: ResultLong
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: integer (int64)
- 400 Bad Request → ResultVoid
- 405 Method Not Allowed → ResultVoid
- 500 Internal Server Error → ResultVoid
GET /tenant/employees/export导出员工(Excel)
exportEmployees请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
orgId |
query | integer (int64) | 否 | 按组织 id 过滤;留空=全部 |
响应 (Response)
200 OK400 Bad Request → ResultVoid405 Method Not Allowed → ResultVoid500 Internal Server Error → ResultVoidPOST /tenant/employees/import批量导入员工(Excel)
importEmployees请求体 (Request Body)
⚠️ 规范中可能标注为
application/json+ binary,实际调用请使用multipart/form-data上传 Excel,字段名file。
Content-Type: multipart/form-data
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
file |
string (binary) | 是 | Excel 文件(multipart 字段名 file) |
响应 (Response)
200 OK
返回包装类型: ResultInteger
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: integer (int32)
- 400 Bad Request → ResultVoid
- 405 Method Not Allowed → ResultVoid
- 500 Internal Server Error → ResultVoid
GET /tenant/employees/{id}获取员工详情
getById_1请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id |
path | integer (int64) | 是 | 员工 id |
响应 (Response)
200 OK
返回包装类型: ResultEmployeeVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: EmployeeVO
员工响应体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
name |
string | 否 | 员工姓名 | 张三 |
phone |
string | 否 | 登录/联系手机号 | 13800138000 |
orgId |
integer (int64) | 否 | 所属组织 id | |
roleId |
integer (int64) | 否 | 角色 id(关联 crm_role.id;为 2 即 TENANT_ADMIN 预置角色) | |
position |
string | 否 | 职位 | 销售主管 |
email |
string | 否 | 邮箱 | zhangsan@example.com |
avatarUrl |
string | 否 | 头像 URL | |
status |
string 枚举: ACTIVE / DISABLED |
否 | 状态(ACTIVE 在职 / DISABLED 停用) | ACTIVE |
holdLimit |
integer (int32) | 否 | 客户持有上限(可负责的客户数) | |
region |
string | 否 | 负责区域 | 华东 |
productTags |
string | 否 | 擅长产品标签(逗号分隔自由文本) | 汽车,零售 |
hireDate |
string (date) | 否 | 入职日期 |
400 Bad Request → ResultVoid405 Method Not Allowed → ResultVoid500 Internal Server Error → ResultVoidPUT /tenant/employees/{id}更新员工
update_1请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id |
path | integer (int64) | 是 | 员工 id |
请求体 (Request Body)
Content-Type: application/json
编辑员工请求体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
name |
string | 否 | 员工姓名 | 张三 |
phone |
string | 否 | 登录/联系手机号 | 13800138000 |
orgId |
integer (int64) | 否 | 所属组织 id | |
roleId |
integer (int64) | 否 | 角色 id(关联 crm_role.id) | |
position |
string | 否 | 职位 | 销售主管 |
email |
string | 否 | 邮箱 | zhangsan@example.com |
holdLimit |
integer (int32) | 否 | 客户持有上限 | 50 |
region |
string | 否 | 负责区域 | 华东 |
productTags |
string | 否 | 擅长产品标签(逗号分隔自由文本) | 汽车,零售 |
响应 (Response)
200 OK
返回包装类型: ResultEmployeeVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: EmployeeVO
员工响应体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
name |
string | 否 | 员工姓名 | 张三 |
phone |
string | 否 | 登录/联系手机号 | 13800138000 |
orgId |
integer (int64) | 否 | 所属组织 id | |
roleId |
integer (int64) | 否 | 角色 id(关联 crm_role.id;为 2 即 TENANT_ADMIN 预置角色) | |
position |
string | 否 | 职位 | 销售主管 |
email |
string | 否 | 邮箱 | zhangsan@example.com |
avatarUrl |
string | 否 | 头像 URL | |
status |
string 枚举: ACTIVE / DISABLED |
否 | 状态(ACTIVE 在职 / DISABLED 停用) | ACTIVE |
holdLimit |
integer (int32) | 否 | 客户持有上限(可负责的客户数) | |
region |
string | 否 | 负责区域 | 华东 |
productTags |
string | 否 | 擅长产品标签(逗号分隔自由文本) | 汽车,零售 |
hireDate |
string (date) | 否 | 入职日期 |
400 Bad Request → ResultVoid405 Method Not Allowed → ResultVoid500 Internal Server Error → ResultVoidDELETE /tenant/employees/{id}删除员工
delete_1请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id |
path | integer (int64) | 是 | 员工 id |
响应 (Response)
200 OK
返回包装类型: ResultVoid
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: object
- 400 Bad Request → ResultVoid
- 405 Method Not Allowed → ResultVoid
- 500 Internal Server Error → ResultVoid
GET /tenant/customers本租户客户列表(只读)
list_2请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
query |
query | TenantCustomerPageQuery | 是 |
响应 (Response)
200 OK
返回包装类型: ResultPageResultCustomerVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
page |
integer (int64) | 否 | ||
size |
integer (int64) | 否 | ||
total |
integer (int64) | 否 | ||
totalPages |
integer (int64) | 否 | ||
records |
array<CustomerVO> | 否 |
400 Bad Request → ResultVoid405 Method Not Allowed → ResultVoid500 Internal Server Error → ResultVoidGET /tenant/customers/{id}客户详情(只读)
detail请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id |
path | integer (int64) | 是 | 客户 id |
响应 (Response)
200 OK
返回包装类型: ResultCustomerVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
类型: CustomerVO
客户响应体(后台 · 只读)
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
name |
string | 否 | 客户名称(企业名或个人名) | 上海特斯拉 |
customerType |
string 枚举: ENTERPRISE / PERSONAL |
否 | 客户类型(ENTERPRISE 企业 / PERSONAL 个人) | ENTERPRISE |
industry |
string | 否 | 所属行业 | 汽车行业 |
region |
string | 否 | 所在地区 | 上海 |
contactName |
string | 否 | 主要联系人姓名 | 张经理 |
contactPhone |
string | 否 | 主要联系电话(手机) | 13800138000 |
contactPosition |
string | 否 | 主要联系人职位 | 采购经理 |
contactTel |
string | 否 | 备用/座机电话 | 021-12345678 |
email |
string | 否 | 客户邮箱 | contact@example.com |
address |
string | 否 | 客户地址 | 上海市浦东新区 |
source |
string 枚举: MINI_PROGRAM / SALES_INPUT / EXHIBITION / REFERRAL |
否 | 客户来源(小程序注册/销售录入/展会/转介绍) | SALES_INPUT |
level |
string 枚举: VIP / A / B / C |
否 | 客户级别(VIP/A/B/C) | VIP |
tags |
string | 否 | 标签(逗号分隔的自由文本) | 重点,高意向 |
orgId |
integer (int64) | 否 | 所属组织 id(可空) | |
ownerId |
integer (int64) | 否 | 客户归属人(销售员)员工 id | |
stage |
string 枚举: NEW_LEAD / PENDING_ASSIGN / CONTACTING / NEEDS_COMM / QUOTING / NEGOTIATING / DEAL / LOST |
否 | 当前客户阶段(NEW_LEAD新线索 / PENDING_ASSIGN待分配 / CONTACTING接洽中 / NEEDS_COMM需求沟通 / QUOTING报价中 / NEGOTIATING议价中 / DEAL成交 / LOST流失) | NEW_LEAD |
lastFollowAt |
string (date-time) | 否 | 最近一次跟进时间 | |
nextFollowAt |
string (date-time) | 否 | 下次计划跟进时间 | |
dealAt |
string (date-time) | 否 | 成交时间(阶段到 DEAL 时写入) | |
lostAt |
string (date-time) | 否 | 流失时间(阶段到 LOST 时写入) | |
lostReason |
string | 否 | 流失原因 |
400 Bad Request → ResultVoid405 Method Not Allowed → ResultVoid500 Internal Server Error → ResultVoidGET /tenant/customers/{id}/follow-ups客户跟进历史(只读)
followUps请求参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id |
path | integer (int64) | 是 | 客户 id | |
query |
query | FollowUpPageQuery | 是 |
响应 (Response)
200 OK
返回包装类型: ResultPageResultFollowUpVO
统一包装字段:
统一响应包装字段
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
data 业务字段:
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
page |
integer (int64) | 否 | ||
size |
integer (int64) | 否 | ||
total |
integer (int64) | 否 | ||
totalPages |
integer (int64) | 否 | ||
records |
array<FollowUpVO> | 否 |
400 Bad Request → ResultVoid405 Method Not Allowed → ResultVoid500 Internal Server Error → ResultVoid接口章节已内联展示 Request / Response 字段说明,此处便于全局查阅。
创建员工请求体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
name |
string | 是 | 员工姓名 | 张三 |
phone |
string | 是 | 登录/联系手机号(同租户内唯一建议) | 13800138000 |
orgId |
integer (int64) | 是 | 所属组织 id | 1 |
roleId |
integer (int64) | 是 | 角色 id(关联 crm_role.id;2 为 TENANT_ADMIN 预置角色) | 2 |
position |
string | 否 | 职位 | 销售主管 |
email |
string | 否 | 邮箱 | zhangsan@example.com |
avatarUrl |
string | 否 | 头像 URL | |
holdLimit |
integer (int32) | 否 | 客户持有上限(可负责客户数) | 50 |
region |
string | 否 | 负责区域 | 华东 |
productTags |
string | 否 | 擅长产品标签(逗号分隔自由文本) | 汽车,零售 |
员工分页查询条件
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
page |
integer (int32) | 否 | ||
size |
integer (int32) | 否 | ||
sortBy |
string | 否 | ||
sortDir |
string | 否 | ||
orgId |
integer (int64) | 否 | 按所属组织 id 过滤;留空=不按组织过滤 | |
roleId |
integer (int64) | 否 | 按角色 id 过滤;留空=不按角色过滤 | |
status |
string 枚举: ACTIVE / DISABLED |
否 | 按员工状态过滤(ACTIVE 在职 / DISABLED 停用);留空=全部 | |
keyword |
string | 否 | 关键词(模糊匹配员工姓名/手机号等);可空 | 张三 |
offset |
integer (int32) | 否 |
编辑员工请求体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
name |
string | 否 | 员工姓名 | 张三 |
phone |
string | 否 | 登录/联系手机号 | 13800138000 |
orgId |
integer (int64) | 否 | 所属组织 id | |
roleId |
integer (int64) | 否 | 角色 id(关联 crm_role.id) | |
position |
string | 否 | 职位 | 销售主管 |
email |
string | 否 | 邮箱 | zhangsan@example.com |
holdLimit |
integer (int32) | 否 | 客户持有上限 | 50 |
region |
string | 否 | 负责区域 | 华东 |
productTags |
string | 否 | 擅长产品标签(逗号分隔自由文本) | 汽车,零售 |
客户跟进历史分页查询条件(后台只读)
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
page |
integer (int32) | 否 | ||
size |
integer (int32) | 否 | ||
sortBy |
string | 否 | ||
sortDir |
string | 否 | ||
offset |
integer (int32) | 否 |
创建组织请求体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
orgName |
string | 是 | 组织名称 | 华东分公司 |
orgType |
string 枚举: HQ / BRANCH / DEALER / AGENT / DEPT / TEAM |
否 | 组织类型(HQ 公司本部 / BRANCH 分公司 / DEALER 经销商 / AGENT 代理商 / DEPT 部门 / TEAM 团队);默认 DEPT | BRANCH |
parentId |
integer (int64) | 否 | 上级组织 id;根组织留空 | |
leaderId |
integer (int64) | 否 | 负责人员工 id;可空 | |
region |
string | 否 | 所在地区;可空 | 上海 |
sortOrder |
integer (int32) | 否 | 同级内显示排序(数字越小越靠前);可空 | 1 |
本租户客户分页查询条件(后台只读)
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
page |
integer (int32) | 否 | ||
size |
integer (int32) | 否 | ||
sortBy |
string | 否 | ||
sortDir |
string | 否 | ||
ownerId |
integer (int64) | 否 | 按客户归属人(销售员)员工 id 过滤;留空=全部 | |
offset |
integer (int32) | 否 |
客户响应体(后台 · 只读)
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
name |
string | 否 | 客户名称(企业名或个人名) | 上海特斯拉 |
customerType |
string 枚举: ENTERPRISE / PERSONAL |
否 | 客户类型(ENTERPRISE 企业 / PERSONAL 个人) | ENTERPRISE |
industry |
string | 否 | 所属行业 | 汽车行业 |
region |
string | 否 | 所在地区 | 上海 |
contactName |
string | 否 | 主要联系人姓名 | 张经理 |
contactPhone |
string | 否 | 主要联系电话(手机) | 13800138000 |
contactPosition |
string | 否 | 主要联系人职位 | 采购经理 |
contactTel |
string | 否 | 备用/座机电话 | 021-12345678 |
email |
string | 否 | 客户邮箱 | contact@example.com |
address |
string | 否 | 客户地址 | 上海市浦东新区 |
source |
string 枚举: MINI_PROGRAM / SALES_INPUT / EXHIBITION / REFERRAL |
否 | 客户来源(小程序注册/销售录入/展会/转介绍) | SALES_INPUT |
level |
string 枚举: VIP / A / B / C |
否 | 客户级别(VIP/A/B/C) | VIP |
tags |
string | 否 | 标签(逗号分隔的自由文本) | 重点,高意向 |
orgId |
integer (int64) | 否 | 所属组织 id(可空) | |
ownerId |
integer (int64) | 否 | 客户归属人(销售员)员工 id | |
stage |
string 枚举: NEW_LEAD / PENDING_ASSIGN / CONTACTING / NEEDS_COMM / QUOTING / NEGOTIATING / DEAL / LOST |
否 | 当前客户阶段(NEW_LEAD新线索 / PENDING_ASSIGN待分配 / CONTACTING接洽中 / NEEDS_COMM需求沟通 / QUOTING报价中 / NEGOTIATING议价中 / DEAL成交 / LOST流失) | NEW_LEAD |
lastFollowAt |
string (date-time) | 否 | 最近一次跟进时间 | |
nextFollowAt |
string (date-time) | 否 | 下次计划跟进时间 | |
dealAt |
string (date-time) | 否 | 成交时间(阶段到 DEAL 时写入) | |
lostAt |
string (date-time) | 否 | 流失时间(阶段到 LOST 时写入) | |
lostReason |
string | 否 | 流失原因 |
员工响应体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
name |
string | 否 | 员工姓名 | 张三 |
phone |
string | 否 | 登录/联系手机号 | 13800138000 |
orgId |
integer (int64) | 否 | 所属组织 id | |
roleId |
integer (int64) | 否 | 角色 id(关联 crm_role.id;为 2 即 TENANT_ADMIN 预置角色) | |
position |
string | 否 | 职位 | 销售主管 |
email |
string | 否 | 邮箱 | zhangsan@example.com |
avatarUrl |
string | 否 | 头像 URL | |
status |
string 枚举: ACTIVE / DISABLED |
否 | 状态(ACTIVE 在职 / DISABLED 停用) | ACTIVE |
holdLimit |
integer (int32) | 否 | 客户持有上限(可负责的客户数) | |
region |
string | 否 | 负责区域 | 华东 |
productTags |
string | 否 | 擅长产品标签(逗号分隔自由文本) | 汽车,零售 |
hireDate |
string (date) | 否 | 入职日期 |
跟进记录响应体(后台 · 只读)
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
customerId |
integer (int64) | 否 | 关联客户 id | |
followerId |
integer (int64) | 否 | 跟进人(销售员)员工 id | |
followAt |
string (date-time) | 否 | 本次跟进实际发生时间 | |
followMethod |
string 枚举: PHONE / WECHAT / VISIT / EMAIL / MEETING |
否 | 跟进方式(PHONE 电话 / WECHAT 微信 / VISIT 上门拜访 / EMAIL 邮件 / MEETING 会议) | PHONE |
content |
string | 否 | 跟进内容/沟通纪要 | |
nextFollowAt |
string (date-time) | 否 | 下次计划跟进时间(可空) | |
nextFollowPlan |
string | 否 | 下次跟进计划/备注(可空) | |
followStatus |
string 枚举: DONE / PENDING / OVERDUE |
否 | 跟进状态(DONE 已完成 / PENDING 待跟进 / OVERDUE 已超时) | DONE |
组织响应体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
orgName |
string | 否 | 组织名称 | 华东分公司 |
orgType |
string 枚举: HQ / BRANCH / DEALER / AGENT / DEPT / TEAM |
否 | 组织类型(HQ 公司本部 / BRANCH 分公司 / DEALER 经销商 / AGENT 代理商 / DEPT 部门 / TEAM 团队) | BRANCH |
parentId |
integer (int64) | 否 | 上级组织 id(根组织为 null) | |
orgPath |
string | 否 | 组织路径(从根到本节点的全路径,如 /默认租户/华东分公司) | |
leaderId |
integer (int64) | 否 | 负责人员工 id(可空) | |
region |
string | 否 | 所在地区 | 上海 |
sortOrder |
integer (int32) | 否 | 同级内显示排序(数字越小越靠前) | |
status |
boolean | 否 | 启用状态(true 启用 / false 停用) |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
array<RoleVO> | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
RoleVO | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
角色响应体
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id |
integer (int64) | 否 | 主键 id | |
createdAt |
string (date-time) | 否 | 创建时间 | |
updatedAt |
string (date-time) | 否 | 更新时间 | |
createdBy |
string | 否 | 创建人(操作人标识,如 Sa-Token loginId 字符串或 system) | |
updatedBy |
string | 否 | 更新人 | |
tenantId |
string | 否 | 所属租户 id(平台管理员等跨租户场景为 null) | |
deleted |
integer (int32) | 否 | 软删除标记(0=未删除,1=已删除) | |
roleName |
string | 否 | 角色名称 | 租户管理员 |
roleCode |
string | 否 | 角色编码(预置角色常量如 TENANT_ADMIN/PLATFORM_ADMIN;自建角色为自定义) | TENANT_ADMIN |
description |
string | 否 | 角色描述 | 企业管理者 |
roleType |
string 枚举: PRESET / CUSTOM |
否 | 角色类型(PRESET 预置,全租户共享 / CUSTOM 自建,本租户) | PRESET |
status |
string 枚举: ENABLED / DISABLED / DELETED |
否 | 状态(ENABLED 启用 / DISABLED 停用 / DELETED 已删除) | ENABLED |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
page |
integer (int64) | 否 | ||
size |
integer (int64) | 否 | ||
total |
integer (int64) | 否 | ||
totalPages |
integer (int64) | 否 | ||
records |
array<CustomerVO> | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
page |
integer (int64) | 否 | ||
size |
integer (int64) | 否 | ||
total |
integer (int64) | 否 | ||
totalPages |
integer (int64) | 否 | ||
records |
array<EmployeeVO> | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
page |
integer (int64) | 否 | ||
size |
integer (int64) | 否 | ||
total |
integer (int64) | 否 | ||
totalPages |
integer (int64) | 否 | ||
records |
array<FollowUpVO> | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
CustomerVO | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
EmployeeVO | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
integer (int32) | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
array<EmployeeVO> | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
array<OrgVO> | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
integer (int64) | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
OrgVO | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
PageResultCustomerVO | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
PageResultEmployeeVO | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
PageResultFollowUpVO | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
code |
integer (int32) | 否 | ||
message |
string | 否 | ||
data |
object | 否 | ||
timestamp |
integer (int64) | 否 | ||
success |
boolean | 否 |
| 模型.字段 | 枚举值 | 说明 |
|---|---|---|
CustomerVO.customerType |
ENTERPRISE · PERSONAL |
客户类型(ENTERPRISE 企业 / PERSONAL 个人) |
CustomerVO.level |
VIP · A · B · C |
客户级别(VIP/A/B/C) |
CustomerVO.source |
MINI_PROGRAM · SALES_INPUT · EXHIBITION · REFERRAL |
客户来源(小程序注册/销售录入/展会/转介绍) |
CustomerVO.stage |
NEW_LEAD · PENDING_ASSIGN · CONTACTING · NEEDS_COMM · QUOTING · NEGOTIATING · DEAL · LOST |
当前客户阶段(NEW_LEAD新线索 / PENDING_ASSIGN待分配 / CONTACTING接洽中 / NEEDS_COMM需求沟通 / QUOTING报价中 / NEGOTIATING议价中 / DEAL成交 / LOST流失) |
EmployeePageQuery.status |
ACTIVE · DISABLED |
按员工状态过滤(ACTIVE 在职 / DISABLED 停用);留空=全部 |
EmployeeVO.status |
ACTIVE · DISABLED |
状态(ACTIVE 在职 / DISABLED 停用) |
FollowUpVO.followMethod |
PHONE · WECHAT · VISIT · EMAIL · MEETING |
跟进方式(PHONE 电话 / WECHAT 微信 / VISIT 上门拜访 / EMAIL 邮件 / MEETING 会议) |
FollowUpVO.followStatus |
DONE · PENDING · OVERDUE |
跟进状态(DONE 已完成 / PENDING 待跟进 / OVERDUE 已超时) |
OrgCreateDTO.orgType |
HQ · BRANCH · DEALER · AGENT · DEPT · TEAM |
组织类型(HQ 公司本部 / BRANCH 分公司 / DEALER 经销商 / AGENT 代理商 / DEPT 部门 / TEAM 团队);默认 DEPT |
OrgVO.orgType |
HQ · BRANCH · DEALER · AGENT · DEPT · TEAM |
组织类型(HQ 公司本部 / BRANCH 分公司 / DEALER 经销商 / AGENT 代理商 / DEPT 部门 / TEAM 团队) |
RoleVO.roleType |
PRESET · CUSTOM |
角色类型(PRESET 预置,全租户共享 / CUSTOM 自建,本租户) |
RoleVO.status |
ENABLED · DISABLED · DELETED |
状态(ENABLED 启用 / DISABLED 停用 / DELETED 已删除) |
Authorization: Bearer <JWT>。/tenant/ 开头,租户上下文一般从 JWT 解析。success / code 判断业务结果,不要只依赖 HTTP 状态码。page=1,size=20。multipart/form-data 上传 Excel,字段名 file。description 与 example。文档由 OpenAPI 规范自动生成(租户版)
源地址: http://121.41.54.56:9090/tenant/v3/api-docs