项目树形结构查询接口文档
接口说明
该接口用于获取项目、楼宇、楼层和房源的树形结构数据,用于前端展示树形结构。支持通过level参数控制查询深度。
接口信息
- 接口名称:获取项目树形结构
- 请求方式:GET
- 接口路径:
/api/project-tree
- 接口描述:查询所有项目及其下属的楼宇、楼层和房源信息,以树形结构返回
请求参数
参数名 |
类型 |
必填 |
默认值 |
说明 |
level |
Integer |
否 |
4 |
查询层级:1-项目,2-楼宇,3-楼层,4-房源 |
返回参数
参数名 |
类型 |
说明 |
id |
String |
项目ID |
projectName |
String |
项目名称 |
projectType |
String |
项目类型 |
buildings |
Array |
楼宇列表 |
buildings 楼宇信息
参数名 |
类型 |
说明 |
id |
String |
楼宇ID |
buildingName |
String |
楼宇名称 |
buildingCode |
String |
楼宇编号 |
floors |
Array |
楼层列表 |
floors 楼层信息
参数名 |
类型 |
说明 |
id |
String |
楼层ID |
floorName |
String |
楼层名称 |
floorNumber |
Integer |
楼层号 |
rooms |
Array |
房源列表 |
rooms 房源信息
参数名 |
类型 |
说明 |
id |
String |
房源ID |
roomNumber |
String |
房号 |
roomType |
String |
房源类型 |
roomStatus |
String |
房源状态 |
buildingArea |
BigDecimal |
建筑面积 |
rentalArea |
BigDecimal |
计租面积 |
请求示例
GET /api/project-tree?level=4
返回示例
[
{
"id": "P001",
"projectName": "科技园区",
"projectType": "产业园区",
"buildings": [
{
"id": "B001",
"buildingName": "A栋",
"buildingCode": "A",
"floors": [
{
"id": "F001",
"floorName": "1层",
"floorNumber": 1,
"rooms": [
{
"id": "R001",
"roomNumber": "101",
"roomType": "办公",
"roomStatus": "待租",
"buildingArea": 100.00,
"rentalArea": 90.00
},
{
"id": "R002",
"roomNumber": "102",
"roomType": "办公",
"roomStatus": "已租",
"buildingArea": 120.00,
"rentalArea": 110.00
}
]
},
{
"id": "F002",
"floorName": "2层",
"floorNumber": 2,
"rooms": [
{
"id": "R003",
"roomNumber": "201",
"roomType": "办公",
"roomStatus": "待租",
"buildingArea": 150.00,
"rentalArea": 140.00
}
]
}
]
}
]
}
]
不同层级返回示例
level=1(只返回项目信息)
[
{
"id": "P001",
"projectName": "科技园区",
"projectType": "产业园区"
}
]
level=2(返回项目和楼宇信息)
[
{
"id": "P001",
"projectName": "科技园区",
"projectType": "产业园区",
"buildings": [
{
"id": "B001",
"buildingName": "A栋",
"buildingCode": "A"
}
]
}
]
level=3(返回项目、楼宇和楼层信息)
[
{
"id": "P001",
"projectName": "科技园区",
"projectType": "产业园区",
"buildings": [
{
"id": "B001",
"buildingName": "A栋",
"buildingCode": "A",
"floors": [
{
"id": "F001",
"floorName": "1层",
"floorNumber": 1
},
{
"id": "F002",
"floorName": "2层",
"floorNumber": 2
}
]
}
]
}
]
错误码说明
错误码 |
说明 |
200 |
请求成功 |
400 |
请求参数错误 |
500 |
服务器内部错误 |
调用示例
// 使用fetch调用示例
fetch('/api/project-tree?level=4')
.then(response => response.json())
.then(data => {
console.log(data);
// 处理返回的树形结构数据
})
.catch(error => {
console.error('Error:', error);
});
// 使用axios调用示例
axios.get('/api/project-tree', {
params: {
level: 4
}
})
.then(response => {
console.log(response.data);
// 处理返回的树形结构数据
})
.catch(error => {
console.error('Error:', error);
});
注意事项
- 接口返回的数据已经按照树形结构组织,前端可以直接用于树形组件的展示
- 所有数据都已经按照层级关系进行了关联
- 返回的数据中只包含未删除的记录(del_flag = '0')
- 楼层数据按照楼层号(floor_number)升序排序
- 房源数据按照房间数字编号(room_digital_number)升序排序
- level参数用于控制查询深度,可以根据实际需求选择不同的层级
前端使用建议
- 可以使用树形组件(如Element UI的Tree组件)来展示数据
- 建议对数据进行缓存,避免频繁请求
- 可以根据业务需求对数据进行过滤或搜索
- 建议添加加载状态和错误处理
- 可以根据实际需求选择不同的level参数,减少不必要的数据传输
性能优化建议
- 如果数据量较大,建议使用较小的level参数,只加载必要的数据
- 可以考虑添加缓存机制
- 可以根据实际需求只返回必要的字段
- 建议添加数据压缩功能
- 可以考虑使用懒加载方式,先加载上层数据,再根据需要加载下层数据