#!/bin/bash # 组织服务楼层数据诊断 # 用法: bash diag_person_floors.sh HOST="127.0.0.1" PORT="18081" BUSINESS_ID="2524639890ba4f2cba9ba1a4eeaa4015" PERSONS=( "1060601019894960128|陈国辉|1403艾斯" "1090779433129840640|王姣|1405一博" "1072908835884208128|秦夏|广发基金" ) echo "=== 电梯健康检查 ===" curl -s "http://${HOST}:${PORT}/health" 2>/dev/null || echo "FAIL" for p in "${PERSONS[@]}"; do IFS='|' read -r PID PNAME PORG <<< "$p" echo "" echo "=== $PNAME ($PID) [$PORG] ===" # 调电梯 addVisitor 接口(会内部调组织服务获取人员详情) RESP=$(curl -s -X POST "http://${HOST}:${PORT}/elevator/person/add/visitor" \ -H "Content-Type: application/json" \ -H "businessid: ${BUSINESS_ID}" \ -d "{ \"personId\": \"${PID}\", \"visitorId\": \"diag_$(date +%s)\", \"floorIds\": [], \"begVisitorTime\": $(date +%s)000, \"endVisitorTime\": $(($(date +%s) + 86400))000 }") CODE=$(echo "$RESP" | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('code',''))" 2>/dev/null) MSG=$(echo "$RESP" | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('message',''))" 2>/dev/null) echo " code=$CODE" echo " message=$MSG" echo " raw=$RESP" done echo "" echo "=== 试探:用特定 floorId 绕过策略 ===" # 看看哪些 zoneId 能被组织服务接受 for zone in "605560541473144832" "605560545117995008" "605560542752407552" "605560545449345024"; do RESP=$(curl -s -X POST "http://${HOST}:${PORT}/elevator/person/add/visitor" \ -H "Content-Type: application/json" \ -H "businessid: ${BUSINESS_ID}" \ -d "{ \"personId\": \"1060601019894960128\", \"visitorId\": \"zone_test_${zone}\", \"floorIds\": [\"${zone}\"], \"begVisitorTime\": $(date +%s)000, \"endVisitorTime\": $(($(date +%s) + 86400))000 }") CODE=$(echo "$RESP" | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('code',''))" 2>/dev/null) MSG=$(echo "$RESP" | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('message',''))" 2>/dev/null) echo " zone=$zone → code=$CODE msg=$MSG" done