zcloud_gbs_edgeguard/REGION-API.md

125 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 区域管理接口REGION-0105
## 公共约定
- 内部接口前缀:`/edgeguard/regions`
- 企业来自公共服务,`edgeguard_region` 只保存真实区域及 `corp_id`
- 所有接口先按公共企业服务返回的当前调用人可访问企业校验数据范围。
- `nodeType=CORP` 表示企业虚拟根;`nodeType=REGION` 表示本地真实区域。
- 菜单权限编码尚未分配,因此 Controller 暂不填写 `@PreAuthorize`;菜单资源确定后必须补齐。
## REGION-01 区域树
```http
GET /edgeguard/regions/tree?corpId=1001
```
`corpId` 可省略。返回企业虚拟根,即使企业尚无区域也返回空 `children`
```json
{
"success": true,
"data": [{
"nodeId": "C-1001",
"nodeType": "CORP",
"id": 1001,
"corpId": 1001,
"nodeName": "示例企业",
"treeLevel": 0,
"children": [{
"nodeId": "R-10",
"nodeType": "REGION",
"id": 10,
"corpId": 1001,
"parentId": 0,
"nodeName": "一号厂区",
"regionCode": "8f06f25cd7f84a1682ed86cdfa3da417",
"treeLevel": 1,
"sortNo": 0,
"regionStatus": "ENABLED",
"children": []
}]
}]
}
```
## REGION-02 区域详情
```http
GET /edgeguard/regions/10
```
详情返回企业名称、负责人名称、有序围栏点和用于修改的 `version`
## REGION-03 新增区域
```http
POST /edgeguard/regions
Content-Type: application/json
{
"corpId": 1001,
"parentId": 0,
"regionName": "一号厂区",
"leaderUserId": 2001,
"coordinateSystem": "GCJ02",
"fencePoints": [
{"seq": 1, "longitude": 113.1, "latitude": 23.1},
{"seq": 2, "longitude": 113.2, "latitude": 23.1},
{"seq": 3, "longitude": 113.2, "latitude": 23.2},
{"seq": 4, "longitude": 113.1, "latitude": 23.2}
],
"sortNo": 0,
"remarks": "示例"
}
```
服务端生成 `regionCode`、`treePath`、`treeLevel`,初始状态为 `ENABLED`
## REGION-04 修改区域
```http
PUT /edgeguard/regions/10
Content-Type: application/json
{
"regionName": "一号厂区东区",
"leaderUserId": 2001,
"coordinateSystem": "GCJ02",
"fencePoints": [
{"seq": 1, "longitude": 113.1, "latitude": 23.1},
{"seq": 2, "longitude": 113.2, "latitude": 23.1},
{"seq": 3, "longitude": 113.2, "latitude": 23.2},
{"seq": 4, "longitude": 113.1, "latitude": 23.2}
],
"sortNo": 10,
"regionStatus": "ENABLED",
"version": 1,
"remarks": "修改示例"
}
```
一期不接受 `parentId`、`corpId`、`regionCode`、`treePath` 或 `treeLevel` 修改。
## REGION-05 删除区域
```http
DELETE /edgeguard/regions/10
```
仅执行逻辑删除。存在子区域或 `BOUND` 摄像头绑定时拒绝删除。
## 当前业务异常
| 场景 | 信息 |
| --- | --- |
| 企业越权 | 无权访问该企业数据 |
| 区域不存在 | 区域不存在 / 父区域不存在 |
| 同级重名 | 同级区域名称已存在 |
| 负责人无效 | 区域负责人不存在或已停用 |
| 负责人跨企业 | 区域负责人不属于当前企业 |
| 围栏无效 | 点数、序号、范围、重复点、自相交或零面积对应提示 |
| 并发修改 | 区域已被其他用户修改,请刷新后重试 |
| 删除受限 | 区域存在下级区域,不能删除 / 区域仍绑定有效摄像头,不能删除 |