首页 / 帮助中心 / API清单

API接口列表

通讯录

部门管理

获取部门列表

接口地址

GET /api/v1/open/departments

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

参数名类型必填说明
includeMemberCountboolean是否包含成员数量,默认false

返回示例

{
  "code": 200,
  "message": "获取部门列表成功",
  "data": [
    {
      "id": 1,
      "name": "技术部",
      "code": "TECH",
      "parentId": null,
      "sort": 1,
      "memberCount": 10,
      "children": [
        {
          "id": 2,
          "name": "前端组",
          "code": "FRONTEND",
          "parentId": 1,
          "sort": 1,
          "memberCount": 5,
          "children": []
        }
      ]
    }
  ]
}
获取部门详情

接口地址

GET /api/v1/open/departments/{id}

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber部门ID

返回示例

{
  "code": 200,
  "message": "获取部门详情成功",
  "data": {
    "id": 1,
    "name": "技术部",
    "code": "TECH",
    "parentId": null,
    "sort": 1,
    "memberCount": 10
  }
}
创建部门

接口地址

POST /api/v1/open/departments

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

请求体

参数名类型必填说明
namestring部门名称
parentIdnumber父部门ID,不传或传0表示根部门
codestring部门编码,不传则自动生成
sortnumber排序号,默认0
descriptionstring部门描述
phonestring部门电话
emailstring部门邮箱

返回示例

{
  "code": 200,
  "message": "创建部门成功",
  "data": {
    "id": 1,
    "name": "技术部",
    "code": "TECH",
    "parentId": null,
    "sort": 1,
    "createdAt": "2025-01-01T00:00:00Z"
  }
}
更新部门

接口地址

PUT /api/v1/open/departments/{id}

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

路径参数

参数名类型必填说明
idnumber部门ID

请求体

参数名类型必填说明
namestring部门名称
parentIdnumber父部门ID
codestring部门编码
sortnumber排序号
descriptionstring部门描述
phonestring部门电话
emailstring部门邮箱

返回示例

{
  "code": 200,
  "message": "更新部门成功",
  "data": {
    "id": 1,
    "name": "技术部",
    "code": "TECH",
    "parentId": null,
    "sort": 1,
    "updatedAt": "2025-01-01T00:00:00Z"
  }
}
删除部门

接口地址

DELETE /api/v1/open/departments/{id}

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

路径参数

参数名类型必填说明
idnumber部门ID

返回示例

{
  "code": 200,
  "message": "删除部门成功",
  "data": null
}

错误说明

  • 如果部门下有子部门,返回错误:该部门下还有子部门,无法删除
  • 如果部门下有成员,返回错误:该部门下还有成员,无法删除

用户管理

获取用户列表

接口地址

GET /api/v1/open/users

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

参数名类型必填说明
pagenumber页码,默认1
pageSizenumber每页条数,默认10
namestring用户姓名(模糊搜索)
departmentIdstring部门ID(支持多个,逗号分隔)

返回示例

{
  "code": 200,
  "message": "获取用户列表成功",
  "data": {
    "list": [
      {
        "id": 1,
        "loginName": "zhangsan",
        "name": "张三",
        "employeeId": "E001",
        "mobile": "13800138000",
        "departmentId": 1,
        "departmentName": "技术部",
        "email": "zhangsan@example.com",
        "isLeaderInDept": 0,
        "directLeader": 0,
        "avatar": "https://example.com/avatar.jpg",
        "gender": 1,
        "status": "on_work",
        "roles": [
          {
            "id": 1,
            "name": "普通用户",
            "code": "user"
          }
        ],
        "createdAt": "2025-01-01T00:00:00Z"
      }
    ],
    "total": 100,
    "page": 1,
    "pageSize": 10
  }
}
获取用户详情

接口地址

GET /api/v1/open/users/{id}

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber用户ID

返回示例

{
  "code": 200,
  "message": "获取用户详情成功",
  "data": {
    "id": 1,
    "loginName": "zhangsan",
    "name": "张三",
    "employeeId": "E001",
    "mobile": "13800138000",
    "departmentId": 1,
    "department": {
      "id": 1,
      "name": "技术部",
      "code": "TECH",
      "parentId": null
    },
    "email": "zhangsan@example.com",
    "isLeaderInDept": 0,
    "directLeader": 0,
    "avatar": "https://example.com/avatar.jpg",
    "gender": "男",
    "status": "on_work",
    "roles": [
      {
        "id": 1,
        "name": "普通用户",
        "code": "user"
      }
    ],
    "createdAt": "2025-01-01T00:00:00Z",
    "updatedAt": "2025-01-01T00:00:00Z"
  }
}
根据部门获取用户列表

接口地址

GET /api/v1/open/users/departments/{id}

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber部门ID

返回示例

{
  "code": 200,
  "message": "获取用户列表成功",
  "data": [
    {
      "id": 1,
      "loginName": "zhangsan",
      "name": "张三",
      "departmentId": 1,
      "departmentName": "技术部"
    }
  ]
}
创建用户

接口地址

POST /api/v1/open/users

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

请求体

参数名类型必填说明
loginNamestring登录名(用户名),必须唯一
namestring用户姓名
departmentIdnumber部门ID
passwordstring密码,不传则默认为"123456"
employeeIdstring员工工号,不传则自动生成
mobilestring手机号
emailstring邮箱
isLeaderInDeptnumber是否部门负责人(0否,1是)
directLeadernumber直属上级用户ID
avatarstring头像URL
gendernumber性别(1男,2女)
rolesarray角色ID数组,不传则分配默认角色

返回示例

{
  "code": 200,
  "message": "创建用户成功",
  "data": {
    "id": 1,
    "loginName": "zhangsan",
    "name": "张三",
    "employeeId": "E001",
    "mobile": "13800138000",
    "departmentId": 1,
    "email": "zhangsan@example.com",
    "createdAt": "2025-01-01T00:00:00Z"
  }
}

错误说明

  • 如果用户名已存在,返回错误:用户名已存在
  • 如果工号已被使用,返回错误:工号已被使用
  • 如果邮箱已被使用,返回错误:邮箱已被使用
  • 如果手机号已被使用,返回错误:手机号已被使用
  • 如果部门不存在,返回错误:部门不存在
更新用户

接口地址

PUT /api/v1/open/users/{id}

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

路径参数

参数名类型必填说明
idnumber用户ID

请求体

参数名类型必填说明
namestring用户姓名
departmentIdnumber部门ID
mobilestring手机号
emailstring邮箱
employeeIdstring员工工号
isLeaderInDeptnumber是否部门负责人(0否,1是)
directLeadernumber直属上级用户ID
avatarstring头像URL
gendernumber性别(1男,2女)
statusstring用户状态(on_work在职,leave离职)
rolesarray角色ID数组

返回示例

{
  "code": 200,
  "message": "更新用户成功",
  "data": null
}

错误说明

  • 如果用户不存在,返回错误:用户不存在
  • 如果工号已被其他用户使用,返回错误:工号已被其他用户使用
  • 如果部门不存在,返回错误:部门不存在
删除用户

接口地址

DELETE /api/v1/open/users/{id}

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

路径参数

参数名类型必填说明
idnumber用户ID

返回示例

{
  "code": 200,
  "message": "删除用户成功",
  "data": null
}

错误说明

  • 如果用户不存在,返回错误:用户不存在
  • 如果尝试删除当前登录用户,返回错误:不能删除当前登录用户

会议中心

获取会议列表

接口地址

GET /api/v1/open/meetings

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

参数名类型必填说明
pagenumber页码,默认1
pageSizenumber每页条数,默认10
roomIdnumber会议室ID
userIdnumber用户ID
statusstring状态(pending/approved/rejected/canceled/completed)
startDatestring开始日期(YYYY-MM-DD)
endDatestring结束日期(YYYY-MM-DD)
keywordstring关键词搜索(会议标题)

返回示例

{
  "code": 200,
  "message": "查询成功",
  "data": {
    "list": [
      {
        "id": 1,
        "title": "产品讨论会",
        "roomId": 1,
        "roomName": "会议室A",
        "spaceId": 1,
        "spaceName": "总部大楼1层-会议室A",
        "userId": 10,
        "userName": "李四",
        "startTime": "2025-07-22T13:00:00Z",
        "endTime": "2025-07-22T15:00:00Z",
        "status": "approved",
        "description": "讨论新产品功能",
        "participants": [
          {
            "id": 1,
            "userId": 10,
            "userName": "李四",
            "role": "organizer",
            "status": "accepted"
          },
          {
            "id": 2,
            "userId": 11,
            "userName": "王五",
            "role": "participant",
            "status": "accepted"
          }
        ],
        "createdAt": "2025-07-20T10:00:00Z",
        "updatedAt": "2025-07-20T11:30:00Z"
      }
    ],
    "total": 50,
    "page": 1,
    "pageSize": 10
  }
}

获取会议详情

接口地址

GET /api/v1/open/meetings/{id}

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber会议ID

返回示例

{
  "code": 200,
  "message": "查询成功",
  "data": {
    "id": 1,
    "title": "产品讨论会",
    "roomId": 1,
    "roomName": "会议室A",
    "spaceId": 1,
    "spaceName": "总部大楼1层-会议室A",
    "userId": 10,
    "userName": "李四",
    "startTime": "2025-07-22T13:00:00Z",
    "endTime": "2025-07-22T15:00:00Z",
    "status": "approved",
    "description": "讨论新产品功能",
    "participants": [
      {
        "id": 1,
        "userId": 10,
        "userName": "李四",
        "userAvatar": "https://example.com/avatar.jpg",
        "role": "organizer",
        "status": "accepted",
        "checkInTime": "2025-07-22T12:55:00Z",
        "checkInMethod": "qr_code"
      }
    ],
    "checkInStats": {
      "total": 5,
      "checked": 3,
      "unchecked": 2,
      "checkInRate": 60
    },
    "createdAt": "2025-07-20T10:00:00Z",
    "updatedAt": "2025-07-20T11:30:00Z"
  }
}

创建会议

接口地址

POST /api/v1/open/meetings

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

{
  "title": "团队周会",
  "roomId": 1,
  "startTime": "2025-07-23T09:00:00Z",
  "endTime": "2025-07-23T10:00:00Z",
  "description": "每周例会",
  "participants": [10, 11, 12],
  "notifyAttendees": true,
  "requireApproval": false
}

参数说明

参数名类型必填说明
titlestring会议标题
roomIdnumber会议室ID
startTimestring开始时间(ISO 8601格式)
endTimestring结束时间(ISO 8601格式)
descriptionstring会议描述
participantsarray参会人ID列表
notifyAttendeesboolean是否通知参会人,默认true
requireApprovalboolean是否需要审批,默认false

返回示例

{
  "code": 200,
  "message": "创建成功",
  "data": {
    "id": 2,
    "title": "团队周会",
    "roomId": 1,
    "roomName": "会议室A",
    "userId": 1,
    "userName": "系统管理员",
    "startTime": "2025-07-23T09:00:00Z",
    "endTime": "2025-07-23T10:00:00Z",
    "status": "approved",
    "participants": [10, 11, 12],
    "description": "每周例会",
    "createdAt": "2025-07-22T10:00:00Z",
    "updatedAt": "2025-07-22T10:00:00Z"
  }
}

更新会议

接口地址

POST /api/v1/open/meetings/{id}

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber会议ID

请求参数

{
  "title": "团队周会-更新",
  "startTime": "2025-07-23T09:30:00Z",
  "endTime": "2025-07-23T10:30:00Z",
  "description": "更新后的描述",
  "participants": [10, 11, 12, 13],
  "notifyAttendees": true
}

返回示例

{
  "code": 200,
  "message": "更新成功",
  "data": {
    "id": 2,
    "title": "团队周会-更新",
    "startTime": "2025-07-23T09:30:00Z",
    "endTime": "2025-07-23T10:30:00Z",
    "participants": [10, 11, 12, 13],
    "description": "更新后的描述",
    "updatedAt": "2025-07-22T11:00:00Z"
  }
}

取消会议

接口地址

POST /api/v1/open/meetings/{id}/cancel

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber会议ID

请求参数

{
  "reason": "会议取消原因"
}

返回示例

{
  "code": 200,
  "message": "取消成功",
  "data": null
}

审批中心

获取审批列表

接口地址

GET /api/v1/open/approval

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

参数名类型必填说明
pagenumber页码,默认1
pageSizenumber每页条数,默认20
statusstring状态(pending/approved/rejected/cancelled)
typestring业务类型(meeting/leave/expense等)

返回示例

{
  "code": 200,
  "message": "获取审批列表成功",
  "data": {
    "list": [
      {
        "id": 1,
        "businessType": "meeting",
        "businessId": 100,
        "businessTitle": "产品讨论会",
        "applicantId": 10,
        "applicantName": "李四",
        "status": "pending",
        "currentStep": 1,
        "totalSteps": 2,
        "workflowId": 1,
        "workflowName": "会议审批流程",
        "createdAt": "2025-07-20T10:00:00Z",
        "updatedAt": "2025-07-20T10:00:00Z"
      }
    ],
    "total": 50,
    "page": 1,
    "pageSize": 20
  }
}

获取审批详情

GET /api/v1/open/approval/{id}

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber审批ID

返回示例

{
  "code": 200,
  "message": "获取审批详情成功",
  "data": {
    "id": 1,
    "businessType": "meeting",
    "businessId": 100,
    "businessTitle": "产品讨论会",
    "businessData": {
      "title": "产品讨论会",
      "roomId": 1,
      "roomName": "会议室A",
      "startTime": "2025-07-22T13:00:00Z",
      "endTime": "2025-07-22T15:00:00Z"
    },
    "applicantId": 10,
    "applicantName": "李四",
    "status": "pending",
    "currentStep": 1,
    "totalSteps": 2,
    "workflowId": 1,
    "workflowName": "会议审批流程",
    "approvalSteps": [
      {
        "step": 1,
        "approverId": 5,
        "approverName": "部门经理",
        "status": "pending",
        "comment": null,
        "processedAt": null
      },
      {
        "step": 2,
        "approverId": 1,
        "approverName": "总经理",
        "status": "pending",
        "comment": null,
        "processedAt": null
      }
    ],
    "createdAt": "2025-07-20T10:00:00Z",
    "updatedAt": "2025-07-20T10:00:00Z"
  }
}

获取我的待审批

GET /api/v1/open/approval/my-approvals

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

参数名类型必填说明
pagenumber页码,默认1
pageSizenumber每页条数,默认20
typestring业务类型(meeting/leave/expense等)

返回示例

{
  "code": 200,
  "message": "获取待审批列表成功",
  "data": {
    "list": [
      {
        "id": 1,
        "businessType": "meeting",
        "businessId": 100,
        "businessTitle": "产品讨论会",
        "applicantId": 10,
        "applicantName": "李四",
        "status": "pending",
        "currentStep": 1,
        "createdAt": "2025-07-20T10:00:00Z"
      }
    ],
    "total": 10,
    "page": 1,
    "pageSize": 20
  }
}

获取我的申请

GET /api/v1/open/approval/my-applications

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

参数名类型必填说明
pagenumber页码,默认1
pageSizenumber每页条数,默认20
statusstring状态(pending/approved/rejected/cancelled)
typestring业务类型(meeting/leave/expense等)

返回示例

{
  "code": 200,
  "message": "获取我的申请列表成功",
  "data": {
    "list": [
      {
        "id": 1,
        "businessType": "meeting",
        "businessId": 100,
        "businessTitle": "产品讨论会",
        "status": "pending",
        "currentStep": 1,
        "totalSteps": 2,
        "createdAt": "2025-07-20T10:00:00Z"
      }
    ],
    "total": 5,
    "page": 1,
    "pageSize": 20
  }
}

处理审批

PUT /api/v1/open/approval/{id}/process

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber审批ID

请求参数

{
  "action": "approve",
  "comment": "审批通过"
}

参数说明

参数名类型必填说明
actionstring操作类型:approve-通过,reject-拒绝
commentstring审批意见(拒绝时必填)

返回示例

{
  "code": 200,
  "message": "审批已通过",
  "data": null
}

取消审批

POST /api/v1/open/approval/{id}/cancel

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber审批ID

返回示例

{
  "code": 200,
  "message": "审批已取消",
  "data": null
}

信息发布

节目管理

获取节目列表
GET /api/v1/open/etv/programs

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

参数名类型必填说明
pagenumber页码,默认1
pageSizenumber每页条数,默认10
statusstring状态(draft/pending/approved/rejected/published/archived)
keywordstring关键词搜索(节目名称)

返回示例

{
  "code": 200,
  "message": "获取节目列表成功",
  "data": {
    "list": [
      {
        "id": 1,
        "name": "欢迎屏",
        "description": "大厅欢迎屏节目",
        "status": "approved",
        "duration": 30,
        "resolution": "1920x1080",
        "width": 1920,
        "height": 1080,
        "aspectRatio": "16:9",
        "orientation": "landscape",
        "playMode": "replace",
        "tags": "欢迎,大厅",
        "createdBy": 1,
        "createdAt": "2025-01-01T00:00:00Z",
        "updatedAt": "2025-01-01T00:00:00Z"
      }
    ],
    "total": 50,
    "page": 1,
    "pageSize": 10
  }
}
获取节目详情
GET /api/v1/open/etv/programs/{id}

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber节目ID

返回示例

{
  "code": 200,
  "message": "获取节目成功",
  "data": {
    "id": 1,
    "name": "欢迎屏",
    "description": "大厅欢迎屏节目",
    "status": "approved",
    "duration": 30,
    "resolution": "1920x1080",
    "width": 1920,
    "height": 1080,
    "aspectRatio": "16:9",
    "orientation": "landscape",
    "playMode": "replace",
    "tags": "欢迎,大厅",
    "content": {
      "components": [
        {
          "id": "comp1",
          "type": "text",
          "x": 100,
          "y": 100,
          "width": 800,
          "height": 200,
          "properties": {
            "text": "欢迎使用会议管理系统",
            "fontSize": 48,
            "color": "#000000"
          }
        }
      ]
    },
    "createdBy": 1,
    "createdAt": "2025-01-01T00:00:00Z",
    "updatedAt": "2025-01-01T00:00:00Z"
  }
}

发布管理

创建发布
POST /api/v1/open/etv/publish

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

{
  "name": "大厅欢迎屏发布",
  "programId": 1,
  "target": {
    "type": "terminal",
    "smartboardIds": [1, 2, 3]
  },
  "startTime": "2025-07-23T09:00:00Z",
  "endTime": "2025-07-23T18:00:00Z",
  "priority": 1,
  "playMode": "replace",
  "description": "发布到大厅智能板",
  "startImmediately": true
}

参数说明

参数名类型必填说明
namestring发布名称
programIdnumber节目ID
targetobject发布目标配置
target.typestring目标类型:all-全部设备,space-按空间,terminal-指定设备
target.smartboardIdsarray智能板ID列表(type为terminal时必填)
target.spaceIdsarray空间ID列表(type为space时必填)
startTimestring开始时间(ISO 8601格式)
endTimestring结束时间(ISO 8601格式)
prioritynumber优先级(数字越大优先级越高),默认0
playModestring播放模式:replace-替换,append-追加,默认replace
descriptionstring描述
startImmediatelyboolean是否立即开始发布,默认false

返回示例

{
  "code": 200,
  "message": "发布成功",
  "data": {
    "id": 1,
    "name": "大厅欢迎屏发布",
    "programId": 1,
    "programName": "欢迎屏",
    "target": {
      "type": "terminal",
      "smartboardIds": [1, 2, 3]
    },
    "status": "publishing",
    "startTime": "2025-07-23T09:00:00Z",
    "endTime": "2025-07-23T18:00:00Z",
    "priority": 1,
    "playMode": "replace",
    "description": "发布到大厅智能板",
    "publishedBy": 1,
    "publishedAt": "2025-07-22T10:00:00Z",
    "createdAt": "2025-07-22T10:00:00Z",
    "updatedAt": "2025-07-22T10:00:00Z"
  }
}
获取发布列表
GET /api/v1/open/etv/publish

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

参数名类型必填说明
pagenumber页码,默认1
pageSizenumber每页条数,默认10
statusstring状态(pending/publishing/success/failed/cancelled)

返回示例

{
  "code": 200,
  "message": "获取发布列表成功",
  "data": {
    "list": [
      {
        "id": 1,
        "name": "大厅欢迎屏发布",
        "programId": 1,
        "programName": "欢迎屏",
        "target": {
          "type": "terminal",
          "smartboardIds": [1, 2, 3]
        },
        "status": "success",
        "startTime": "2025-07-23T09:00:00Z",
        "endTime": "2025-07-23T18:00:00Z",
        "priority": 1,
        "playMode": "replace",
        "publishedBy": 1,
        "publishedAt": "2025-07-22T10:00:00Z",
        "completedAt": "2025-07-22T10:05:00Z",
        "createdAt": "2025-07-22T10:00:00Z"
      }
    ],
    "total": 20,
    "page": 1,
    "pageSize": 10
  }
}
获取发布详情
GET /api/v1/open/etv/publish/{id}

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber发布ID

返回示例

{
  "code": 200,
  "message": "获取发布成功",
  "data": {
    "id": 1,
    "name": "大厅欢迎屏发布",
    "programId": 1,
    "programName": "欢迎屏",
    "target": {
      "type": "terminal",
      "smartboardIds": [1, 2, 3]
    },
    "status": "success",
    "startTime": "2025-07-23T09:00:00Z",
    "endTime": "2025-07-23T18:00:00Z",
    "priority": 1,
    "playMode": "replace",
    "description": "发布到大厅智能板",
    "publishedBy": 1,
    "publishedAt": "2025-07-22T10:00:00Z",
    "completedAt": "2025-07-22T10:05:00Z",
    "tasks": [
      {
        "id": 1,
        "smartboardId": 1,
        "smartboardName": "大厅智能板1",
        "status": "success",
        "progress": 100,
        "errorMessage": null
      }
    ],
    "createdAt": "2025-07-22T10:00:00Z",
    "updatedAt": "2025-07-22T10:05:00Z"
  }
}
开始发布
POST /api/v1/open/etv/publish/{id}/start

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber发布ID

返回示例

{
  "code": 200,
  "message": "开始发布成功",
  "data": null
}
取消发布
POST /api/v1/open/etv/publish/{id}/cancel

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber发布ID

返回示例

{
  "code": 200,
  "message": "取消发布成功",
  "data": null
}

空间管理

空间管理

获取空间列表
GET /api/v1/open/space/spaces

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

参数名类型必填说明
pagenumber页码,默认1
pageSizenumber每页条数,默认10
keywordstring关键词搜索(空间名称、编码)
areaIdnumber区域ID
statusstring状态(active/inactive/maintenance/reserved)
isBookableboolean是否可预订
capabilityIdsarray能力ID列表(支持多个,如:capabilityIds[]=1&capabilityIds[]=2)

返回示例

{
  "code": 200,
  "message": "获取空间列表成功",
  "data": {
    "list": [
      {
        "id": 1,
        "spaceCode": "ROOM001",
        "name": "会议室A",
        "areaId": 1,
        "area": "总部大楼-5楼-东区",
        "areaSize": 50.5,
        "capacity": 20,
        "status": "active",
        "isBookable": true,
        "capabilities": [
          {
            "id": 1,
            "code": "meeting",
            "name": "会议功能"
          }
        ],
        "meetingRoomDetail": {
          "id": 1,
          "spaceId": 1,
          "equipment": [1, 2, 3],
          "images": ["https://example.com/room1.jpg"]
        },
        "description": "小型会议室",
        "image": "https://example.com/room1.jpg",
        "tags": "小型,投影",
        "managerId": 1,
        "createdAt": "2025-01-01T00:00:00Z",
        "updatedAt": "2025-01-01T00:00:00Z"
      }
    ],
    "total": 100,
    "page": 1,
    "pageSize": 10
  }
}
获取空间树
GET /api/v1/open/space/spaces/tree

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

返回示例

{
  "code": 200,
  "message": "获取空间树成功",
  "data": [
    {
      "id": 1,
      "name": "总部大楼",
      "type": "building",
      "code": "HQ",
      "children": [
        {
          "id": 2,
          "name": "5楼",
          "type": "floor",
          "code": "F5",
          "children": [
            {
              "id": 3,
              "name": "东区",
              "type": "zone",
              "code": "EAST",
              "spaces": [
                {
                  "id": 1,
                  "spaceCode": "ROOM001",
                  "name": "会议室A",
                  "deviceCount": 3
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
获取空间详情
GET /api/v1/open/space/spaces/{id}

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber空间ID

返回示例

{
  "code": 200,
  "message": "获取空间成功",
  "data": {
    "id": 1,
    "spaceCode": "ROOM001",
    "name": "会议室A",
    "areaId": 1,
    "area": "总部大楼-5楼-东区",
    "areaSize": 50.5,
    "capacity": 20,
    "status": "active",
    "isBookable": true,
    "capabilities": [
      {
        "id": 1,
        "code": "meeting",
        "name": "会议功能",
        "description": "支持会议预订和管理"
      }
    ],
    "meetingRoomDetail": {
      "id": 1,
      "spaceId": 1,
      "equipment": [
        {
          "id": 1,
          "name": "投影仪",
          "category": "display"
        }
      ],
      "images": ["https://example.com/room1.jpg"],
      "contactPerson": "张三",
      "contactPhone": "13800138000"
    },
    "description": "小型会议室",
    "image": "https://example.com/room1.jpg",
    "tags": "小型,投影",
    "managerId": 1,
    "createdAt": "2025-01-01T00:00:00Z",
    "updatedAt": "2025-01-01T00:00:00Z"
  }
}
创建空间
POST /api/v1/open/space/spaces

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

{
  "spaceCode": "ROOM002",
  "name": "会议室B",
  "areaId": 1,
  "areaSize": 60.0,
  "capacity": 30,
  "status": "active",
  "isBookable": true,
  "capabilityIDs": [1, 2],
  "description": "中型会议室",
  "tags": "中型,视频会议",
  "meetingRoom": {
    "equipment": [1, 2, 3],
    "contactPerson": "李四",
    "contactPhone": "13800138001"
  }
}

参数说明

参数名类型必填说明
spaceCodestring空间编码(不提供时自动生成)
namestring空间名称
areaIdnumber区域ID
areaSizenumber面积(平方米)
capacitynumber容纳人数
statusstring状态(active/inactive/maintenance/reserved),默认active
isBookableboolean是否可预订,默认false
capabilityIDsarray能力ID列表(至少选择一个)
descriptionstring描述
tagsstring标签(逗号分隔)
meetingRoomobject会议室详情(当capabilityIDs包含会议能力时)
meetingRoom.equipmentarray设备ID列表
meetingRoom.contactPersonstring联系人
meetingRoom.contactPhonestring联系电话

返回示例

{
  "code": 200,
  "message": "创建空间成功",
  "data": {
    "id": 2,
    "spaceCode": "ROOM002",
    "name": "会议室B",
    "areaId": 1,
    "status": "active",
    "isBookable": true,
    "capabilities": [
      {
        "id": 1,
        "code": "meeting",
        "name": "会议功能"
      }
    ],
    "createdAt": "2025-07-22T10:00:00Z",
    "updatedAt": "2025-07-22T10:00:00Z"
  }
}
更新空间
PUT /api/v1/open/space/spaces/{id}

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber空间ID

请求参数

{
  "name": "会议室B-更新",
  "areaSize": 65.0,
  "capacity": 35,
  "status": "active",
  "isBookable": true,
  "capabilityIDs": [1, 2, 3],
  "description": "更新后的描述",
  "tags": "中型,视频会议,智能"
}

返回示例

{
  "code": 200,
  "message": "更新空间成功",
  "data": {
    "id": 2,
    "name": "会议室B-更新",
    "areaSize": 65.0,
    "capacity": 35,
    "updatedAt": "2025-07-22T11:00:00Z"
  }
}
删除空间
DELETE /api/v1/open/space/spaces/{id}

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber空间ID

返回示例

{
  "code": 200,
  "message": "删除空间成功",
  "data": null
}

区域管理

获取区域列表
GET /api/v1/open/space/areas

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

返回示例

{
  "code": 200,
  "message": "获取区域列表成功",
  "data": [
    {
      "id": 1,
      "name": "总部大楼",
      "code": "HQ",
      "type": "building",
      "parentId": null,
      "status": "active",
      "sort": 1,
      "description": "公司总部大楼",
      "createdAt": "2025-01-01T00:00:00Z",
      "updatedAt": "2025-01-01T00:00:00Z"
    }
  ]
}
获取区域树
GET /api/v1/open/space/areas/tree

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

返回示例

{
  "code": 200,
  "message": "获取区域树成功",
  "data": [
    {
      "id": 1,
      "name": "总部大楼",
      "code": "HQ",
      "type": "building",
      "parentId": null,
      "status": "active",
      "sort": 1,
      "children": [
        {
          "id": 2,
          "name": "5楼",
          "code": "F5",
          "type": "floor",
          "parentId": 1,
          "status": "active",
          "sort": 1,
          "children": [
            {
              "id": 3,
              "name": "东区",
              "code": "EAST",
              "type": "zone",
              "parentId": 2,
              "status": "active",
              "sort": 1,
              "children": []
            }
          ]
        }
      ]
    }
  ]
}
获取区域详情
GET /api/v1/open/space/areas/{id}

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber区域ID

返回示例

{
  "code": 200,
  "message": "获取区域成功",
  "data": {
    "id": 1,
    "name": "总部大楼",
    "code": "HQ",
    "type": "building",
    "parentId": null,
    "parent": null,
    "status": "active",
    "sort": 1,
    "description": "公司总部大楼",
    "createdAt": "2025-01-01T00:00:00Z",
    "updatedAt": "2025-01-01T00:00:00Z"
  }
}
创建区域
POST /api/v1/open/space/areas

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

{
  "name": "6楼",
  "code": "F6",
  "type": "floor",
  "parentId": 1,
  "status": "active",
  "sort": 2,
  "description": "6楼办公区"
}

参数说明

参数名类型必填说明
namestring区域名称
codestring区域编码(不提供时自动生成)
typestring类型:city-城市,campus-园区,building-楼栋,floor-楼层,zone-区域
parentIdnumber父区域ID
statusstring状态(active/inactive),默认active
sortnumber排序,默认0
descriptionstring描述

返回示例

{
  "code": 200,
  "message": "创建区域成功",
  "data": {
    "id": 4,
    "name": "6楼",
    "code": "F6",
    "type": "floor",
    "parentId": 1,
    "status": "active",
    "sort": 2,
    "description": "6楼办公区",
    "createdAt": "2025-07-22T10:00:00Z",
    "updatedAt": "2025-07-22T10:00:00Z"
  }
}
更新区域
PUT /api/v1/open/space/areas/{id}

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber区域ID

请求参数

{
  "name": "6楼-更新",
  "status": "active",
  "sort": 3,
  "description": "更新后的描述"
}

返回示例

{
  "code": 200,
  "message": "更新区域成功",
  "data": {
    "id": 4,
    "name": "6楼-更新",
    "status": "active",
    "sort": 3,
    "description": "更新后的描述",
    "updatedAt": "2025-07-22T11:00:00Z"
  }
}
删除区域
DELETE /api/v1/open/space/areas/{id}

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber区域ID

返回示例

{
  "code": 200,
  "message": "删除区域成功",
  "data": null
}

用户状态管理

获取用户状态列表

GET /api/v1/open/user-status

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

返回示例

{
  "code": 200,
  "message": "获取用户状态列表成功",
  "data": [
    {
      "id": 1,
      "code": "on_work",
      "name": "在岗",
      "description": "正常工作中",
      "color": "green",
      "icon": "user-check",
      "isDefault": 1,
      "isSystem": 1,
      "order": 1,
      "createdAt": "2025-01-01T00:00:00Z",
      "updatedAt": "2025-01-01T00:00:00Z"
    },
    {
      "id": 2,
      "code": "off_work",
      "name": "下班",
      "description": "已经下班",
      "color": "gray",
      "icon": "user-x",
      "isDefault": 0,
      "isSystem": 1,
      "order": 2,
      "createdAt": "2025-01-01T00:00:00Z",
      "updatedAt": "2025-01-01T00:00:00Z"
    },
    {
      "id": 3,
      "code": "busy",
      "name": "忙碌",
      "description": "正在忙碌中",
      "color": "orange",
      "icon": "user-clock",
      "isDefault": 0,
      "isSystem": 0,
      "order": 3,
      "createdAt": "2025-01-01T00:00:00Z",
      "updatedAt": "2025-01-01T00:00:00Z"
    }
  ]
}

更新当前用户状态

POST /api/v1/open/user-status/update

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

{
  "statusCode": "busy"
}

参数说明

参数名类型必填说明
statusCodestring状态编码

返回示例

{
  "code": 200,
  "message": "更新用户状态成功",
  "data": {
    "id": 3,
    "code": "busy",
    "name": "忙碌",
    "color": "orange",
    "icon": "user-clock",
    "isDefault": 0,
    "isSystem": 0,
    "order": 3,
    "userStatus": "busy"
  }
}

创建用户状态(管理员)

POST /api/v1/open/user-status

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

{
  "code": "meeting",
  "name": "会议中",
  "description": "正在参加会议",
  "color": "blue",
  "icon": "users",
  "isDefault": 0,
  "order": 4
}

参数说明

参数名类型必填说明
codestring状态编码(唯一)
namestring状态名称
descriptionstring状态描述
colorstring显示颜色
iconstring状态图标
isDefaultnumber是否默认状态(0-否,1-是)
ordernumber排序,默认0

返回示例

{
  "code": 200,
  "message": "创建用户状态成功",
  "data": {
    "id": 4,
    "code": "meeting",
    "name": "会议中",
    "description": "正在参加会议",
    "color": "blue",
    "icon": "users",
    "isDefault": 0,
    "isSystem": 0,
    "order": 4,
    "createdAt": "2025-07-22T10:00:00Z",
    "updatedAt": "2025-07-22T10:00:00Z"
  }
}

更新用户状态(管理员)

PUT /api/v1/open/user-status/{id}

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber用户状态ID

请求参数

{
  "name": "会议中-更新",
  "color": "purple",
  "icon": "video",
  "isDefault": 0,
  "order": 5
}

参数说明

  • 系统状态(isSystem=1)只能修改:name、color、icon、isDefault、order
  • 非系统状态可以修改所有字段(包括code)

返回示例

{
  "code": 200,
  "message": "更新用户状态成功",
  "data": {
    "id": 4,
    "code": "meeting",
    "name": "会议中-更新",
    "color": "purple",
    "icon": "video",
    "isDefault": 0,
    "order": 5,
    "updatedAt": "2025-07-22T11:00:00Z"
  }
}

删除用户状态(管理员)

DELETE /api/v1/open/user-status/{id}

请求头

X-App-ID: {AppID}
X-Timestamp: {时间戳}
X-Signature: {签名}
Content-Type: application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber用户状态ID

注意事项

  • 系统状态不允许删除
  • 默认状态不允许删除
  • 如果该状态正在被用户使用,不允许删除

返回示例

{
  "code": 200,
  "message": "删除用户状态成功",
  "data": null
}

智能通行

获取通行记录

接口地址

GET /api/v1/open/smart-access/records

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

参数名类型必填说明
pagenumber页码,默认1
pageSizenumber每页条数,默认10
spaceIdnumber空间ID
accessTypestring通行方式(face/qr_code/password/card)
statusstring状态(success/failed)
startDatestring开始日期(YYYY-MM-DD)
endDatestring结束日期(YYYY-MM-DD)

返回示例

{
  "code": 200,
  "message": "获取通行记录成功",
  "data": {
    "list": [
      {
        "id": 1,
        "spaceId": 1,
        "spaceName": "会议室A",
        "userId": 10,
        "userName": "张三",
        "accessType": "face",
        "accessTime": "2025-07-22T14:30:00Z",
        "status": "success",
        "reason": "人脸识别成功",
        "deviceInfo": "Android Meeting Pad",
        "deviceName": "会议室A门禁设备",
        "deviceIP": "192.168.1.100"
      }
    ],
    "total": 100,
    "page": 1,
    "pageSize": 10
  }
}

获取门禁配置

接口地址

GET /api/v1/open/smart-access/rooms/{spaceId}/detail

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
spaceIdnumber空间ID

返回示例

{
  "code": 200,
  "message": "获取门禁配置成功",
  "data": {
    "spaceId": 1,
    "spaceName": "会议室A",
    "status": "active",
    "passwordEnabled": true,
    "faceEnabled": true,
    "qrCodeEnabled": true,
    "cardEnabled": false,
    "whitelistCount": 5,
    "lastSyncTime": "2025-07-22T14:00:00Z"
  }
}

获取房间白名单

接口地址

GET /api/v1/open/smart-access/rooms/{spaceId}/whitelist

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
spaceIdnumber空间ID

返回示例

{
  "code": 200,
  "message": "获取房间白名单成功",
  "data": [
    {
      "id": 1,
      "spaceId": 1,
      "userId": 10,
      "userName": "张三",
      "validFrom": "2025-07-01T00:00:00Z",
      "validTo": "2025-12-31T23:59:59Z",
      "createdAt": "2025-07-01T10:00:00Z"
    }
  ]
}

设备管理

获取设备列表

接口地址

GET /api/v1/open/devices

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

请求参数

参数名类型必填说明
pagenumber页码,默认1
pageSizenumber每页条数,默认10
typestring设备类型(smartboard/projector/sensor)
spaceIdnumber空间ID
statusstring在线状态(online/offline)
keywordstring关键词搜索(设备名称、IP地址)

返回示例

{
  "code": 200,
  "message": "获取设备列表成功",
  "data": {
    "list": [
      {
        "id": 1,
        "name": "会议室A智能平板",
        "type": "smartboard",
        "spaceId": 1,
        "spaceName": "会议室A",
        "ipAddress": "192.168.1.100",
        "macAddress": "00:11:22:33:44:55",
        "status": "online",
        "lastHeartbeat": "2025-07-22T14:30:00Z",
        "systemVersion": "Android 11",
        "appVersion": "1.0.0",
        "screenResolution": "1920x1080",
        "createdAt": "2025-01-01T00:00:00Z",
        "updatedAt": "2025-07-22T14:30:00Z"
      }
    ],
    "total": 50,
    "page": 1,
    "pageSize": 10
  }
}

获取设备详情

接口地址

GET /api/v1/open/devices/{id}

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber设备ID

返回示例

{
  "code": 200,
  "message": "获取设备详情成功",
  "data": {
    "id": 1,
    "name": "会议室A智能平板",
    "type": "smartboard",
    "spaceId": 1,
    "spaceName": "会议室A",
    "ipAddress": "192.168.1.100",
    "macAddress": "00:11:22:33:44:55",
    "status": "online",
    "lastHeartbeat": "2025-07-22T14:30:00Z",
    "systemVersion": "Android 11",
    "appVersion": "1.0.0",
    "screenResolution": "1920x1080",
    "deviceModel": "MeetingPad Pro",
    "cpuUsage": 45.5,
    "memoryUsage": 60.2,
    "storageTotal": 64,
    "storageUsed": 32,
    "storageAvailable": 32,
    "networkStatus": "connected",
    "createdAt": "2025-01-01T00:00:00Z",
    "updatedAt": "2025-07-22T14:30:00Z"
  }
}

远程控制设备

接口地址

POST /api/v1/open/devices/{id}/control

请求头

请求头说明示例
X-App-IDAppIDyour-app-id
X-TimestampUnix时间戳(秒)1690123456
X-SignatureHMAC-SHA256签名a1b2c3d4e5f6...
Content-Type内容类型application/json

注意:所有接口都需要使用AppID/AppSecret认证,签名生成方法请参考认证机制章节。

路径参数

参数名类型必填说明
idnumber设备ID

请求参数

{
  "action": "restart",
  "params": {}
}

参数说明

参数名类型必填说明
actionstring操作类型:restart-重启,shutdown-关机,wake-唤醒,volume-音量调节,brightness-亮度调节
paramsobject操作参数(如音量值、亮度值等)

返回示例

{
  "code": 200,
  "message": "设备控制指令已发送",
  "data": {
    "deviceId": 1,
    "action": "restart",
    "status": "sent",
    "timestamp": "2025-07-22T14:35:00Z"
  }
}