Files
starRiverProperty/docs/testing/release-visitor-noauth-verify-v20260430/README.md
T
hpd840321 7b2bd307f1 Initial commit: reorganized source tree
- backend/: 13 Maven modules (cw-elevator-application, cloudwalk-cloud, intelligent-cwoscomponent, ninca-crk, etc.)
- frontend/: 4 Vue projects (elevator-front, cwos-portal, alarm-front, front_acs) + decompiled + scripts
- scripts/: build, test-env, tools (Docker Compose, service templates, API parity)
- docs/: AGENTS.md, superpowers specs, architecture docs
- .gitignore: standard Java/Maven exclusions

Moved from legacy maven-*/ root layout to backend/ organized structure.
2026-05-09 09:56:45 +08:00

106 lines
5.9 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.
# 访客无鉴权策略验证发布包(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`** 时,生效楼层为 **`PersonService.detail``floorList`**;租户策略须已在组织 **`detail`** 中以 **`allow_zone_ids` 替代**写入(**非** ∩)。详见 [`visitor-registration-business-flow.md`](../visitor-registration-business-flow.md)、[`租户组织人员访客-数据模型与用例.md`](../../architecture/租户组织人员访客-数据模型与用例.md)、[`2026-05-06` 规格](../../superpowers/specs/2026-05-06-tenant-visitor-policy-organization-implementation.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`