← 返回首页

API模块详情

完整的接口文档和示例

公共请求头(所有接口适用)

参数名 必填 类型 示例 说明
Authorization string Bearer <JWT token> 用户登录后的 JWT 令牌。若已登录可直接使用,无需传 X-Client。。认证 Token,请在请求头中携带,推荐格式:Bearer {token}
X-Client string <client key token> 客户端密钥。当未携带或无法使用 Authorization 时必填,用于密钥认证。线上文档: http://localhost:5601/docs
X-Site string <site key> 站点标识(必填)。用于切换站点和对应的数据库上下文。所有 OpenAPI 接口必须提供有效的 X-Site header。
X-System-Code string AUTH_MANAGEMENT 系统编码(必填)。用于指定当前访问的业务系统(例如 AUTH_MANAGEMENT、CONTENT_MANAGEMENT)。当系统不支持时将返回“登录用户不支持当前系统,可联系管理员处理”。

用户管理

模块标识: user | 接口数量: 5

GET 获取用户列表 /api/users

查看详情
分页获取系统用户列表,支持按姓名、手机号、状态筛选。支持通过 X-Site header 切换站点,切换后查询对应站点的数据库。
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
name string - 用户姓名(模糊搜索)
phone string - 手机号(模糊搜索)
status number - 状态:1-正常,0-禁用
响应示例
{
  "success": {
    "code": 200,
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "USER001",
          "name": "张三",
          "title": "系统管理员",
          "phone": "13800138000",
          "email": "zhangsan@example.com",
          "phonePrefix": "+86",
          "status": 1,
          "createTime": "2024-01-01T00:00:00.000Z"
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取用户详情 /api/users/{id}

查看详情
根据用户ID获取用户详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 系统用户ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "USER0001",
      "name": "系统管理员",
      "phone": "13800000000",
      "status": 1,
      "roles": [
        "ROLE0001"
      ],
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "系统用户不存在",
    "data": null
  }
}

POST 创建用户 /api/users

查看详情
创建新的系统用户
请求参数

请求体

{
  "name": "string|必填,用户姓名",
  "phone": "string|必填,手机号,唯一",
  "password": "string|必填,登录密码",
  "roles": "array|可选,绑定角色ID数组",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建系统用户成功",
    "data": {
      "id": 1,
      "code": "USER0001",
      "name": "系统管理员",
      "phone": "13800000000",
      "status": 1,
      "roles": [
        "ROLE0001"
      ],
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建系统用户失败",
    "data": null
  }
}

PUT 更新用户 /api/users/{id}

查看详情
更新指定用户的信息
请求参数
参数名 必填 类型 示例 说明
id string - 系统用户ID

请求体

{
  "name": "string|必填,用户姓名",
  "phone": "string|必填,手机号,唯一",
  "password": "string|必填,登录密码",
  "roles": "array|可选,绑定角色ID数组",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新系统用户成功",
    "data": {
      "id": 1,
      "code": "USER0001",
      "name": "系统管理员",
      "phone": "13800000000",
      "status": 1,
      "roles": [
        "ROLE0001"
      ],
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新系统用户失败",
    "data": null
  }
}

DELETE 删除用户 /api/users/{id}

查看详情
删除指定的用户
请求参数
参数名 必填 类型 示例 说明
id string - 系统用户ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除系统用户成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除系统用户失败",
    "data": null
  }
}

认证模块

模块标识: auth | 接口数量: 4

POST 用户注册 /auth/register

查看详情
系统用户注册接口。如果 individualism=true,会为用户创建独立站点和独立数据库,并自动创建超级管理员角色。
请求参数

请求体

{
  "name": "string|必填,用户名",
  "phone": "string|必填,手机号",
  "password": "string|必填,登录密码",
  "email": "string|可选,邮箱",
  "individualism": "boolean|可选,是否创建独立站点,默认 false"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "注册成功",
    "data": {
      "token": "jwt-token",
      "user": {
        "id": "USER0001",
        "code": "USER000001",
        "name": "张三",
        "phone": "13800138000",
        "email": "zhangsan@example.com",
        "individualism": true,
        "individualDbName": "user_1_1764407777204"
      },
      "clientKey": {
        "id": "key-id",
        "keyToken": "key-token",
        "individualDbName": "user_1_1764407777204"
      }
    }
  },
  "failure": {
    "code": "4000",
    "message": "注册失败",
    "data": null
  }
}
注意事项
  • 如果 individualism=true,系统会:1. 创建独立数据库 2. 在独立数据库中创建用户副本 3. 创建超级管理员角色并绑定用户
  • 注册成功后,用户记录在所属站点数据库创建,同时在独立数据库中创建副本用于角色绑定

POST 用户登录 /auth/login

查看详情
系统用户登录接口。如果用户有多个可用站点,会返回站点列表供前端选择。
请求参数
参数名 必填 类型 示例 说明
system string - 系统编码,登录时自动分配系统默认管理员角色

请求体

{
  "phone": "string|必填,手机号",
  "password": "string|必填,登录密码"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "登录成功",
    "data": {
      "token": "jwt-token",
      "user": {
        "id": "USER0001",
        "code": "USER000001",
        "username": "系统管理员",
        "phone": "13800138000",
        "email": "admin@example.com",
        "individualism": true,
        "individualDbName": "user_1_1764407777204",
        "status": 1,
        "createTime": "2025-01-21T10:00:00.000Z",
        "accountType": "user",
        "type": "普通用户"
      },
      "availableSites": [
        {
          "siteKey": "56B57A72-59C4-460B-82E5-22196205391B-A4608B6E9D4D6F599",
          "name": "所属站点",
          "type": "owner",
          "isDefault": true
        },
        {
          "siteKey": "A1B2C3D4-E5F6-7890-ABCD-EF1234567890-ABCDEF12",
          "name": "个人站点",
          "type": "personal",
          "isDefault": false
        }
      ]
    }
  },
  "failure": {
    "code": "4000",
    "message": "登录失败",
    "data": null
  }
}
注意事项
  • 如果用户有独立站点,availableSites 会包含两个站点:所属站点(type: owner)和个人站点(type: personal)
  • 前端可以通过 X-Site header 切换站点,切换后所有 API 请求将使用对应站点的数据库
  • 默认使用所属站点(isDefault: true),如需切换到个人站点,在后续请求中传递个人站点的 siteKey

POST 客户端用户注册 /auth/client/register

查看详情
客户端用户注册接口。如果 individualism=true,会为用户创建独立站点和独立数据库,并自动创建超级管理员角色。
请求参数

请求体

{
  "name": "string|可选,客户端用户姓名,默认为'游客'",
  "phone": "string|必填,手机号",
  "password": "string|必填,登录密码",
  "email": "string|可选,邮箱",
  "agreeTerms": "boolean|必填,是否同意协议",
  "individualism": "boolean|可选,是否创建独立站点,默认 false"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "注册成功",
    "data": {
      "token": "jwt-token",
      "user": {
        "id": "CU0001",
        "code": "CU000001",
        "username": "客户端用户",
        "phone": "13800138000",
        "email": "user@example.com",
        "individualism": true,
        "individualDbName": "client_user_1_1764407777204"
      },
      "clientKey": {
        "id": "key-id",
        "keyToken": "key-token",
        "individualDbName": "client_user_1_1764407777204"
      }
    }
  },
  "failure": {
    "code": "4000",
    "message": "注册失败",
    "data": null
  }
}
注意事项
  • 如果 individualism=true,系统会:1. 创建独立数据库 2. 在独立数据库中创建用户副本 3. 创建超级管理员角色并绑定用户
  • 注册成功后,用户记录在所属站点数据库创建,同时在独立数据库中创建副本用于角色绑定

POST 客户端用户登录 /auth/client/login

查看详情
客户端用户登录接口。如果用户有多个可用站点,会返回站点列表供前端选择。
请求参数
参数名 必填 类型 示例 说明
system string - 系统编码,登录时自动分配系统默认管理员角色

请求体

{
  "phone": "string|必填,手机号",
  "password": "string|必填,登录密码",
  "agreeTerms": "boolean|必填,是否同意协议"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "登录成功",
    "data": {
      "token": "jwt-token",
      "user": {
        "id": "CU0001",
        "code": "CU000001",
        "username": "客户端管理员",
        "phone": "13800138000",
        "email": "client@example.com",
        "individualism": true,
        "individualDbName": "client_user_1_1764407777204",
        "status": 1,
        "createTime": "2025-01-21T10:00:00.000Z",
        "accountType": "clientUser",
        "type": "散客"
      },
      "availableSites": [
        {
          "siteKey": "56B57A72-59C4-460B-82E5-22196205391B-A4608B6E9D4D6F599",
          "name": "所属站点",
          "type": "owner",
          "isDefault": true
        },
        {
          "siteKey": "A1B2C3D4-E5F6-7890-ABCD-EF1234567890-ABCDEF12",
          "name": "个人站点",
          "type": "personal",
          "isDefault": false
        }
      ]
    }
  },
  "failure": {
    "code": "4000",
    "message": "登录失败",
    "data": null
  }
}
注意事项
  • 如果用户有独立站点,availableSites 会包含两个站点:所属站点(type: owner)和个人站点(type: personal)
  • 前端可以通过 X-Site header 切换站点,切换后所有 API 请求将使用对应站点的数据库
  • 默认使用所属站点(isDefault: true),如需切换到个人站点,在后续请求中传递个人站点的 siteKey

系统管理

模块标识: system | 接口数量: 5

POST 业务开通 /system/business/activate

查看详情
业务开通接口
请求参数

请求体

{
  "systemCode": "string|必填,要开通的系统编码",
  "expireDays": "number|可选,业务有效天数"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "业务开通成功",
    "data": {
      "systemCode": "AUTH",
      "activated": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "业务开通失败",
    "data": null
  }
}
注意事项
  • 需管理员身份调用

POST 用户存储模式切换 /system/storage/switch

查看详情
用户存储模式切换功能
请求参数

请求体

{
  "mode": "string|必填,目标存储模式,可选 'FILE' 或 'CLOUD'"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "切换存储模式成功",
    "data": {
      "mode": "FILE"
    }
  },
  "failure": {
    "code": "4000",
    "message": "切换存储模式失败",
    "data": null
  }
}
注意事项
  • 切换后会自动重启数据源,请确保备份

POST 客户端用户存储模式切换 /system/storage/client/switch

查看详情
客户端用户存储模式切换功能
请求参数

请求体

{
  "mode": "string|必填,目标存储模式,可选 'FILE' 或 'CLOUD'"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "切换客户端用户存储模式成功",
    "data": {
      "mode": "FILE"
    }
  },
  "failure": {
    "code": "4000",
    "message": "切换客户端用户存储模式失败",
    "data": null
  }
}

GET 获取存储模式 /system/storage/mode

查看详情
获取当前存储模式
请求参数

暂无请求参数定义

响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "userMode": "FILE",
      "clientUserMode": "FILE"
    }
  }
}

GET 系统信息 /system/info

查看详情
获取系统基本信息
请求参数

暂无请求参数定义

响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "version": "1.0.0",
      "buildTime": "2025-01-01T10:00:00.000Z",
      "storageMode": "FILE"
    }
  }
}

客户端用户管理

模块标识: clientUser | 接口数量: 5

GET 获取客户端用户列表 /api/client-users

查看详情
分页获取客户端用户列表
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
name string - 姓名关键词
phone string - 手机号
status number - 状态过滤
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "CU0001",
          "name": "客户端管理员",
          "phone": "13900000000",
          "status": 1,
          "createTime": "2025-01-01T10:00:00.000Z"
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取客户端用户详情 /api/client-users/{id}

查看详情
根据客户端用户ID获取详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 客户端用户ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "CU0001",
      "name": "客户端管理员",
      "phone": "13900000000",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "客户端用户不存在",
    "data": null
  }
}

POST 创建客户端用户 /api/client-users

查看详情
创建新的客户端用户
请求参数

请求体

{
  "name": "string|必填,客户端用户姓名",
  "phone": "string|必填,手机号,唯一",
  "password": "string|必填,登录密码",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建客户端用户成功",
    "data": {
      "id": 1,
      "code": "CU0001",
      "name": "客户端管理员",
      "phone": "13900000000",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建客户端用户失败",
    "data": null
  }
}

PUT 更新客户端用户 /api/client-users/{id}

查看详情
更新指定客户端用户的信息
请求参数
参数名 必填 类型 示例 说明
id string - 客户端用户ID

请求体

{
  "name": "string|必填,客户端用户姓名",
  "phone": "string|必填,手机号,唯一",
  "password": "string|必填,登录密码",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新客户端用户成功",
    "data": {
      "id": 1,
      "code": "CU0001",
      "name": "客户端管理员",
      "phone": "13900000000",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新客户端用户失败",
    "data": null
  }
}

DELETE 删除客户端用户 /api/client-users/{id}

查看详情
删除指定的客户端用户
请求参数
参数名 必填 类型 示例 说明
id string - 客户端用户ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除客户端用户成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除客户端用户失败",
    "data": null
  }
}

组织管理

模块标识: organization | 接口数量: 7

GET 获取组织列表 /api/organizations

查看详情
获取组织列表,支持树形结构
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
name string - 组织名称关键词
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "ORG0001",
          "name": "总部",
          "parentId": null,
          "status": 1,
          "createTime": "2025-01-01T10:00:00.000Z"
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取组织详情 /api/organizations/{id}

查看详情
根据组织ID获取组织详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 组织ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "ORG0001",
      "name": "总部",
      "parentId": null,
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "组织不存在",
    "data": null
  }
}

POST 创建组织 /api/organizations

查看详情
创建新的组织
请求参数

请求体

{
  "name": "string|必填,组织名称",
  "parentId": "string|可选,父级组织ID,根节点为空",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建组织成功",
    "data": {
      "id": 1,
      "code": "ORG0001",
      "name": "总部",
      "parentId": null,
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建组织失败",
    "data": null
  }
}

PUT 更新组织 /api/organizations/{id}

查看详情
更新指定组织的信息
请求参数
参数名 必填 类型 示例 说明
id string - 组织ID

请求体

{
  "name": "string|必填,组织名称",
  "parentId": "string|可选,父级组织ID,根节点为空",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新组织成功",
    "data": {
      "id": 1,
      "code": "ORG0001",
      "name": "总部",
      "parentId": null,
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新组织失败",
    "data": null
  }
}

DELETE 删除组织 /api/organizations/{id}

查看详情
删除指定的组织
请求参数
参数名 必填 类型 示例 说明
id string - 组织ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除组织成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除组织失败",
    "data": null
  }
}

GET 获取组织关联用户 /api/organizations/{id}/users

查看详情
获取指定组织关联的用户
请求参数
参数名 必填 类型 示例 说明
id string - 组织ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "ORG0001",
      "name": "总部",
      "parentId": null,
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "组织不存在",
    "data": null
  }
}

PUT 更新组织用户关联 /api/organizations/{id}/users

查看详情
更新指定组织的用户关联关系
请求参数
参数名 必填 类型 示例 说明
id string - 组织ID

请求体

{
  "name": "string|必填,组织名称",
  "parentId": "string|可选,父级组织ID,根节点为空",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新组织成功",
    "data": {
      "id": 1,
      "code": "ORG0001",
      "name": "总部",
      "parentId": null,
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新组织失败",
    "data": null
  }
}

部门管理

模块标识: department | 接口数量: 7

GET 获取部门列表 /api/departments

查看详情
获取部门列表,支持按组织筛选
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
organizationId string - 按组织筛选
name string - 部门名称关键词
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "DEP0001",
          "name": "研发部",
          "organizationId": "ORG0001",
          "status": 1,
          "createTime": "2025-01-01T10:00:00.000Z"
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取部门详情 /api/departments/{id}

查看详情
根据部门ID获取部门详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 部门ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "DEP0001",
      "name": "研发部",
      "organizationId": "ORG0001",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "部门不存在",
    "data": null
  }
}

POST 创建部门 /api/departments

查看详情
创建新的部门
请求参数

请求体

{
  "name": "string|必填,部门名称",
  "organizationId": "string|必填,所属组织ID",
  "leaderId": "string|可选,部门负责人ID",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建部门成功",
    "data": {
      "id": 1,
      "code": "DEP0001",
      "name": "研发部",
      "organizationId": "ORG0001",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建部门失败",
    "data": null
  }
}

PUT 更新部门 /api/departments/{id}

查看详情
更新指定部门的信息
请求参数
参数名 必填 类型 示例 说明
id string - 部门ID

请求体

{
  "name": "string|必填,部门名称",
  "organizationId": "string|必填,所属组织ID",
  "leaderId": "string|可选,部门负责人ID",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新部门成功",
    "data": {
      "id": 1,
      "code": "DEP0001",
      "name": "研发部",
      "organizationId": "ORG0001",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新部门失败",
    "data": null
  }
}

DELETE 删除部门 /api/departments/{id}

查看详情
删除指定的部门
请求参数
参数名 必填 类型 示例 说明
id string - 部门ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除部门成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除部门失败",
    "data": null
  }
}

GET 获取部门关联用户 /api/departments/{id}/users

查看详情
获取指定部门关联的用户
请求参数
参数名 必填 类型 示例 说明
id string - 部门ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "DEP0001",
      "name": "研发部",
      "organizationId": "ORG0001",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "部门不存在",
    "data": null
  }
}

PUT 更新部门用户关联 /api/departments/{id}/users

查看详情
更新指定部门的用户关联关系
请求参数
参数名 必填 类型 示例 说明
id string - 部门ID

请求体

{
  "name": "string|必填,部门名称",
  "organizationId": "string|必填,所属组织ID",
  "leaderId": "string|可选,部门负责人ID",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新部门成功",
    "data": {
      "id": 1,
      "code": "DEP0001",
      "name": "研发部",
      "organizationId": "ORG0001",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新部门失败",
    "data": null
  }
}

岗位管理

模块标识: position | 接口数量: 7

GET 获取岗位列表 /api/positions

查看详情
分页获取岗位列表
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
name string - 岗位名称关键词
status number - 状态过滤
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "POS0001",
          "name": "产品经理",
          "status": 1,
          "createTime": "2025-01-01T10:00:00.000Z"
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取岗位详情 /api/positions/{id}

查看详情
根据岗位ID获取岗位详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 岗位ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "POS0001",
      "name": "产品经理",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "岗位不存在",
    "data": null
  }
}

POST 创建岗位 /api/positions

查看详情
创建新的岗位
请求参数

请求体

{
  "name": "string|必填,岗位名称",
  "organizationId": "string|可选,所属组织ID",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建岗位成功",
    "data": {
      "id": 1,
      "code": "POS0001",
      "name": "产品经理",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建岗位失败",
    "data": null
  }
}

PUT 更新岗位 /api/positions/{id}

查看详情
更新指定岗位的信息
请求参数
参数名 必填 类型 示例 说明
id string - 岗位ID

请求体

{
  "name": "string|必填,岗位名称",
  "organizationId": "string|可选,所属组织ID",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新岗位成功",
    "data": {
      "id": 1,
      "code": "POS0001",
      "name": "产品经理",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新岗位失败",
    "data": null
  }
}

DELETE 删除岗位 /api/positions/{id}

查看详情
删除指定的岗位
请求参数
参数名 必填 类型 示例 说明
id string - 岗位ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除岗位成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除岗位失败",
    "data": null
  }
}

GET 获取岗位关联用户 /api/positions/{id}/users

查看详情
获取指定岗位关联的用户
请求参数
参数名 必填 类型 示例 说明
id string - 岗位ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "POS0001",
      "name": "产品经理",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "岗位不存在",
    "data": null
  }
}

PUT 更新岗位用户关联 /api/positions/{id}/users

查看详情
更新指定岗位的用户关联关系
请求参数
参数名 必填 类型 示例 说明
id string - 岗位ID

请求体

{
  "name": "string|必填,岗位名称",
  "organizationId": "string|可选,所属组织ID",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新岗位成功",
    "data": {
      "id": 1,
      "code": "POS0001",
      "name": "产品经理",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新岗位失败",
    "data": null
  }
}

职员管理

模块标识: staff | 接口数量: 5

GET 获取职员列表 /api/staff

查看详情
获取职员列表,支持按部门筛选
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
organizationId string - 所属组织筛选
name string - 姓名关键词
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "STA0001",
          "name": "张三",
          "phone": "13800000001",
          "organizationId": "ORG0001",
          "status": 1,
          "createTime": "2025-01-01T10:00:00.000Z"
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取职员详情 /api/staff/{id}

查看详情
根据职员ID获取职员详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 职员ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "STA0001",
      "name": "张三",
      "phone": "13800000001",
      "organizationId": "ORG0001",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "职员不存在",
    "data": null
  }
}

POST 创建职员 /api/staff

查看详情
创建新的职员
请求参数

请求体

{
  "name": "string|必填,职员姓名",
  "phone": "string|必填,手机号",
  "organizationId": "string|必填,所属组织ID",
  "status": "number|可选,状态:1-在职,0-离职"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建职员成功",
    "data": {
      "id": 1,
      "code": "STA0001",
      "name": "张三",
      "phone": "13800000001",
      "organizationId": "ORG0001",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建职员失败",
    "data": null
  }
}

PUT 更新职员 /api/staff/{id}

查看详情
更新指定职员的信息
请求参数
参数名 必填 类型 示例 说明
id string - 职员ID

请求体

{
  "name": "string|必填,职员姓名",
  "phone": "string|必填,手机号",
  "organizationId": "string|必填,所属组织ID",
  "status": "number|可选,状态:1-在职,0-离职"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新职员成功",
    "data": {
      "id": 1,
      "code": "STA0001",
      "name": "张三",
      "phone": "13800000001",
      "organizationId": "ORG0001",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新职员失败",
    "data": null
  }
}

DELETE 删除职员 /api/staff/{id}

查看详情
删除指定的职员
请求参数
参数名 必填 类型 示例 说明
id string - 职员ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除职员成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除职员失败",
    "data": null
  }
}

角色管理

模块标识: role | 接口数量: 7

GET 获取角色列表 /api/roles

查看详情
分页获取角色列表
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
name string - 角色名称关键词
code string - 角色编码
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "ROLE0001",
          "name": "系统管理员",
          "status": 1,
          "permissions": [
            "PERM0001"
          ],
          "resources": [
            "RES0001"
          ]
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取角色详情 /api/roles/{id}

查看详情
根据角色ID获取角色详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 角色ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "ROLE0001",
      "name": "系统管理员",
      "status": 1,
      "permissions": [
        "PERM0001"
      ],
      "resources": [
        "RES0001"
      ]
    }
  },
  "failure": {
    "code": "4040",
    "message": "角色不存在",
    "data": null
  }
}

POST 创建角色 /api/roles

查看详情
创建新的角色
请求参数

请求体

{
  "name": "string|必填,角色名称",
  "code": "string|必填,角色编码,唯一",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建角色成功",
    "data": {
      "id": 1,
      "code": "ROLE0001",
      "name": "系统管理员",
      "status": 1,
      "permissions": [
        "PERM0001"
      ],
      "resources": [
        "RES0001"
      ]
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建角色失败",
    "data": null
  }
}

PUT 更新角色 /api/roles/{id}

查看详情
更新指定角色的信息
请求参数
参数名 必填 类型 示例 说明
id string - 角色ID

请求体

{
  "name": "string|必填,角色名称",
  "code": "string|必填,角色编码,唯一",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新角色成功",
    "data": {
      "id": 1,
      "code": "ROLE0001",
      "name": "系统管理员",
      "status": 1,
      "permissions": [
        "PERM0001"
      ],
      "resources": [
        "RES0001"
      ]
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新角色失败",
    "data": null
  }
}

DELETE 删除角色 /api/roles/{id}

查看详情
删除指定的角色
请求参数
参数名 必填 类型 示例 说明
id string - 角色ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除角色成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除角色失败",
    "data": null
  }
}

PUT 绑定角色权限 /api/roles/{id}/permissions

查看详情
为指定角色绑定权限
请求参数
参数名 必填 类型 示例 说明
id string - 角色ID

请求体

{
  "name": "string|必填,角色名称",
  "code": "string|必填,角色编码,唯一",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新角色成功",
    "data": {
      "id": 1,
      "code": "ROLE0001",
      "name": "系统管理员",
      "status": 1,
      "permissions": [
        "PERM0001"
      ],
      "resources": [
        "RES0001"
      ]
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新角色失败",
    "data": null
  }
}

PUT 绑定角色资源 /api/roles/{id}/resources

查看详情
为指定角色绑定资源
请求参数
参数名 必填 类型 示例 说明
id string - 角色ID

请求体

{
  "name": "string|必填,角色名称",
  "code": "string|必填,角色编码,唯一",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新角色成功",
    "data": {
      "id": 1,
      "code": "ROLE0001",
      "name": "系统管理员",
      "status": 1,
      "permissions": [
        "PERM0001"
      ],
      "resources": [
        "RES0001"
      ]
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新角色失败",
    "data": null
  }
}

权限管理

模块标识: permission | 接口数量: 5

GET 获取权限列表 /api/permissions

查看详情
分页获取权限列表
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
name string - 权限名称关键词
code string - 权限编码
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "PERM0001",
          "name": "用户管理",
          "type": "menu",
          "status": 1,
          "createTime": "2025-01-01T10:00:00.000Z"
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取权限详情 /api/permissions/{id}

查看详情
根据权限ID获取权限详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 权限ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "PERM0001",
      "name": "用户管理",
      "type": "menu",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "权限不存在",
    "data": null
  }
}

POST 创建权限 /api/permissions

查看详情
创建新的权限
请求参数

请求体

{
  "name": "string|必填,权限名称",
  "code": "string|必填,权限编码,唯一",
  "type": "string|可选,权限类型,例如menu/button",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建权限成功",
    "data": {
      "id": 1,
      "code": "PERM0001",
      "name": "用户管理",
      "type": "menu",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建权限失败",
    "data": null
  }
}

PUT 更新权限 /api/permissions/{id}

查看详情
更新指定权限的信息
请求参数
参数名 必填 类型 示例 说明
id string - 权限ID

请求体

{
  "name": "string|必填,权限名称",
  "code": "string|必填,权限编码,唯一",
  "type": "string|可选,权限类型,例如menu/button",
  "status": "number|可选,状态:1-启用,0-禁用"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新权限成功",
    "data": {
      "id": 1,
      "code": "PERM0001",
      "name": "用户管理",
      "type": "menu",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新权限失败",
    "data": null
  }
}

DELETE 删除权限 /api/permissions/{id}

查看详情
删除指定的权限
请求参数
参数名 必填 类型 示例 说明
id string - 权限ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除权限成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除权限失败",
    "data": null
  }
}

资源管理

模块标识: resource | 接口数量: 6

GET 查询所有有效资源 /api/resources/active

查看详情
查询所有有效的资源配置列表,用于其他业务通过选择列表选择目标资源。返回所有 status = 1 的资源,不需要分页。支持通过 systemId 查询指定系统的资源。支持通过 X-Site header 切换站点,切换后查询对应站点的数据库。
请求参数
参数名 必填 类型 示例 说明
systemId string - 所属系统ID,用于过滤资源所属系统。不传则返回所有系统的有效资源
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": [
      {
        "id": 1,
        "code": "RES0001",
        "name": "用户列表",
        "title": "用户列表",
        "systemId": "系统ID",
        "systemName": "权限管理系统",
        "type": "page",
        "url": "/users",
        "status": 1,
        "parentId": null,
        "orderNum": 1,
        "createTime": "2025-01-01T10:00:00.000Z"
      },
      {
        "id": 2,
        "code": "RES0002",
        "name": "角色管理",
        "title": "角色管理",
        "systemId": "系统ID",
        "systemName": "权限管理系统",
        "type": "page",
        "url": "/roles",
        "status": 1,
        "parentId": null,
        "orderNum": 2,
        "createTime": "2025-01-01T11:00:00.000Z"
      }
    ]
  }
}
注意事项
  • 仅返回 status = 1 的有效资源
  • 按 orderNum 和 createTime 排序
  • 不需要分页,返回完整列表
  • 支持通过 systemId 查询参数过滤指定系统的资源
  • 也支持通过路径参数 systemId 查询(如 /api/security/systems/{systemId}/resources/active)

GET 获取资源列表 /api/resources

查看详情
分页获取资源列表,支持按名称、类型、系统筛选。支持通过 X-Site header 切换站点,切换后查询对应站点的数据库。
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
name string - 资源名称关键词
code string - 资源编码
type string - 资源类型
systemId string - 所属系统ID,用于过滤资源所属系统
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "RES0001",
          "name": "用户列表",
          "systemId": "AUTH",
          "systemName": "权限管理系统",
          "type": "page",
          "url": "/users",
          "status": 1,
          "parentId": null
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取资源详情 /api/resources/{id}

查看详情
根据资源ID获取资源详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 资源ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "RES0001",
      "name": "用户列表",
      "systemId": "AUTH",
      "systemName": "权限管理系统",
      "type": "page",
      "url": "/users",
      "status": 1,
      "parentId": null
    }
  },
  "failure": {
    "code": "4040",
    "message": "资源不存在",
    "data": null
  }
}

POST 创建资源 /api/resources

查看详情
创建新的资源
请求参数

请求体

{
  "name": "string|必填,资源名称",
  "code": "string|必填,资源编码,唯一",
  "systemId": "string|必填,所属系统ID,用于绑定资源所属系统",
  "type": "string|可选,资源类型,例如page/api/button",
  "url": "string|可选,资源URL,用于路由或接口地址",
  "status": "number|可选,状态:1-启用,0-禁用",
  "parentId": "string|可选,父级资源ID,用于构建资源树状结构,不传或传空则为根节点"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建资源成功",
    "data": {
      "id": 1,
      "code": "RES0001",
      "name": "用户列表",
      "systemId": "AUTH",
      "systemName": "权限管理系统",
      "type": "page",
      "url": "/users",
      "status": 1,
      "parentId": null
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建资源失败",
    "data": null
  }
}

PUT 更新资源 /api/resources/{id}

查看详情
更新指定资源的信息
请求参数
参数名 必填 类型 示例 说明
id string - 资源ID

请求体

{
  "name": "string|必填,资源名称",
  "code": "string|必填,资源编码,唯一",
  "systemId": "string|可选,所属系统ID,不传则保持原值",
  "type": "string|可选,资源类型,例如page/api/button",
  "url": "string|可选,资源URL,用于路由或接口地址",
  "status": "number|可选,状态:1-启用,0-禁用",
  "parentId": "string|可选,父级资源ID,用于构建资源树状结构,不传或传空则为根节点"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新资源成功",
    "data": {
      "id": 1,
      "code": "RES0001",
      "name": "用户列表",
      "systemId": "AUTH",
      "systemName": "权限管理系统",
      "type": "page",
      "url": "/users",
      "status": 1,
      "parentId": null
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新资源失败",
    "data": null
  }
}

DELETE 删除资源 /api/resources/{id}

查看详情
删除指定的资源
请求参数
参数名 必填 类型 示例 说明
id string - 资源ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除资源成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除资源失败",
    "data": null
  }
}

客户管理

模块标识: customer | 接口数量: 5

GET 获取客户列表 /api/customers

查看详情
分页获取客户列表
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
name string - 客户名称关键词
status number - 状态过滤
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "CUS0001",
          "name": "示例客户",
          "contactName": "李四",
          "contactPhone": "021-88888888",
          "status": 1
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取客户详情 /api/customers/{id}

查看详情
根据客户ID获取客户详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 客户ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "CUS0001",
      "name": "示例客户",
      "contactName": "李四",
      "contactPhone": "021-88888888",
      "status": 1
    }
  },
  "failure": {
    "code": "4040",
    "message": "客户不存在",
    "data": null
  }
}

POST 创建客户 /api/customers

查看详情
创建新的客户
请求参数

请求体

{
  "name": "string|必填,客户名称",
  "contactName": "string|可选,联系人姓名",
  "contactPhone": "string|可选,联系人电话",
  "status": "number|可选,状态:1-合作中,0-已终止"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建客户成功",
    "data": {
      "id": 1,
      "code": "CUS0001",
      "name": "示例客户",
      "contactName": "李四",
      "contactPhone": "021-88888888",
      "status": 1
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建客户失败",
    "data": null
  }
}

PUT 更新客户 /api/customers/{id}

查看详情
更新指定客户的信息
请求参数
参数名 必填 类型 示例 说明
id string - 客户ID

请求体

{
  "name": "string|必填,客户名称",
  "contactName": "string|可选,联系人姓名",
  "contactPhone": "string|可选,联系人电话",
  "status": "number|可选,状态:1-合作中,0-已终止"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新客户成功",
    "data": {
      "id": 1,
      "code": "CUS0001",
      "name": "示例客户",
      "contactName": "李四",
      "contactPhone": "021-88888888",
      "status": 1
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新客户失败",
    "data": null
  }
}

DELETE 删除客户 /api/customers/{id}

查看详情
删除指定的客户
请求参数
参数名 必填 类型 示例 说明
id string - 客户ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除客户成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除客户失败",
    "data": null
  }
}

会员管理

模块标识: member | 接口数量: 7

GET 获取有效会员列表 /api/members/valid-list

查看详情
获取所有状态为有效(status=1)的会员套餐列表,用于下拉选择。无需分页,返回简化的字段信息。
请求参数

暂无请求参数定义

响应示例
{
  "success": {
    "code": "0000",
    "message": "操作成功",
    "data": [
      {
        "id": "xxx",
        "_id": "xxx",
        "code": "MEM0001",
        "name": "会员套餐1",
        "description": "套餐描述"
      },
      {
        "id": "yyy",
        "_id": "yyy",
        "code": "MEM0002",
        "name": "会员套餐2",
        "description": "套餐描述"
      }
    ],
    "timestamp": "2025-01-21T10:00:00.000Z"
  },
  "failure": {
    "code": "4000",
    "message": "获取失败",
    "data": null
  }
}
注意事项
  • 该接口仅返回状态为有效(status=1)的会员套餐
  • 返回结果按创建时间升序排序
  • 需要 members 的 read 权限
  • 适用于下拉选择等场景,无需分页

GET 获取会员列表 /api/members

查看详情
分页获取会员套餐列表
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
name string - 套餐名称关键词
memberTypeId string - 会员类型ID(会员类型管理记录的_id)
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "MEM0001",
          "name": "会员套餐名称",
          "memberTypeId": "xxx",
          "price": "99.99",
          "validityDays": 30,
          "description": "套餐描述",
          "status": 1
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取会员详情 /api/members/{id}

查看详情
根据会员套餐ID获取会员套餐详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 会员套餐ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "MEM0001",
      "name": "会员套餐名称",
      "memberTypeId": "xxx",
      "price": "99.99",
      "validityDays": 30,
      "description": "套餐描述",
      "status": 1
    }
  },
  "failure": {
    "code": "4040",
    "message": "会员套餐不存在",
    "data": null
  }
}

POST 创建会员 /api/members

查看详情
创建新的会员套餐
请求参数

请求体

{
  "name": "string|必填,套餐名称",
  "memberTypeId": "string|可选,会员类型ID(会员类型管理记录的_id),如果提供会校验会员类型是否存在",
  "price": "string|可选,价格(两位小数,如:99.99)",
  "validityDays": "number|可选,有效期天数(最小值为1)",
  "description": "string|可选,套餐描述",
  "status": "number|可选,状态:1-有效,0-无效,默认0"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建会员成功",
    "data": {
      "id": 1,
      "code": "MEM0001",
      "name": "会员套餐名称",
      "memberTypeId": "xxx",
      "price": "99.99",
      "validityDays": 30,
      "description": "套餐描述",
      "status": 0
    }
  },
  "failure": {
    "code": "4000",
    "message": "关联的会员类型不存在",
    "data": null
  }
}
注意事项
  • 如果提供了memberTypeId,会校验会员类型是否存在,不存在返回错误:关联的会员类型不存在

PUT 更新会员 /api/members/{id}

查看详情
更新指定会员套餐的信息
请求参数
参数名 必填 类型 示例 说明
id string - 会员套餐ID

请求体

{
  "name": "string|必填,套餐名称",
  "memberTypeId": "string|可选,会员类型ID(会员类型管理记录的_id),如果提供会校验会员类型是否存在",
  "price": "string|可选,价格(两位小数,如:99.99)",
  "validityDays": "number|可选,有效期天数(最小值为1)",
  "description": "string|可选,套餐描述",
  "status": "number|可选,状态:1-有效,0-无效,默认0"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新会员成功",
    "data": {
      "id": 1,
      "code": "MEM0001",
      "name": "会员套餐名称",
      "memberTypeId": "xxx",
      "price": "99.99",
      "validityDays": 30,
      "description": "套餐描述",
      "status": 1
    }
  },
  "failure": {
    "code": "4000",
    "message": "关联的会员类型不存在",
    "data": null
  }
}
注意事项
  • 如果提供了memberTypeId,会校验会员类型是否存在,不存在返回错误:关联的会员类型不存在
  • 有效状态(status=1)的会员套餐不允许修改,会返回错误:有效状态的会员套餐不允许修改

DELETE 删除会员 /api/members/{id}

查看详情
删除指定的会员套餐
请求参数
参数名 必填 类型 示例 说明
id string - 会员套餐ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除会员成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除会员失败",
    "data": null
  }
}
注意事项
  • 有效状态(status=1)的会员套餐不允许删除,会返回错误:有效状态的会员套餐不允许删除

PUT 切换会员套餐状态 /api/members/{id}/status

查看详情
切换会员套餐的启用/禁用状态
请求参数
参数名 必填 类型 示例 说明
id string - 会员套餐ID

请求体

{
  "status": "number|必填,状态:1-有效,0-无效"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "状态更新成功",
    "data": {
      "id": 1,
      "code": "MEM0001",
      "name": "会员套餐名称",
      "memberTypeId": "xxx",
      "price": "99.99",
      "validityDays": 30,
      "description": "套餐描述",
      "status": 1,
      "updateTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "会员套餐不存在",
    "data": null
  }
}
注意事项
  • 该接口用于切换会员套餐的启用/禁用状态
  • 只有通过状态切换接口才能修改有效状态的会员套餐

会员类型管理

模块标识: memberType | 接口数量: 6

GET 获取有效会员类型列表 /api/members/types/valid-list

查看详情
获取所有状态为有效(status=1)的会员类型列表,用于下拉选择。无需分页,返回简化的字段信息。
请求参数

暂无请求参数定义

响应示例
{
  "success": {
    "code": "0000",
    "message": "操作成功",
    "data": [
      {
        "id": "xxx",
        "_id": "xxx",
        "code": "VIP",
        "name": "VIP会员",
        "description": "VIP会员类型"
      },
      {
        "id": "yyy",
        "_id": "yyy",
        "code": "GOLD",
        "name": "黄金会员",
        "description": "黄金会员类型"
      }
    ],
    "timestamp": "2025-01-21T10:00:00.000Z"
  },
  "failure": {
    "code": "4000",
    "message": "获取失败",
    "data": null
  }
}
注意事项
  • 该接口仅返回状态为有效(status=1)的会员类型
  • 返回结果按创建时间升序排序
  • 需要 memberTypes 的 read 权限
  • 适用于下拉选择等场景,无需分页

GET 获取会员类型列表 /api/members/types

查看详情
分页获取会员类型列表,支持按名称、编码、状态筛选
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
name string - 会员类型名称关键词
code string - 会员类型编码关键词
status number - 状态过滤:1-有效,0-无效
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "VIP",
          "name": "VIP会员",
          "description": "VIP会员类型",
          "status": 1,
          "createTime": "2025-01-01T10:00:00.000Z",
          "updateTime": "2025-01-01T10:00:00.000Z"
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10,
      "totalPages": 10
    }
  }
}

POST 创建会员类型 /api/members/types

查看详情
创建新的会员类型
请求参数

请求体

{
  "name": "string|必填,会员类型名称",
  "code": "string|必填,会员类型编码",
  "status": "number|可选,状态:1-有效,0-无效,默认1",
  "description": "string|可选,描述信息"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建成功",
    "data": {
      "id": 1,
      "code": "VIP",
      "name": "VIP会员",
      "description": "VIP会员类型",
      "status": 1,
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "会员类型编码已存在",
    "data": null
  }
}

PUT 更新会员类型 /api/members/types/{typeId}

查看详情
更新指定会员类型的信息
请求参数
参数名 必填 类型 示例 说明
typeId string - 会员类型ID

请求体

{
  "name": "string|可选,会员类型名称",
  "code": "string|可选,会员类型编码",
  "status": "number|可选,状态:1-有效,0-无效",
  "description": "string|可选,描述信息"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新成功",
    "data": {
      "id": 1,
      "code": "VIP",
      "name": "VIP会员",
      "description": "VIP会员类型",
      "status": 1,
      "updateTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "会员类型编码已存在",
    "data": null
  }
}

DELETE 删除会员类型 /api/members/types/{typeId}

查看详情
删除指定的会员类型
请求参数
参数名 必填 类型 示例 说明
typeId string - 会员类型ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除成功",
    "data": null
  },
  "failure": {
    "code": "4000",
    "message": "会员类型仍与会员功能关联,请先解除关联",
    "data": null
  }
}

PUT 切换会员类型状态 /api/members/types/{typeId}/status

查看详情
切换会员类型的启用/禁用状态
请求参数
参数名 必填 类型 示例 说明
typeId string - 会员类型ID

请求体

{
  "status": "number|必填,状态:1-有效,0-无效"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "状态更新成功",
    "data": {
      "id": 1,
      "code": "VIP",
      "name": "VIP会员",
      "status": 1,
      "updateTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "会员类型不存在",
    "data": null
  }
}

无状态会员管理

模块标识: statelessMember | 接口数量: 6

GET 获取无状态会员列表 /api/stateless-members

查看详情
分页获取无状态会员列表
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
name string - 会员名称关键词
code string - 会员编码
memberTypeId string - 按会员类型ID筛选(会员类型管理记录的_id)
status number - 状态过滤
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "SM0001",
          "name": "开放平台会员",
          "secretKey": "sk-xxx",
          "memberTypeId": "xxx",
          "status": 1
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取无状态会员详情 /api/stateless-members/{id}

查看详情
根据无状态会员ID获取详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 无状态会员ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "SM0001",
      "name": "开放平台会员",
      "secretKey": "sk-xxx",
      "memberTypeId": "xxx",
      "status": 1
    }
  },
  "failure": {
    "code": "4040",
    "message": "无状态会员不存在",
    "data": null
  }
}

POST 创建无状态会员 /api/stateless-members

查看详情
创建新的无状态会员
请求参数

请求体

{
  "name": "string|必填,会员名称",
  "memberTypeId": "string|可选,会员类型ID(会员类型管理记录的_id),如果提供会校验会员类型是否存在",
  "effectiveDate": "string|必填,生效日期",
  "validityDays": "number|必填,有效期天数(最小7天)",
  "firstEffectiveDate": "string|可选,首次生效日期",
  "status": "number|可选,状态:1-有效,0-无效,默认0"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建无状态会员成功",
    "data": {
      "id": 1,
      "code": "SM0001",
      "name": "开放平台会员",
      "secretKey": "sk-xxx",
      "memberTypeId": "xxx",
      "status": 1
    }
  },
  "failure": {
    "code": "4000",
    "message": "关联的会员类型不存在",
    "data": null
  }
}
注意事项
  • secretKey会自动生成,无需手动提供
  • 如果提供了memberTypeId,会校验会员类型是否存在,不存在返回错误:关联的会员类型不存在

PUT 更新无状态会员 /api/stateless-members/{id}

查看详情
更新指定无状态会员的信息
请求参数
参数名 必填 类型 示例 说明
id string - 无状态会员ID

请求体

{
  "name": "string|可选,会员名称",
  "memberTypeId": "string|可选,会员类型ID(会员类型管理记录的_id),如果提供会校验会员类型是否存在",
  "effectiveDate": "string|可选,生效日期",
  "validityDays": "number|可选,有效期天数(最小7天)",
  "firstEffectiveDate": "string|可选,首次生效日期",
  "status": "number|可选,状态:1-有效,0-无效"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新无状态会员成功",
    "data": {
      "id": 1,
      "code": "SM0001",
      "name": "开放平台会员",
      "secretKey": "sk-xxx",
      "memberTypeId": "xxx",
      "status": 1
    }
  },
  "failure": {
    "code": "4000",
    "message": "关联的会员类型不存在",
    "data": null
  }
}
注意事项
  • 如果提供了memberTypeId,会校验会员类型是否存在,不存在返回错误:关联的会员类型不存在
  • 有效状态(status=1)的无状态会员不允许修改,会返回错误:有效状态的无状态会员不允许修改

DELETE 删除无状态会员 /api/stateless-members/{id}

查看详情
删除指定的无状态会员
请求参数
参数名 必填 类型 示例 说明
id string - 无状态会员ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除无状态会员成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除无状态会员失败",
    "data": null
  }
}
注意事项
  • 有效状态(status=1)的无状态会员不允许删除,会返回错误:有效状态的无状态会员不允许删除

PUT 切换无状态会员状态 /api/stateless-members/{id}/status

查看详情
切换无状态会员的启用/禁用状态
请求参数
参数名 必填 类型 示例 说明
id string - 无状态会员ID

请求体

{
  "status": "number|必填,状态:1-有效,0-无效"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "状态更新成功",
    "data": {
      "id": 1,
      "code": "SM0001",
      "name": "开放平台会员",
      "secretKey": "sk-xxx",
      "memberTypeId": "xxx",
      "effectiveDate": "2025-01-01",
      "validityDays": 365,
      "firstEffectiveDate": "2025-01-01",
      "status": 1,
      "updateTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "无状态会员不存在",
    "data": null
  }
}
注意事项
  • 该接口用于切换无状态会员的启用/禁用状态
  • 只有通过状态切换接口才能修改有效状态的无状态会员

会员用户管理

模块标识: memberUser | 接口数量: 5

GET 获取会员用户列表 /api/member-users

查看详情
分页获取会员用户列表
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
userId string - 按客户端用户筛选
memberId string - 按会员ID筛选(会员管理记录的_id)
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "MU0001",
          "userId": "CU0001",
          "memberId": "xxx",
          "status": 1
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取会员用户详情 /api/member-users/{id}

查看详情
根据会员用户ID获取详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 会员用户ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "MU0001",
      "userId": "CU0001",
      "memberId": "xxx",
      "status": 1
    }
  },
  "failure": {
    "code": "4040",
    "message": "会员用户不存在",
    "data": null
  }
}

POST 创建会员用户 /api/member-users

查看详情
创建新的会员用户
请求参数

请求体

{
  "userId": "string|可选,绑定的客户端用户ID",
  "memberId": "string|可选,会员ID(会员管理记录的_id),如果提供会校验会员是否存在且有效",
  "status": "number|可选,状态:1-有效,0-无效"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建会员用户成功",
    "data": {
      "id": 1,
      "code": "MU0001",
      "userId": "CU0001",
      "memberId": "xxx",
      "status": 1
    }
  },
  "failure": {
    "code": "4000",
    "message": "关联的会员不存在",
    "data": null
  }
}
注意事项
  • 如果提供了memberId,会校验会员是否存在且有效(status=1),不存在或已停用返回错误:关联的会员不存在或关联的会员已停用

PUT 更新会员用户 /api/member-users/{id}

查看详情
更新指定会员用户的信息
请求参数
参数名 必填 类型 示例 说明
id string - 会员用户ID

请求体

{
  "userId": "string|可选,绑定的客户端用户ID",
  "memberId": "string|可选,会员ID(会员管理记录的_id),如果提供会校验会员是否存在且有效",
  "status": "number|可选,状态:1-有效,0-无效"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新会员用户成功",
    "data": {
      "id": 1,
      "code": "MU0001",
      "userId": "CU0001",
      "memberId": "xxx",
      "status": 1
    }
  },
  "failure": {
    "code": "4000",
    "message": "关联的会员不存在",
    "data": null
  }
}
注意事项
  • 如果提供了memberId,会校验会员是否存在且有效(status=1),不存在或已停用返回错误:关联的会员不存在或关联的会员已停用

DELETE 删除会员用户 /api/member-users/{id}

查看详情
删除指定的会员用户
请求参数
参数名 必填 类型 示例 说明
id string - 会员用户ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除会员用户成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除会员用户失败",
    "data": null
  }
}

白名单管理

模块标识: whitelist | 接口数量: 5

GET 获取白名单列表 /api/whitelists

查看详情
分页获取白名单列表
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
userId string - 按用户筛选
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "userId": "USER0001",
          "reason": "业务合作",
          "createTime": "2025-01-01T10:00:00.000Z"
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取白名单详情 /api/whitelists/{id}

查看详情
根据白名单ID获取详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 白名单ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "userId": "USER0001",
      "reason": "业务合作",
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "白名单不存在",
    "data": null
  }
}

POST 创建白名单 /api/whitelists

查看详情
创建新的白名单
请求参数

请求体

{
  "userId": "string|必填,用户ID",
  "reason": "string|可选,加入白名单原因"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建白名单成功",
    "data": {
      "id": 1,
      "userId": "USER0001",
      "reason": "业务合作",
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建白名单失败",
    "data": null
  }
}

PUT 更新白名单 /api/whitelists/{id}

查看详情
更新指定白名单的信息
请求参数
参数名 必填 类型 示例 说明
id string - 白名单ID

请求体

{
  "userId": "string|必填,用户ID",
  "reason": "string|可选,加入白名单原因"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新白名单成功",
    "data": {
      "id": 1,
      "userId": "USER0001",
      "reason": "业务合作",
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新白名单失败",
    "data": null
  }
}

DELETE 删除白名单 /api/whitelists/{id}

查看详情
删除指定的白名单
请求参数
参数名 必填 类型 示例 说明
id string - 白名单ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除白名单成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除白名单失败",
    "data": null
  }
}

黑名单管理

模块标识: blacklist | 接口数量: 5

GET 获取黑名单列表 /api/blacklists

查看详情
分页获取黑名单列表
请求参数
参数名 必填 类型 示例 说明
pageNum number - 页码,默认1
pageSize number - 每页数量,默认10
userId string - 按用户筛选
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "userId": "USER0002",
          "reason": "恶意操作",
          "createTime": "2025-01-01T10:00:00.000Z"
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}

GET 获取黑名单详情 /api/blacklists/{id}

查看详情
根据黑名单ID获取详细信息
请求参数
参数名 必填 类型 示例 说明
id string - 黑名单ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "userId": "USER0002",
      "reason": "恶意操作",
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4040",
    "message": "黑名单不存在",
    "data": null
  }
}

POST 创建黑名单 /api/blacklists

查看详情
创建新的黑名单
请求参数

请求体

{
  "userId": "string|必填,用户ID",
  "reason": "string|可选,加入黑名单原因"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "创建黑名单成功",
    "data": {
      "id": 1,
      "userId": "USER0002",
      "reason": "恶意操作",
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建黑名单失败",
    "data": null
  }
}

PUT 更新黑名单 /api/blacklists/{id}

查看详情
更新指定黑名单的信息
请求参数
参数名 必填 类型 示例 说明
id string - 黑名单ID

请求体

{
  "userId": "string|必填,用户ID",
  "reason": "string|可选,加入黑名单原因"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "更新黑名单成功",
    "data": {
      "id": 1,
      "userId": "USER0002",
      "reason": "恶意操作",
      "createTime": "2025-01-01T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新黑名单失败",
    "data": null
  }
}

DELETE 删除黑名单 /api/blacklists/{id}

查看详情
删除指定的黑名单
请求参数
参数名 必填 类型 示例 说明
id string - 黑名单ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "删除黑名单成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除黑名单失败",
    "data": null
  }
}

安全系统管理

模块标识: securitySystem | 接口数量: 2

GET 查询所有有效系统 /api/security/systems/active

查看详情
查询所有有效的系统配置列表,用于其他业务通过选择列表选择目标系统。返回所有 status = 1 的系统,不需要分页
请求参数

暂无请求参数定义

响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": [
      {
        "id": 1,
        "code": "AUTH",
        "name": "权限管理系统",
        "status": 1,
        "description": "权限管理系统描述",
        "createTime": "2025-01-01T10:00:00.000Z",
        "updateTime": "2025-01-01T10:00:00.000Z"
      },
      {
        "id": 2,
        "code": "ORDER",
        "name": "订单管理系统",
        "status": 1,
        "description": "订单管理系统描述",
        "createTime": "2025-01-01T11:00:00.000Z",
        "updateTime": "2025-01-01T11:00:00.000Z"
      }
    ]
  }
}
注意事项
  • 仅返回 status = 1 的有效系统
  • 按创建时间倒序排列
  • 不需要分页,返回完整列表

GET 查询某个系统下的有效模块 /api/security/systems/{systemId}/modules/active

查看详情
查询指定系统下所有有效的模块列表,用于其他业务通过选择列表选择目标模块。返回所有 status = 1 的模块,不需要分页
请求参数
参数名 必填 类型 示例 说明
systemId string - 系统ID
响应示例
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": [
      {
        "id": 1,
        "code": "AUTH_USER",
        "name": "用户管理模块",
        "systemId": "系统ID",
        "systemName": "权限管理系统",
        "status": 1,
        "description": "用户管理模块描述",
        "createTime": "2025-01-01T10:00:00.000Z",
        "updateTime": "2025-01-01T10:00:00.000Z"
      },
      {
        "id": 2,
        "code": "AUTH_ROLE",
        "name": "角色管理模块",
        "systemId": "系统ID",
        "systemName": "权限管理系统",
        "status": 1,
        "description": "角色管理模块描述",
        "createTime": "2025-01-01T11:00:00.000Z",
        "updateTime": "2025-01-01T11:00:00.000Z"
      }
    ]
  },
  "failure": {
    "code": "4040",
    "message": "系统不存在",
    "data": null
  }
}
注意事项
  • 仅返回指定系统下 status = 1 的有效模块
  • 按创建时间倒序排列
  • 不需要分页,返回完整列表
  • 如果系统不存在,返回404错误

OpenAPI 接口

模块标识: openapi | 接口数量: 11

POST 无状态会员权限校验 /openapi/stateless-members/permissions/check

查看详情
校验无状态会员是否具备访问指定系统模块的权限,适用于服务端到服务端的权限判断。
请求参数
参数名 必填 类型 示例 说明
Authorization string Bearer {token} 会员访问令牌,格式为 Bearer TOKEN

请求体

{
  "systemCode": "string|必填,目标系统编码,如 AUTH",
  "moduleCode": "string|必填,目标系统模块编码,如 AUTH_USER"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "权限校验通过",
    "data": {
      "member": {
        "code": "SM000001",
        "type": "VIP"
      },
      "system": {
        "code": "AUTH",
        "name": "权限管理系统"
      },
      "module": {
        "code": "AUTH_USER",
        "name": "用户管理模块"
      }
    }
  },
  "failure": {
    "code": "1008",
    "message": "系统模块未开放访问",
    "data": null
  }
}
注意事项
  • 成功时会在响应 Header 中返回 X-OpenAPI-Result,用于客户端解密并记录审计信息。
  • 失败时统一返回 HTTP 200,业务错误码位于 code 字段。

POST 无状态会员功能额度校验 /openapi/stateless-members/modules/limits/check

查看详情
在权限校验通过的前提下,进一步判断某个功能是否超出会员额度限制,常用于调用频率、可用次数等配额管控。
请求参数
参数名 必填 类型 示例 说明
Authorization string Bearer {token} 会员访问令牌,格式为 Bearer TOKEN

请求体

{
  "systemCode": "string|必填,目标系统编码",
  "moduleCode": "string|必填,目标模块编码",
  "currentCount": "number|必填,当前已使用次数"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "权限及额度校验通过",
    "data": {
      "member": {
        "code": "SM000001",
        "type": "VIP"
      },
      "system": {
        "code": "AUTH",
        "name": "权限管理系统"
      },
      "module": {
        "code": "AUTH_USER",
        "name": "用户管理模块"
      },
      "limit": {
        "value": 100,
        "current": 80,
        "remaining": 20
      }
    }
  },
  "failure": {
    "code": "1010",
    "message": "当前模块的使用已达到上限100",
    "data": {
      "limitValue": 100
    }
  }
}
注意事项
  • 若未配置额度限制,limit 字段为 null。
  • 所有结果仍以 HTTP 200 返回,业务码请参考 code 字段。

POST 会员开通 /openapi/memberships/activate

查看详情
基于已支付订单为客户端用户开通会员资格,并自动同步会员用户记录和订单状态。
请求参数
参数名 必填 类型 示例 说明
Authorization string Bearer {token} 客户端登录令牌,格式为 Bearer TOKEN

请求体

{
  "memberType": "string|必填,会员类型编码或名称,如 VIP",
  "orderNo": "string|必填,已支付订单号"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "会员开通成功",
    "data": {
      "clientUser": {
        "id": "GplqNHbkcmcFa0sj",
        "code": "CU000009",
        "phone": "18347432461",
        "name": "Smkello"
      },
      "memberUser": {
        "id": "toiUHzFoO1xtmSkI",
        "memberType": "VIP"
      },
      "order": {
        "orderNo": "ORD-20250115-0010",
        "status": "COMPLETED"
      }
    }
  },
  "failure": {
    "code": "1107",
    "message": "订单尚未支付或已失效",
    "data": null
  }
}
注意事项
  • 该接口会校验黑名单、订单手机号、订单状态与会员类型一致性。
  • 响应 Header X-OpenAPI-Result 存放加密结果用于客户端追踪。

POST 会员注册 /openapi/memberships/register

查看详情
根据注册令牌中的信息自动落地企业或散客账号。如果启用了站点分配,会为用户创建个人站点和独立数据库,并自动创建超级管理员角色。
请求参数
参数名 必填 类型 示例 说明
Authorization string Bearer {token} 注册令牌,服务端提前生成,格式为 Bearer TOKEN
X-Site string - 所属站点标识,用户将注册到该站点
响应示例
{
  "success": {
    "code": "0000",
    "message": "会员注册成功",
    "data": {
      "accountType": "company",
      "user": {
        "id": "BAKj1wKp7etrmSAT",
        "code": "USER000001",
        "name": "企业管理员",
        "title": "企业管理员",
        "phone": "13800138000",
        "email": "admin@example.com",
        "phonePrefix": "+86",
        "individualism": true,
        "status": 1,
        "roles": [],
        "effectiveDate": "2025-01-21",
        "expiryDate": null,
        "createTime": "2025-01-21T10:00:00.000Z",
        "updateTime": "2025-01-21T10:00:00.000Z",
        "creator": "13800138000",
        "updater": "13800138000"
      },
      "organization": {
        "code": "ORG000001",
        "name": "靖苒数字"
      },
      "site": {
        "id": "site-id",
        "key": "A1B2C3D4-E5F6-7890-ABCD-EF1234567890-ABCDEF12",
        "name": "个人站点",
        "createTime": "2025-01-21T10:00:00.000Z"
      }
    }
  },
  "failure": {
    "code": "1203",
    "message": "公司信用代码已注册",
    "data": null
  }
}
注意事项
  • 当注册信息包含公司名称与信用代码时将自动创建企业账号及组织根节点;否则注册为散客账号。
  • 密码要求同时包含字母和数字,长度不少于 6 位。
  • 如果启用了站点分配,系统会:1. 在所属站点数据库创建用户 2. 创建个人站点和独立数据库 3. 在独立数据库中创建用户副本和超级管理员角色
  • X-Site header 必传,用于指定用户所属的站点

POST 会员登录 /openapi/memberships/login

查看详情
同时支持企业账号与散客账号的登录校验,并返回加密的登录令牌。如果用户有多个可用站点,会返回站点信息。散客账号登录时必须包含同意协议字段。
请求参数
参数名 必填 类型 示例 说明
Authorization string Bearer {token} 登录令牌,包含手机号、密码和同意协议信息(散客账号必填),格式为 Bearer TOKEN。令牌 payload 应包含:phone(手机号)、password(密码)、agreeTerms(同意协议,散客账号必填且必须为 true)
X-System-Code string - 系统编码。用于指定当前登录的业务系统(例如 AUTH_MANAGEMENT、CONTENT_MANAGEMENT)。当系统不支持时将返回“登录用户不支持当前系统,可联系管理员处理”。
响应示例
有个人站点:
{
  "code": "0000",
  "message": "登录成功",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIs...",
    "user": {
      "id": "BAKj1wKp7etrmSAT",
      "code": "USER000001",
      "username": "企业管理员",
      "phone": "13800138000",
      "email": "admin@example.com",
      "individualism": true,
      "status": 1,
      "createTime": "2025-01-21T10:00:00.000Z",
      "accountType": "user",
      "type": "普通用户"
    },
    "companyName": "靖苒数字",
    "site": {
      "id": "MNFIOHH6QOA3kg0z",
      "key": "A1B2C3D4-E5F6-7890-ABCD-EF1234567890-ABCDEF12",
      "name": "个人站点",
      "createTime": "2025-01-21T10:00:00.000Z"
    }
  }
}
无个人站点:
{
  "code": "0000",
  "message": "登录成功",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIs...",
    "user": {
      "id": "BAKj1wKp7etrmSAT",
      "code": "USER000001",
      "username": "企业管理员",
      "phone": "13800138000",
      "email": "admin@example.com",
      "individualism": false,
      "status": 1,
      "createTime": "2025-01-21T10:00:00.000Z",
      "accountType": "user",
      "type": "普通用户"
    },
    "companyName": "靖苒数字",
    "site": null
  }
}
注意事项
  • 优先尝试企业账号登录,失败后自动回退到散客账号校验。
  • 散客账号登录时,登录令牌的 payload 中必须包含 agreeTerms 字段且值为 true,否则返回错误码 1303(请同意隐私等协议)。
  • 企业账号登录时,agreeTerms 字段可选,不影响登录流程。
  • 成功时 data.token 与响应 Header X-OpenAPI-Result 均为加密令牌。
  • 响应中的 site 字段说明:
  • - site 字段只返回个人站点信息(如果用户有个人站点),不会返回所属站点信息
  • - 有个人站点时:site 字段包含个人站点的完整信息(id、key、name、createTime)
  • - 无个人站点时:site 字段为 null(无论用户是否有所属站点)
  • - 判断逻辑:只需判断 site 是否为 null 即可知道用户是否有个人站点
  • - 注意:用户可能既有所属站点(通过 user.siteKey 访问),也有个人站点(通过 site 字段访问)
  • 后续请求可通过 X-Site header 切换站点,切换后使用对应站点的数据库。

POST 登录令牌校验 /openapi/memberships/login/verify

查看详情
对登录接口返回的访问令牌进行有效性校验,确认令牌是否过期、账号状态及黑名单状态。
请求参数
参数名 必填 类型 示例 说明
Authorization string Bearer {token} 登录接口返回的访问令牌,格式为 Bearer TOKEN
X-System-Code string - 系统编码。用于指定当前登录的业务系统(例如 AUTH_MANAGEMENT、CONTENT_MANAGEMENT)。当系统不支持时将返回“登录用户不支持当前系统,可联系管理员处理”。
响应示例
{
  "success": {
    "code": "0000",
    "message": "登录令牌校验成功",
    "data": {
      "phone": "13800138000",
      "id": "USER000001",
      "_id": "MNFIOHH6QOA3kg0z"
    }
  },
  "failure": {
    "code": "1300",
    "message": "登录令牌无效或已过期",
    "data": null
  }
}
注意事项
  • 当令牌失效、对应账号被禁用或存在黑名单记录时也会返回 200,但 code 与 message 表示具体失败原因。
  • 若需要补充返回字段,可在 data 中扩展 additional 信息。
  • 支持通过 X-Site header 切换站点,切换后使用对应站点的数据库进行权限校验。

POST 资源权限校验 /openapi/permissions/resource-check

查看详情
基于登录令牌校验指定系统下用户是否拥有访问某接口所需的资源与权限。支持通过 X-Site header 切换站点。
请求参数
参数名 必填 类型 示例 说明
Authorization string Bearer {token} 登录接口返回的访问令牌,格式为 Bearer TOKEN
X-Site string - 站点标识。用于切换站点和对应的数据库上下文。如果用户有多个可用站点,可通过此 header 切换。

请求体

{
  "systemCode": "string|必填,目标系统编码",
  "apiName": "string|必填,接口标识(可使用资源 code、name、title 或 URL)",
  "requiredPermissions": "string[]|选填,需要同时具备的权限编码数组"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "资源权限校验成功",
    "data": {
      "accessGranted": true,
      "user": {
        "id": "BAKj1wKp7etrmSAT",
        "phone": "13800138000",
        "type": "user"
      },
      "system": {
        "code": "AUTH",
        "name": "权限管理系统"
      },
      "resource": {
        "code": "API_CUSTOMER_DELETE",
        "url": "/api/customers/:id",
        "type": "api"
      },
      "checkedPermissions": [
        "CUSTOMER_DELETE"
      ]
    }
  },
  "failure": {
    "code": "1502",
    "message": "缺少必要权限: CUSTOMER_DELETE",
    "data": null
  }
}
注意事项
  • 若找不到与 apiName 匹配的资源,将返回 code=1501。
  • requiredPermissions 未传时仅校验资源授权,传入时要求全部命中。
  • 出于安全考虑,失败时同样返回 HTTP 200,但 code/message 用于区分失败原因。

POST 账户权限校验 /openapi/permissions/check

查看详情
根据访问令牌校验账户在指定系统下拥有的资源与权限。资源列表以树状结构返回,方便前端渲染菜单等场景。支持通过 X-Site header 切换站点。
请求参数
参数名 必填 类型 示例 说明
Authorization string Bearer {token} 访问令牌,支持系统用户与客户端用户,格式为 Bearer TOKEN
X-Site string - 站点标识。用于切换站点和对应的数据库上下文。如果用户有多个可用站点,可通过此 header 切换。

请求体

{
  "systemCode": "string|必填,要校验的系统编码"
}

请按照示例结构封装请求体字段,并确保必填字段完整。

响应示例
{
  "success": {
    "code": "0000",
    "message": "权限校验成功",
    "data": {
      "user": {
        "id": "MNFIOHH6QOA3kg0z",
        "code": "USER000001",
        "username": "企业管理员",
        "type": "user"
      },
      "companyName": "靖苒数字",
      "system": {
        "code": "AUTH",
        "name": "权限管理系统"
      },
      "resources": [
        {
          "id": "RES001",
          "code": "RES001",
          "name": "内容管理",
          "title": "内容管理",
          "type": "page",
          "url": "/content",
          "parentId": null,
          "orderNum": 1,
          "children": [
            {
              "id": "RES002",
              "code": "RES002",
              "name": "文章管理",
              "title": "文章管理",
              "type": "page",
              "url": "/content/articles",
              "parentId": "RES001",
              "orderNum": 1,
              "children": []
            },
            {
              "id": "RES003",
              "code": "RES003",
              "name": "分类管理",
              "title": "分类管理",
              "type": "page",
              "url": "/content/categories",
              "parentId": "RES001",
              "orderNum": 2,
              "children": []
            }
          ]
        }
      ],
      "resourcesByType": {
        "page": [
          {
            "id": "RES001",
            "code": "RES001",
            "name": "内容管理",
            "title": "内容管理",
            "type": "page",
            "url": "/content",
            "parentId": null,
            "orderNum": 1,
            "children": [
              {
                "id": "RES002",
                "code": "RES002",
                "name": "文章管理",
                "title": "文章管理",
                "type": "page",
                "url": "/content/articles",
                "parentId": "RES001",
                "orderNum": 1,
                "children": []
              },
              {
                "id": "RES003",
                "code": "RES003",
                "name": "分类管理",
                "title": "分类管理",
                "type": "page",
                "url": "/content/categories",
                "parentId": "RES001",
                "orderNum": 2,
                "children": []
              }
            ]
          }
        ],
        "button": [
          {
            "id": "RES004",
            "code": "RES004",
            "name": "新增按钮",
            "title": "新增按钮",
            "type": "button",
            "url": "/api/content/create",
            "parentId": null,
            "orderNum": 1,
            "children": []
          }
        ]
      },
      "site": {
        "id": "site-id",
        "key": "A1B2C3D4-E5F6-7890-ABCD-EF1234567890-ABCDEF12",
        "name": "个人站点",
        "createTime": "2025-01-21T10:00:00.000Z"
      }
    }
  },
  "failure": {
    "code": "1402",
    "message": "系统未开放或已停用",
    "data": null
  }
}
注意事项
  • 企业账号会同时合并个人权限与所属组织权限;散客账号仅返回个人权限。
  • 权限列表来自角色继承链,请根据资源类型及 resourceUrls 进行前端路由控制。
  • resources 字段返回树状结构,每个资源节点包含 children 数组,用于前端渲染菜单树。树状结构按 orderNum 排序。
  • resourcesByType 字段按资源类型分组返回,每个类型下的资源也是树状结构,方便前端按类型渲染。
  • 支持通过 X-Site header 切换站点,切换后使用对应站点的数据库进行权限查询,返回该站点下的角色和权限。

POST 激活无状态会员 /openapi/stateless-members/activate

查看详情
激活无状态会员,通过X-Member-Key header中的混合JWT解密得到密钥,校验会员有效性后生成新的密钥令牌返回。
请求参数
参数名 必填 类型 示例 说明
X-Member-Key string - 会员密钥令牌,通过混合JWT加密
X-System-Code string - 系统编码,用于判断会员类型是否支持当前系统
X-Site string - 站点标识
响应示例
{
  "success": {
    "code": "0000",
    "message": "激活成功",
    "data": {
      "keyToken": "新的密钥令牌(混合JWT加密)",
      "member": {
        "id": "xxx",
        "code": "SM0001",
        "name": "无状态会员",
        "memberTypeId": "yyy",
        "effectiveDate": "2025-01-01",
        "validityDays": 365
      }
    }
  },
  "failure": {
    "code": "1504",
    "message": "您绑定的会员码无效",
    "data": null
  },
  "failureExpired": {
    "code": "1501",
    "message": "激活已超时,请重新绑定激活",
    "data": null
  }
}
注意事项
  • 如果X-Member-Key的JWT解析已过期,返回错误:激活已超时,请重新绑定激活
  • 校验无状态密钥是否存在且有效,且没有过期
  • 校验关联会员类型记录是否存在且有效
  • 通过X-System-Code判断会员类型是否支持当前系统
  • 校验通过后,用混合JWT加密生成新的密钥返回
  • 不满足条件返回:您绑定的会员码无效

POST 检查无状态会员有效性 /openapi/stateless-members/check

查看详情
检查无状态会员是否还有效,通过X-Member-Key header中的混合JWT解密得到密钥,校验会员状态、过期时间、系统支持等,返回剩余天数。
请求参数
参数名 必填 类型 示例 说明
X-Member-Key string - 会员密钥令牌,通过混合JWT加密
X-System-Code string - 系统编码,用于判断会员类型是否支持当前系统
X-Site string - 站点标识
响应示例
{
  "success": {
    "code": "0000",
    "message": "校验通过",
    "data": {
      "valid": true,
      "remainingDays": 30,
      "member": {
        "id": "xxx",
        "code": "SM0001",
        "name": "无状态会员",
        "memberTypeId": "yyy",
        "effectiveDate": "2025-01-01",
        "validityDays": 365
      }
    }
  },
  "failure": {
    "code": "1506",
    "message": "您绑定的会员无效",
    "data": null
  },
  "failureExpired": {
    "code": "1505",
    "message": "传入的会员需要重新绑定",
    "data": null
  },
  "failureMemberExpired": {
    "code": "1507",
    "message": "会员已过期",
    "data": null
  }
}
注意事项
  • 如果X-Member-Key的JWT解析已过期,返回错误:传入的会员需要重新绑定
  • 判断无状态密钥是否存在且有效
  • 关联会员类型记录是否存在且有效,不存在或无效返回:您绑定的会员无效
  • 判断是否过期,已过期返回:会员已过期
  • 通过X-System-Code判断会员类型是否支持当前系统,不支持返回:当前会员码不支持当前系统
  • 返回会员还有多少天到期(基于会员有效期、当天日期、会员生效日期计算剩余时间按天计)
  • 不满足条件返回:您绑定的会员码无效

POST 检查无状态会员功能有效性 /openapi/stateless-members/functionCheck

查看详情
在检查无状态会员有效性的基础上,额外通过X-Function header检查会员功能模块中是否有该功能。
请求参数
参数名 必填 类型 示例 说明
X-Member-Key string - 会员密钥令牌,通过混合JWT加密
X-System-Code string - 系统编码,用于判断会员类型是否支持当前系统
X-Function string - 功能代码,用于检查会员功能模块中是否有该功能
X-Site string - 站点标识
响应示例
{
  "success": {
    "code": "0000",
    "message": "校验通过",
    "data": {
      "valid": true,
      "remainingDays": 30,
      "member": {
        "id": "xxx",
        "code": "SM0001",
        "name": "无状态会员",
        "memberTypeId": "yyy",
        "effectiveDate": "2025-01-01",
        "validityDays": 365
      },
      "function": {
        "code": "FUNC001",
        "name": "功能名称",
        "type": "Resource"
      }
    }
  },
  "failure": {
    "code": "1508",
    "message": "当前会员不支持当前功能",
    "data": null
  }
}
注意事项
  • 在/stateless-members/check功能基础上,通过Header的X-Function额外检查会员功能模块
  • 如果会员功能模块中有该功能则通过,没有则返回:当前会员不支持当前功能
  • 支持通过moduleCode或moduleId查找功能模块
  • 功能模块类型可以是Resource(绑定资源)或Custom(自定义模块名称)