# 文档

## LSS 节点管理

### 获取 LSS 节点列表（分页）

维护人：TG Live

#### URL

- 本地开发环境: `POST` http://localhost:10050/api/admin/lss-nodes/list
- 开发环境: `POST` https://tg-live-game.pwtk.cc/api/admin/lss-nodes/list

描述：获取 LSS 节点列表（分页）

ContentType：`application/json`

#### 请求参数

##### Body Parameter

| 名称    | 类型    | 必填 | 最大长度 | 描述                                            | 示例值    |
| ------- | ------- | ---- | -------- | ----------------------------------------------- | --------- |
| page    | Integer | 否   | -        | 页码 (从 1 开始)                                | 1         |
| size    | Integer | 否   | -        | 每页条数                                        | 10        |
| keyword | String  | 否   | -        | 搜索关键词 (模糊匹配名称、ID 等)                | 摄像头    |
| enabled | Boolean | 否   | -        | 启用状态过滤 (null=全部, true=启用, false=禁用) | true      |
| sortBy  | String  | 否   | -        | 排序字段                                        | createdAt |
| sortDir | String  | 否   | -        | 排序方向 (ASC/DESC)                             | DESC      |

#### 请求示例

```
{
    "page": 1,
    "size": 10,
    "keyword": "摄像头",
    "enabled": true,
    "sortBy": "createdAt",
    "sortDir": "DESC"
}
```

#### 响应参数

| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
| --- | --- | --- | --- | --- | --- |
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码（失败时返回） |  |
| errMessage | String | 否 | - | 错误信息（失败时返回） |  |
| data | object | 否 |  | 响应数据 (ActualType: PageResponse) |  |
| └ list | List<T> | 否 |  | 数据列表 (ActualType: T) |  |
| └ id | Long | 否 | - | 数据库主键 | 0 |
| └ lssId | String | 否 | - | LSS 节点 ID |  |
| └ lssName | String | 否 | - | LSS 节点名称 |  |
| └ machineId | String | 否 | - | 关联的机器 ID |  |
| └ address | String | 否 | - | LSS 地址 (IP:Port) |  |
| └ maxTasks | Integer | 否 | - | 最大并发任务数 | 0 |
| └ currentTasks | Integer | 否 | - | 当前任务数 | 0 |
| └ status | String | 否 | - | 节点状态: ONLINE, OFFLINE, BUSY, MAINTENANCE |  |
| └ ffmpegVersion | String | 否 | - | FFmpeg 版本 |  |
| └ systemInfo | String | 否 | - | 系统信息 (JSON) |  |
| └ lastHeartbeatAt | LocalDateTime | 否 | - | 最后心跳时间 | yyyy-MM-dd HH:mm:ss |
| └ enabled | Boolean | 否 | - | 是否启用 | true |
| └ loadRate | Double | 否 | - | 负载率 (0.0 - 1.0) | 0.0 |
| └ createdAt | LocalDateTime | 否 | - | 创建时间 | yyyy-MM-dd HH:mm:ss |
| └ updatedAt | LocalDateTime | 否 | - | 更新时间 | yyyy-MM-dd HH:mm:ss |
| └ page | Integer | 否 | - | 当前页码 (从 1 开始) | 1 |
| └ size | Integer | 否 | - | 每页条数 | 10 |
| └ total | Long | 否 | - | 总记录数 | 100 |
| └ totalPages | Integer | 否 | - | 总页数 | 10 |
| └ hasNext | Boolean | 否 | - | 是否有下一页 | true |
| └ hasPrevious | Boolean | 否 | - | 是否有上一页 | false |

#### 响应示例

```
{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "list": [
            {
                "id": 0,
                "lssId": "string",
                "lssName": "string",
                "machineId": "string",
                "address": "string",
                "maxTasks": 0,
                "currentTasks": 0,
                "status": "string",
                "ffmpegVersion": "string",
                "systemInfo": "string",
                "lastHeartbeatAt": "yyyy-MM-dd HH:mm:ss",
                "enabled": true,
                "loadRate": 0,
                "createdAt": "yyyy-MM-dd HH:mm:ss",
                "updatedAt": "yyyy-MM-dd HH:mm:ss"
            }
        ],
        "page": 1,
        "size": 10,
        "total": 100,
        "totalPages": 10,
        "hasNext": true,
        "hasPrevious": false
    }
}
```

#### 错误码

无

### 获取全部 LSS 节点列表

维护人：TG Live

#### URL

- 本地开发环境: `GET` http://localhost:10050/api/admin/lss-nodes/listAll
- 开发环境: `GET` https://tg-live-game.pwtk.cc/api/admin/lss-nodes/listAll

描述：获取全部 LSS 节点列表

ContentType：`application/x-www-form-urlencoded;charset=UTF-8`

#### 请求参数

#### 响应参数

| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
| --- | --- | --- | --- | --- | --- |
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码（失败时返回） |  |
| errMessage | String | 否 | - | 错误信息（失败时返回） |  |
| data | array | 否 |  | 响应数据 (ActualType: List) |  |
| └ id | Long | 否 | - | 数据库主键 | 0 |
| └ lssId | String | 否 | - | LSS 节点 ID |  |
| └ lssName | String | 否 | - | LSS 节点名称 |  |
| └ machineId | String | 否 | - | 关联的机器 ID |  |
| └ address | String | 否 | - | LSS 地址 (IP:Port) |  |
| └ maxTasks | Integer | 否 | - | 最大并发任务数 | 0 |
| └ currentTasks | Integer | 否 | - | 当前任务数 | 0 |
| └ status | String | 否 | - | 节点状态: ONLINE, OFFLINE, BUSY, MAINTENANCE |  |
| └ ffmpegVersion | String | 否 | - | FFmpeg 版本 |  |
| └ systemInfo | String | 否 | - | 系统信息 (JSON) |  |
| └ lastHeartbeatAt | LocalDateTime | 否 | - | 最后心跳时间 | yyyy-MM-dd HH:mm:ss |
| └ enabled | Boolean | 否 | - | 是否启用 | true |
| └ loadRate | Double | 否 | - | 负载率 (0.0 - 1.0) | 0.0 |
| └ createdAt | LocalDateTime | 否 | - | 创建时间 | yyyy-MM-dd HH:mm:ss |
| └ updatedAt | LocalDateTime | 否 | - | 更新时间 | yyyy-MM-dd HH:mm:ss |

#### 响应示例

```
{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": [
        {
            "id": 0,
            "lssId": "string",
            "lssName": "string",
            "machineId": "string",
            "address": "string",
            "maxTasks": 0,
            "currentTasks": 0,
            "status": "string",
            "ffmpegVersion": "string",
            "systemInfo": "string",
            "lastHeartbeatAt": "yyyy-MM-dd HH:mm:ss",
            "enabled": true,
            "loadRate": 0,
            "createdAt": "yyyy-MM-dd HH:mm:ss",
            "updatedAt": "yyyy-MM-dd HH:mm:ss"
        }
    ]
}
```

#### 错误码

无

### 获取 LSS 节点详情

维护人：TG Live

#### URL

- 本地开发环境: `GET` http://localhost:10050/api/admin/lss-nodes/detail
- 开发环境: `GET` https://tg-live-game.pwtk.cc/api/admin/lss-nodes/detail

描述：获取 LSS 节点详情

ContentType：`application/x-www-form-urlencoded;charset=UTF-8`

#### 请求参数

##### Query Parameter

| 名称  | 类型   | 必填 | 最大长度 | 描述        | 示例值 |
| ----- | ------ | ---- | -------- | ----------- | ------ |
| lssId | string | 是   | -        | LSS 节点 ID |        |

#### 响应参数

| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
| --- | --- | --- | --- | --- | --- |
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码（失败时返回） |  |
| errMessage | String | 否 | - | 错误信息（失败时返回） |  |
| data | object | 否 |  | 响应数据 (ActualType: LssNodeDTO) |  |
| └ id | Long | 否 | - | 数据库主键 | 0 |
| └ lssId | String | 否 | - | LSS 节点 ID |  |
| └ lssName | String | 否 | - | LSS 节点名称 |  |
| └ machineId | String | 否 | - | 关联的机器 ID |  |
| └ address | String | 否 | - | LSS 地址 (IP:Port) |  |
| └ maxTasks | Integer | 否 | - | 最大并发任务数 | 0 |
| └ currentTasks | Integer | 否 | - | 当前任务数 | 0 |
| └ status | String | 否 | - | 节点状态: ONLINE, OFFLINE, BUSY, MAINTENANCE |  |
| └ ffmpegVersion | String | 否 | - | FFmpeg 版本 |  |
| └ systemInfo | String | 否 | - | 系统信息 (JSON) |  |
| └ lastHeartbeatAt | LocalDateTime | 否 | - | 最后心跳时间 | yyyy-MM-dd HH:mm:ss |
| └ enabled | Boolean | 否 | - | 是否启用 | true |
| └ loadRate | Double | 否 | - | 负载率 (0.0 - 1.0) | 0.0 |
| └ createdAt | LocalDateTime | 否 | - | 创建时间 | yyyy-MM-dd HH:mm:ss |
| └ updatedAt | LocalDateTime | 否 | - | 更新时间 | yyyy-MM-dd HH:mm:ss |

#### 响应示例

```
{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "id": 0,
        "lssId": "string",
        "lssName": "string",
        "machineId": "string",
        "address": "string",
        "maxTasks": 0,
        "currentTasks": 0,
        "status": "string",
        "ffmpegVersion": "string",
        "systemInfo": "string",
        "lastHeartbeatAt": "yyyy-MM-dd HH:mm:ss",
        "enabled": true,
        "loadRate": 0,
        "createdAt": "yyyy-MM-dd HH:mm:ss",
        "updatedAt": "yyyy-MM-dd HH:mm:ss"
    }
}
```

#### 错误码

无

### 根据机器 ID 获取关联的 LSS 节点

维护人：TG Live

#### URL

- 本地开发环境: `GET` http://localhost:10050/api/admin/lss-nodes/byMachine
- 开发环境: `GET` https://tg-live-game.pwtk.cc/api/admin/lss-nodes/byMachine

描述：根据机器 ID 获取关联的 LSS 节点

ContentType：`application/x-www-form-urlencoded;charset=UTF-8`

#### 请求参数

##### Query Parameter

| 名称      | 类型   | 必填 | 最大长度 | 描述    | 示例值 |
| --------- | ------ | ---- | -------- | ------- | ------ |
| machineId | string | 是   | -        | 机器 ID |        |

#### 响应参数

| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
| --- | --- | --- | --- | --- | --- |
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码（失败时返回） |  |
| errMessage | String | 否 | - | 错误信息（失败时返回） |  |
| data | array | 否 |  | 响应数据 (ActualType: List) |  |
| └ id | Long | 否 | - | 数据库主键 | 0 |
| └ lssId | String | 否 | - | LSS 节点 ID |  |
| └ lssName | String | 否 | - | LSS 节点名称 |  |
| └ machineId | String | 否 | - | 关联的机器 ID |  |
| └ address | String | 否 | - | LSS 地址 (IP:Port) |  |
| └ maxTasks | Integer | 否 | - | 最大并发任务数 | 0 |
| └ currentTasks | Integer | 否 | - | 当前任务数 | 0 |
| └ status | String | 否 | - | 节点状态: ONLINE, OFFLINE, BUSY, MAINTENANCE |  |
| └ ffmpegVersion | String | 否 | - | FFmpeg 版本 |  |
| └ systemInfo | String | 否 | - | 系统信息 (JSON) |  |
| └ lastHeartbeatAt | LocalDateTime | 否 | - | 最后心跳时间 | yyyy-MM-dd HH:mm:ss |
| └ enabled | Boolean | 否 | - | 是否启用 | true |
| └ loadRate | Double | 否 | - | 负载率 (0.0 - 1.0) | 0.0 |
| └ createdAt | LocalDateTime | 否 | - | 创建时间 | yyyy-MM-dd HH:mm:ss |
| └ updatedAt | LocalDateTime | 否 | - | 更新时间 | yyyy-MM-dd HH:mm:ss |

#### 响应示例

```
{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": [
        {
            "id": 0,
            "lssId": "string",
            "lssName": "string",
            "machineId": "string",
            "address": "string",
            "maxTasks": 0,
            "currentTasks": 0,
            "status": "string",
            "ffmpegVersion": "string",
            "systemInfo": "string",
            "lastHeartbeatAt": "yyyy-MM-dd HH:mm:ss",
            "enabled": true,
            "loadRate": 0,
            "createdAt": "yyyy-MM-dd HH:mm:ss",
            "updatedAt": "yyyy-MM-dd HH:mm:ss"
        }
    ]
}
```

#### 错误码

无

### 启用/禁用 LSS 节点

维护人：TG Live

#### URL

- 本地开发环境: `POST` http://localhost:10050/api/admin/lss-nodes/setEnabled
- 开发环境: `POST` https://tg-live-game.pwtk.cc/api/admin/lss-nodes/setEnabled

描述：启用/禁用 LSS 节点

ContentType：`application/x-www-form-urlencoded;charset=UTF-8`

#### 请求参数

##### Query Parameter

| 名称    | 类型    | 必填 | 最大长度 | 描述        | 示例值 |
| ------- | ------- | ---- | -------- | ----------- | ------ |
| lssId   | string  | 是   | -        | LSS 节点 ID |        |
| enabled | boolean | 是   | -        | 是否启用    | true   |

#### 响应参数

| 名称       | 类型    | 必填 | 最大长度 | 描述                        | 示例值 |
| ---------- | ------- | ---- | -------- | --------------------------- | ------ |
| success    | Boolean | 否   | -        | 请求是否成功                | true   |
| errCode    | String  | 否   | -        | 错误码（失败时返回）        |        |
| errMessage | String  | 否   | -        | 错误信息（失败时返回）      |        |
| data       | object  | 否   | -        | 响应数据 (ActualType: Void) |        |

#### 响应示例

```
{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}
```

#### 错误码

无

### 删除 LSS 节点

维护人：TG Live

#### URL

- 本地开发环境: `POST` http://localhost:10050/api/admin/lss-nodes/delete
- 开发环境: `POST` https://tg-live-game.pwtk.cc/api/admin/lss-nodes/delete

描述：删除 LSS 节点

ContentType：`application/x-www-form-urlencoded;charset=UTF-8`

#### 请求参数

##### Query Parameter

| 名称  | 类型   | 必填 | 最大长度 | 描述        | 示例值 |
| ----- | ------ | ---- | -------- | ----------- | ------ |
| lssId | string | 是   | -        | LSS 节点 ID |        |

#### 响应参数

| 名称       | 类型    | 必填 | 最大长度 | 描述                        | 示例值 |
| ---------- | ------- | ---- | -------- | --------------------------- | ------ |
| success    | Boolean | 否   | -        | 请求是否成功                | true   |
| errCode    | String  | 否   | -        | 错误码（失败时返回）        |        |
| errMessage | String  | 否   | -        | 错误信息（失败时返回）      |        |
| data       | object  | 否   | -        | 响应数据 (ActualType: Void) |        |

#### 响应示例

```
{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}
```

#### 错误码

无

### 获取 LSS 节点统计信息

维护人：TG Live

#### URL

- 本地开发环境: `GET` http://localhost:10050/api/admin/lss-nodes/stats
- 开发环境: `GET` https://tg-live-game.pwtk.cc/api/admin/lss-nodes/stats

描述：获取 LSS 节点统计信息

ContentType：`application/x-www-form-urlencoded;charset=UTF-8`

#### 请求参数

#### 响应参数

| 名称          | 类型    | 必填 | 最大长度 | 描述                                | 示例值 |
| ------------- | ------- | ---- | -------- | ----------------------------------- | ------ |
| success       | Boolean | 否   | -        | 请求是否成功                        | true   |
| errCode       | String  | 否   | -        | 错误码（失败时返回）                |        |
| errMessage    | String  | 否   | -        | 错误信息（失败时返回）              |        |
| data          | object  | 否   |          | 响应数据 (ActualType: LssNodeStats) |        |
| └ total       | long    | 否   | -        | No comments found.                  | 0      |
| └ online      | long    | 否   | -        | No comments found.                  | 0      |
| └ offline     | long    | 否   | -        | No comments found.                  | 0      |
| └ busy        | long    | 否   | -        | No comments found.                  | 0      |
| └ maintenance | long    | 否   | -        | No comments found.                  | 0      |

#### 响应示例

```
{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "total": 0,
        "online": 0,
        "offline": 0,
        "busy": 0,
        "maintenance": 0
    }
}
```

#### 错误码

无
