Files
starRiverProperty/maven-cw-elevator-application/logs/访客相关接口日志分析/日志分析/访客调用楼层放开接口清单.md
T
反编译工作区 8b15445328 feat: add service config templates and extraction script
Former-commit-id: 1de24b7eb79676d1aba9d799a58c5a753290cf52
2026-05-01 19:38:01 +08:00

239 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 访客调用楼层放开接口 日志分析
**分析日期:** 2026-04-30
**数据来源:** 3 台服务器(10.0.22.207~209elevator-app 生产日志
**日志范围:** 2026-04-30 全天
---
## 一、接口识别
| 属性 | 值 |
|------|-----|
| **接口名称** | 访客派梯接口(Visitor Elevator Dispatch |
| **入口 Controller** | `cn.cloudwalk.elevator.person.controller.AcsPersonController` |
| **核心 Service** | `cn.cloudwalk.elevator.person.impl.PersonRuleServiceImpl` |
| **线程模型** | `http-nio-16112-exec-*`Tomcat 嵌入式 HTTP |
| **协议** | HTTP REST(直接请求,非 Feign 内部调用) |
| **端口** | 16112 |
| **Spring Profile** | `access-control` |
---
## 二、接口调用完整流程
```
Step 1 AcsPersonController:59 → INFO 访客派梯接口请求开始
参数: businessId, personId, visitorId, requestFloorSize, beginTime, endTime
Step 2 PersonRuleServiceImpl:176/196 → INFO 根据被访人添加访客派梯权限开始
参数: AcsPersonAddVisitorParam (floorIds[], timeRange)
Step 3 PersonRuleServiceImpl:180 → INFO 访客派梯楼层决策开始
callerProvidedFloors=true/false
Step 4 PersonRuleServiceImpl:279 → INFO 访客派梯权限写入准备
imageStoreId, floorSize
Step 5 PersonRuleServiceImpl:239/303 → INFO 访客添加派梯权限开始
写入规则数据 (zoneId, zoneName, parentRule)
Step 6 PersonRuleServiceImpl:321 → INFO 访客派梯权限绑定图库成功
Step 7 PersonRuleServiceImpl:329 → INFO 访客派梯权限更新规则引用成功
Step 8 PersonRuleServiceImpl:331 → INFO 访客派梯权限处理完成
Step 9 AcsPersonController:65 → INFO 访客派梯接口请求结束
success=true/false, code, message
```
**总日志条目数:** 86 条(完整流程跟踪)
---
## 三、HTTP 接口调用清单(7 次)
> 来源:`AcsPersonController:59` → `AcsPersonController:65`(通过 HTTP nio 线程的完整调用链)
| # | 请求时间 | 响应时间 | 耗时 | 服务器 | 线程 | 被访人(personId) | 访客(visitorId) | 楼层 | 到访时段 | 调用方 | 结果 |
|---|----------|----------|------|--------|------|------------------|----------------|------|----------|--------|------|
| 1 | 13:23:19.846 | 13:23:20.229 | ~383ms | **208** | exec-8 | 1084108444947398656 | 1102223662662270976 | 38F | 13:23~14:23 | zhongjian | ✅ success |
| 2 | 14:10:38.996 | 14:10:39.206 | ~210ms | **208** | exec-5 | 823973510593769472 | 1102235571215421440 | 20F | 00:00~23:59 | username | ✅ success |
| 3 | 16:03:36.857 | 16:03:37.307 | ~450ms | **208** | exec-6 | 964454497399468032 | 1102263999044743168 | 1F | 16:03~20:03 | zhongjian | ✅ success |
| 4 | 16:17:47.011 | 16:17:47.177 | ~166ms | **208** | exec-6 | 1087071519357636608 | 1102267565343846400 | 7F | 16:17~次日06:17 | zhongjian | ✅ success |
| 5 | 16:18:31.111 | 16:18:31.259 | ~148ms | **209** | exec-1 | 1087071519357636608 | 1102267749385883648 | 7F | 16:18~次日09:18 | zhongjian | ✅ success |
| 6 | 17:08:03.211 | 17:08:03.361 | ~150ms | **207** | exec-4 | 835608431162683392 | 1102280216649682944 | 7F | 00:00~23:59 | username | ✅ success |
| 7 | 17:10:58.602 | 17:10:58.953 | ~351ms | **207** | exec-5 | 883307982669344768 | 1102280951930654720 | 37F | 00:00~23:59 | username | ✅ success |
### HTTP 调用汇总
| 维度 | 统计 |
|------|------|
| 总调用数 | 7 |
| 成功 | 7100% |
| 失败 | 0 |
| 平均耗时 | ~265ms |
| 最快 | ~148ms#5 |
| 最慢 | ~450ms#3 |
| 服务器 | 调用数 |
|--------|--------|
| 10.0.22.207 | 2 |
| 10.0.22.208 | 4 |
| 10.0.22.209 | 1 |
| 楼层 | 次数 |
|------|------|
| 7F | 3 |
| 38F | 1 |
| 20F | 1 |
| 1F | 1 |
| 37F | 1 |
---
## 四、平台端直接授权清单(30 次)
> 来源:`PersonRuleServiceImpl:196`(不经过 HTTP 接口,通过平台/JWT 直接调用,可能为批量操作或定时任务触发)
| # | 时间 | 服务器 | 被访人 | 访客 | 楼层 | 调用方 | 鉴权方式 |
|---|------|--------|--------|------|------|--------|----------|
| 1 | 08:49:44.060 | 207 | 835608431162683392 | 1102154810462326784 | 17F | username | 无鉴权 |
| 2 | 08:59:00.006 | 209 | 835608431162683392 | 1102157142243692544 | 7F | username | 无鉴权 |
| 3 | 09:13:47.733 | 207 | 835608431162683392 | 1102160865632194560 | 7F | username | 无鉴权 |
| 4 | 09:26:57.215 | 207 | 835608431162683392 | 1102164176997470208 | 7F | username | 无鉴权 |
| 5 | 09:50:11.318 | 209 | 1058698682545074176 | 1102170024296157184 | 14F | username | 无鉴权 |
| 6 | 09:53:41.314 | 209 | 835608431162683392 | 1102170905011916800 | 7F | username | 无鉴权 |
| 7 | 10:42:11.685 | 207 | 835608431162683392 | 1102183111996837888 | 7F | username | 无鉴权 |
| 8 | 10:55:14.487 | 209 | 835608431162683392 | 1102186395370803200 | 16F | username | 无鉴权 |
| 9 | 11:19:35.648 | 209 | 1080078783668654080 | 1102192523495063552 | 16F | zhongjian | JWT |
| 10 | 11:20:15.413 | 207 | 1080078783668654080 | 1102192690361233408 | 16F | zhongjian | JWT |
| 11 | 11:51:49.813 | 209 | 835608431162683392 | 1102200636407123968 | 16F | username | 无鉴权 |
| 12 | 13:32:35.431 | 209 | 1082635377371615232 | 1102225992925278208 | 17F | zhongjian | JWT |
| 13 | 13:34:25.367 | 209 | 1082635377371615232 | 1102226454357291008 | 17F | zhongjian | JWT |
| 14 | 13:36:46.368 | 209 | 1082635377371615232 | 1102227045766737920 | 17F | zhongjian | JWT |
| 15 | 14:15:24.063 | 209 | 1053987768004349952 | 1102236766301306880 | 1F,28~38F(11层) | zhongjian | JWT |
| 16 | 14:18:34.671 | 209 | 823973510593769472 | 1102237566549200896 | 20F | username | 无鉴权 |
| 17 | 14:30:51.910 | 209 | 835608431162683392 | 1102240658717429760 | 7F | username | 无鉴权 |
| 18 | 14:34:55.732 | 209 | 823973510593769472 | 1102241681473294336 | 20F | username | 无鉴权 |
| 19 | 14:58:21.864 | 208 | 1084107118220513280 | 1102247578667565056 | 1F,28F,31F | zhongjian | JWT |
| 20 | 14:59:05.419 | 209 | 1084107118220513280 | 1102247761727963136 | 1F,31F,28F | zhongjian | JWT |
| 21 | 14:59:43.580 | 208 | 1084107118220513280 | 1102247921828720640 | 1F,31F,30F,28F | zhongjian | JWT |
| 22 | 15:00:19.291 | 209 | 1084107118220513280 | 1102248071548596224 | 1F,28F,31F | zhongjian | JWT |
| 23 | 15:00:51.443 | 209 | 1084107118220513280 | 1102248206227550208 | 1F,28F,30F,31F | zhongjian | JWT |
| 24 | 15:01:22.837 | 209 | 1084107118220513280 | 1102248338054692864 | 1F,28F,30F,31F | zhongjian | JWT |
| 25 | 15:02:28.670 | 209 | 1084107118220513280 | 1102248614014709760 | 1F,28F,30F,31F | zhongjian | JWT |
| 26 | 15:06:33.007 | 208 | 835608431162683392 | 1102249639376605184 | 7F | username | 无鉴权 |
| 27 | 15:20:23.153 | 208 | 835608431162683392 | 1102253117473837056 | 17F | username | 无鉴权 |
| 28 | 15:36:54.278 | 208 | 823973510593769472 | 1102257278244376576 | 20F | username | 无鉴权 |
| 29 | 16:16:54.653 | 209 | 1087071519357636608 | 1102267345675710464 | 7F | zhongjian | JWT |
| 30 | 16:29:26.678 | 208 | 964454497399468032 | 1102270499947507712 | 1F | zhongjian | JWT |
---
## 五、全量统计分析
### 服务器分布(总计 37 次)
| 服务器 | HTTP 接口 | 平台直接 | 合计 |
|--------|----------|----------|------|
| 10.0.22.207 | 2 | 5 | 7 |
| 10.0.22.208 | 4 | 8 | 12 |
| 10.0.22.209 | 1 | 17 | 18 |
### 被访人 TOP 10(总计 37 次)
| 被访人(personId) | 次数 |
|------------------|------|
| 835608431162683392 | 12 |
| 1084107118220513280 | 7 |
| 823973510593769472 | 4 |
| 1087071519357636608 | 3 |
| 1082635377371615232 | 3 |
| 964454497399468032 | 2 |
| 1080078783668654080 | 2 |
| 1084108444947398656 | 1 |
| 883307982669344768 | 1 |
| 1058698682545074176 | 1 |
| 1053987768004349952 | 1 |
### 楼层分布(总计 37 次)
| 楼层 | 次数 | 占比 |
|------|------|------|
| 7F | 11 | 29.7% |
| 1F | 10 | 27.0% |
| 28F | 8 | 21.6% |
| 31F | 8 | 21.6% |
| 30F | 5 | 13.5% |
| 16F | 4 | 10.8% |
| 17F | 5 | 13.5% |
| 20F | 4 | 10.8% |
| 37F | 2 | 5.4% |
| 38F | 2 | 5.4% |
| 14F | 1 | 2.7% |
| 32F | 1 | 2.7% |
| 33F | 1 | 2.7% |
| 34F | 1 | 2.7% |
| 35F | 1 | 2.7% |
| 36F | 1 | 2.7% |
> 注:一次请求可包含多楼层,故楼层计数 > 请求总数
### 调用方分布
| 调用方 | 次数 | 鉴权方式 |
|--------|------|----------|
| zhongjian(认证用户) | 19 | JWT Bearer Token |
| username(平台匿名) | 18 | 无额外鉴权 |
### 成功率
| 类型 | 总数 | 成功 | 失败 | 成功率 |
|------|------|------|------|--------|
| HTTP 接口 | 7 | 7 | 0 | 100% |
| 平台直接 | 30 | 30 | 0 | 100% |
| **合计** | **37** | **37** | **0** | **100%** |
---
## 六、关键发现
1. **全部成功** — 该时段内 37 次访客楼层授权操作全部成功,无任何失败/异常
2. **两条路径并存** — 系统提供两种访客派梯方式:
- HTTP API`AcsPersonController`):响应式,单次处理,平均耗时 ~265ms
- 平台端直接调用(`PersonRuleServiceImpl:196`):批量/间隔式触发,可能来自管理后台或定时任务
3. **高频被访人**`835608431162683392``1084107118220513280` 合计被访问 19 次(占 51%),可能是公共区域/前台员工
4. **热门楼层** — 7F、1F、28F、31F 占据前四,1F 可能为大厅/入口层
5. **JWT 鉴权**`zhongjian` 用户的操作均携带 JWT Bearer Token`username` 的操作无 Authorization header,可能通过网关统一鉴权
6. **未观察到"放开"术语** — 日志中未出现"楼层放开"关键词,系统使用"派梯"elevator dispatch)表示楼层权限
7. **阈值差异** — 服务器 208 设备阈值 60.0,209 设备阈值 0.9(差异显著,可能为不同安全等级场景)
---
## 七、附:日志搜索命令
```bash
# HTTP 接口调用(请求开始 + 响应结束)
grep -h "访客派梯接口请求" */20260430*/logs*/elevator-app.log
# 平台端直接授权
grep -h "根据被访人添加访客派梯权限开始" */20260430*/logs*/elevator-app.log
# 楼层决策详情
grep -h "访客派梯楼层决策" */20260430*/logs*/elevator-app.log
# 权限写入确认
grep -h "访客派梯权限处理完成" */20260430*/logs*/elevator-app.log
# 统计每台服务器调用量
grep -c "根据被访人添加访客派梯权限开始" */20260430*/logs*/elevator-app.log
# 统计楼层分布
grep -h "根据被访人添加访客派梯权限开始" */20260430*/logs*/elevator-app.log | \
grep -o '"zoneName":"[^"]*"' | sort | uniq -c | sort -rn
# 统计被访人分布
grep -h "根据被访人添加访客派梯权限开始" */20260430*/logs*/elevator-app.log | \
grep -o '"personId":"[^"]*"' | sort | uniq -c | sort -rn
```