edit | blame | history | raw

SaaS 系统管理服务 API(租户版)

版本: 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

当前租户角色列表(含预设角色)

  • OperationId: 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}

获取角色详情

  • OperationId: 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

PUT /tenant/roles/{id}/toggle-status

启用/停用角色

  • OperationId: 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

创建组织

  • OperationId: 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 停用)

GET /tenant/organizations/tree

获取组织树

  • OperationId: 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}

更新组织

  • OperationId: 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 停用)

DELETE /tenant/organizations/{id}

删除组织

  • OperationId: 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

启用/停用组织

  • OperationId: 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

员工分页列表

  • OperationId: list_1

请求参数

名称 位置 类型 必填 默认值 说明
query query EmployeePageQuery 是

响应 (Response)

200 OK

返回包装类型: ResultPageResultEmployeeVO

统一包装字段:

统一响应包装字段

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
timestamp integer (int64) 否
success boolean 否

data 业务字段:

类型: PageResultEmployeeVO

字段 类型 必填 说明 示例
page integer (int64) 否
size integer (int64) 否
total integer (int64) 否
totalPages integer (int64) 否
records array<EmployeeVO> 否

POST /tenant/employees

创建员工

  • OperationId: create_1

请求体 (Request Body)

Content-Type: application/json

类型: EmployeeCreateDTO

创建员工请求体

字段 类型 必填 说明 示例
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) 否 入职日期

GET /tenant/employees/by-org/{orgId}

按组织查询员工列表

  • OperationId: 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}

按角色查询员工列表

  • OperationId: 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}

统计角色关联的员工数

  • OperationId: 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)

  • OperationId: exportEmployees

请求参数

名称 位置 类型 必填 默认值 说明
orgId query integer (int64) 否 按组织 id 过滤;留空=全部

响应 (Response)

POST /tenant/employees/import

批量导入员工(Excel)

  • OperationId: 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}

获取员工详情

  • OperationId: 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) 否 入职日期

PUT /tenant/employees/{id}

更新员工

  • OperationId: update_1

请求参数

名称 位置 类型 必填 默认值 说明
id path integer (int64) 是 员工 id

请求体 (Request Body)

Content-Type: application/json

类型: EmployeeUpdateDTO

编辑员工请求体

字段 类型 必填 说明 示例
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) 否 入职日期

DELETE /tenant/employees/{id}

删除员工

  • OperationId: 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

本租户客户列表(只读)

  • OperationId: list_2

请求参数

名称 位置 类型 必填 默认值 说明
query query TenantCustomerPageQuery 是

响应 (Response)

200 OK

返回包装类型: ResultPageResultCustomerVO

统一包装字段:

统一响应包装字段

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
timestamp integer (int64) 否
success boolean 否

data 业务字段:

类型: PageResultCustomerVO

字段 类型 必填 说明 示例
page integer (int64) 否
size integer (int64) 否
total integer (int64) 否
totalPages integer (int64) 否
records array<CustomerVO> 否

GET /tenant/customers/{id}

客户详情(只读)

  • OperationId: 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 否 流失原因

GET /tenant/customers/{id}/follow-ups

客户跟进历史(只读)

  • OperationId: followUps

请求参数

名称 位置 类型 必填 默认值 说明
id path integer (int64) 是 客户 id
query query FollowUpPageQuery 是

响应 (Response)

200 OK

返回包装类型: ResultPageResultFollowUpVO

统一包装字段:

统一响应包装字段

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
timestamp integer (int64) 否
success boolean 否

data 业务字段:

类型: PageResultFollowUpVO

字段 类型 必填 说明 示例
page integer (int64) 否
size integer (int64) 否
total integer (int64) 否
totalPages integer (int64) 否
records array<FollowUpVO> 否

数据模型完整参考

接口章节已内联展示 Request / Response 字段说明,此处便于全局查阅。

EmployeeCreateDTO

创建员工请求体

字段 类型 必填 说明 示例
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 否 擅长产品标签(逗号分隔自由文本) 汽车,零售

EmployeePageQuery

员工分页查询条件

字段 类型 必填 说明 示例
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) 否

EmployeeUpdateDTO

编辑员工请求体

字段 类型 必填 说明 示例
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 否 擅长产品标签(逗号分隔自由文本) 汽车,零售

FollowUpPageQuery

客户跟进历史分页查询条件(后台只读)

字段 类型 必填 说明 示例
page integer (int32) 否
size integer (int32) 否
sortBy string 否
sortDir string 否
offset integer (int32) 否

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

TenantCustomerPageQuery

本租户客户分页查询条件(后台只读)

字段 类型 必填 说明 示例
page integer (int32) 否
size integer (int32) 否
sortBy string 否
sortDir string 否
ownerId integer (int64) 否 按客户归属人(销售员)员工 id 过滤;留空=全部
offset integer (int32) 否

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 否 流失原因

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) 否 入职日期

FollowUpVO

跟进记录响应体(后台 · 只读)

字段 类型 必填 说明 示例
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

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 停用)

ResultListRoleVO

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data array<RoleVO> 否
timestamp integer (int64) 否
success boolean 否

ResultRoleVO

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data RoleVO 否
timestamp integer (int64) 否
success boolean 否

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

PageResultCustomerVO

字段 类型 必填 说明 示例
page integer (int64) 否
size integer (int64) 否
total integer (int64) 否
totalPages integer (int64) 否
records array<CustomerVO> 否

PageResultEmployeeVO

字段 类型 必填 说明 示例
page integer (int64) 否
size integer (int64) 否
total integer (int64) 否
totalPages integer (int64) 否
records array<EmployeeVO> 否

PageResultFollowUpVO

字段 类型 必填 说明 示例
page integer (int64) 否
size integer (int64) 否
total integer (int64) 否
totalPages integer (int64) 否
records array<FollowUpVO> 否

ResultCustomerVO

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data CustomerVO 否
timestamp integer (int64) 否
success boolean 否

ResultEmployeeVO

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data EmployeeVO 否
timestamp integer (int64) 否
success boolean 否

ResultInteger

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data integer (int32) 否
timestamp integer (int64) 否
success boolean 否

ResultListEmployeeVO

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data array<EmployeeVO> 否
timestamp integer (int64) 否
success boolean 否

ResultListOrgVO

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data array<OrgVO> 否
timestamp integer (int64) 否
success boolean 否

ResultLong

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data integer (int64) 否
timestamp integer (int64) 否
success boolean 否

ResultOrgVO

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data OrgVO 否
timestamp integer (int64) 否
success boolean 否

ResultPageResultCustomerVO

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data PageResultCustomerVO 否
timestamp integer (int64) 否
success boolean 否

ResultPageResultEmployeeVO

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data PageResultEmployeeVO 否
timestamp integer (int64) 否
success boolean 否

ResultPageResultFollowUpVO

字段 类型 必填 说明 示例
code integer (int32) 否
message string 否
data PageResultFollowUpVO 否
timestamp integer (int64) 否
success boolean 否

ResultVoid

字段 类型 必填 说明 示例
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 已删除)

注意事项

  1. 认证:所有接口需在 Header 中携带 Authorization: Bearer <JWT>。
  2. 多租户:路径统一以 /tenant/ 开头,租户上下文一般从 JWT 解析。
  3. 统一响应:请以 success / code 判断业务结果,不要只依赖 HTTP 状态码。
  4. 分页:分页参数默认 page=1,size=20。
  5. 员工导入:实际请使用 multipart/form-data 上传 Excel,字段名 file。
  6. 员工导出:返回 Excel 文件流。
  7. 字段说明:Request / Response 字段的「说明」「示例」均来自 OpenAPI description 与 example。

文档由 OpenAPI 规范自动生成(租户版)
源地址: http://121.41.54.56:9090/tenant/v3/api-docs