mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-10 00:40:30 +08:00
8b15445328
Former-commit-id: 1de24b7eb79676d1aba9d799a58c5a753290cf52
106 lines
5.8 KiB
Markdown
106 lines
5.8 KiB
Markdown
# 访客无鉴权策略验证发布包(v20260430)
|
||
|
||
## 1. 发布目标
|
||
|
||
本目录为“黄平访问蒙海文”无鉴权策略验证的**版本化发布包**,用于生产执行、结果留痕与归档。
|
||
|
||
当前对应代码发布版本:`cw-elevator-application-2.0.9`
|
||
|
||
## 2. 包内文件
|
||
|
||
- `README.md`:发布说明(本文件)
|
||
- `操作手册.md`:完整操作步骤与判定规则
|
||
- `执行流程设计-简化版.md`:先明确流程再执行的最小闭环方案(推荐先读)
|
||
- `sql/黄平访客ID手工查询.sql`:生产手工查询黄平访客 ID 的 SQL
|
||
- `sql/批量样本筛选-多公司多部门.sql`:筛选多个公司/多个部门被访人样本 SQL
|
||
- `sql/人工核查最终楼层结果.sql`:自定义访客 ID 集合时执行后核验
|
||
- `sql/标准批量25访客-执行后核验.sql`:§4.0 单行命令固定 25 名访客号段后的执行后核验
|
||
- `python/quick_verify_visitor_floor_policy.py`:执行脚本快照(支持纯 HTTP;可选连组织库/电梯库)
|
||
- `python/requirements.txt`:`requests` + `pymysql`(预置样本拉取、`--verify-local-db`)
|
||
- `python/requirements-min.txt`:仅 `requests`(不连库时)
|
||
- `report/`:脚本输出 JSON 汇总(打包时排除 `*.json` 历史文件)
|
||
- `打包说明.txt`:生产机 `pip install`、一键 zip、全量预置命令示例
|
||
- `MANIFEST.txt`:交付清单
|
||
|
||
## 3. 关键基线参数
|
||
|
||
- 被访人(蒙海文)`personId=964454497399468032`
|
||
- 访客(黄平)`personId=1102270499947507712`
|
||
- 租户 `businessId=2524639890ba4f2cba9ba1a4eeaa4015`
|
||
- 策略语义(与电梯源码一致):未传 **`floorIds`** 且策略启用且 **`allow_zone_ids`** 非空时,生效楼层为 **被访人 `floorList` ∩ `allow_zone_ids`**(求交);无策略或 allow 为空则仍为 **`floorList` 全集**。详见 [`visitor-registration-business-flow.md`](../visitor-registration-business-flow.md)、[`租户组织人员访客-数据模型与用例.md`](../../architecture/租户组织人员访客-数据模型与用例.md)。
|
||
|
||
## 4. 测试执行(一行命令)
|
||
|
||
以下参数已由交付侧与现场环境对齐:**组织** `http://10.0.22.207:8089`,**电梯** `http://10.0.22.207:16112`;**25 名测试访客** `personId` 为连续号段 `9199000100000000001`~`9199000100000000025`(预置脚本内置 25 个被访人样本,本命令**不访问 MySQL**)。
|
||
|
||
**操作:** 打开解压后的发布包目录(能看到子目录 `python/`),**只粘贴下面整行**,回车执行(自动安装缺失的 `requests` 并跑预置 25 人批量无鉴权探测):
|
||
|
||
```bash
|
||
python3 -m pip install -q -r python/requirements-min.txt && python3 python/quick_verify_visitor_floor_policy.py --mode noauth-probe --org-base-url "http://10.0.22.207:8089" --elevator-base-url "http://10.0.22.207:16112" --use-preset-cases --visitor-person-ids "$(python3 -c 'print(",".join(str(9199000100000000000+i) for i in range(1,26)))')" --probe-with-businessid --batch-output-summary "batch-preset-static-$(date +%Y%m%d-%H%M%S).json"
|
||
```
|
||
|
||
汇总 JSON:`report/` 目录下文件名形如 `batch-preset-static-<时间戳>.json`。
|
||
|
||
**执行后须查库分析:** 在目标环境 **`cw-elevator-application`** 库运行 `sql/标准批量25访客-执行后核验.sql`,将每名访客的 **`active_row_count`、`zone_id`** 与 JSON 中的 `derived.floor_count`、`derived.floors` 对齐;具体操作与判定要点见 **`操作手册.md` §4.0.1、§4.6**。
|
||
|
||
---
|
||
|
||
### 附录 A:单样本(广发基金基线)
|
||
|
||
```bash
|
||
python3 python/quick_verify_visitor_floor_policy.py \
|
||
--mode noauth-probe \
|
||
--org-base-url "http://10.0.22.207:8089" \
|
||
--elevator-base-url "http://10.0.22.207:16112" \
|
||
--business-id "2524639890ba4f2cba9ba1a4eeaa4015" \
|
||
--meng-person-id "964454497399468032" \
|
||
--visitor-person-id "1102270499947507712" \
|
||
--probe-with-businessid
|
||
```
|
||
|
||
该访客为存量人员:库表核验易与历史 `image_rule_ref` 混在一起;若以「本轮新增访客 + 证据」为目标,请以 **§4 一行批量号段 `919900…`** 为主。**操作手册 §4.2** 对上述边界有全文说明。
|
||
|
||
### 附录 B:连 MySQL 拉样本 / 库表比对
|
||
|
||
需与 HTTP 同属一套库的地址与账号由运维另行提供,不由本 README 承载;禁止使用与目标环境不一致的数据库串联验证。
|
||
|
||
### 附录 C:`sql/batch_cases.csv` 批量
|
||
|
||
```bash
|
||
python3 python/quick_verify_visitor_floor_policy.py \
|
||
--mode noauth-probe \
|
||
--org-base-url "http://10.0.22.207:8089" \
|
||
--elevator-base-url "http://10.0.22.207:16112" \
|
||
--batch-input-csv "sql/batch_cases.csv" \
|
||
--visitor-person-ids "1102270499947507712,1102270499947507713,1102270499947507714" \
|
||
--visitor-names "黄志平A,黄志平B,黄志平C" \
|
||
--probe-with-businessid \
|
||
--batch-output-summary "batch-from-csv-$(date +%Y%m%d-%H%M%S).json"
|
||
```
|
||
|
||
### 附录 D:人员导出 CSV 自动筛选
|
||
|
||
```bash
|
||
python3 python/quick_verify_visitor_floor_policy.py \
|
||
--mode noauth-probe \
|
||
--org-base-url "http://10.0.22.207:8089" \
|
||
--elevator-base-url "http://10.0.22.207:16112" \
|
||
--batch-source-person-csv "../_cw_is_person__202604302030.csv" \
|
||
--exclude-business-ids "2524639890ba4f2cba9ba1a4eeaa4015" \
|
||
--sample-companies 3 \
|
||
--sample-persons-per-company 2 \
|
||
--visitor-person-ids "1102270499947507712,1102270499947507713,1102270499947507714" \
|
||
--visitor-names "黄志平A,黄志平B,黄志平C" \
|
||
--probe-with-businessid \
|
||
--batch-output-summary "batch-from-export-$(date +%Y%m%d-%H%M%S).json"
|
||
```
|
||
|
||
说明:导出 CSV 需含列 `BUSINESS_ID`,`ID`,`IS_DEL`,`NAME`(等);无部门列时汇总中 `department` 可能为空。
|
||
|
||
## 5. 输出位置
|
||
|
||
脚本输出(均在发布包下 `report/` 目录):
|
||
- 单样本:`quick-verify-<timestamp>.json`
|
||
- 标准批量:见 §4,`batch-preset-static-*.json`
|
||
- 其他批量:`--batch-output-summary` 指定名;默认 `batch-summary.json`
|