#!/bin/bash set -u cd /var/www/onebot JAR=/tmp/ob45.txt rm -f $JAR BODY=$(curl -s -c $JAR http://127.0.0.1:8081/auth/login) CSRF=$(echo "$BODY" | grep -oE 'name="csrf-token" content="[^"]*"' | sed 's/.*content="//;s/"//') curl -s -b $JAR -c $JAR -X POST http://127.0.0.1:8081/auth/login \ -d "username=ruiguo_wang@163.com" -d "password=wrg521113.." -d "_token=$CSRF" \ -H "X-CSRF-TOKEN: $CSRF" -o /dev/null -w "login HTTP=%{http_code}\n" MASTER_ID=$(mysql -uonebot -p'OneBot_Db_7xKpQ9z' -h127.0.0.1 onebot -N -e "SELECT id FROM zp_bom WHERE bomNo='1' ORDER BY id DESC LIMIT 1;" 2>/dev/null) echo "masterId=$MASTER_ID" echo "" echo "=== 1. 项目关联主数据 ===" LINK=$(curl -s -b $JAR -X POST http://127.0.0.1:8081/bom/api/ref/link \ -H "Content-Type: application/json" -H "X-CSRF-TOKEN: $CSRF" \ -d "{\"projectId\":1,\"masterId\":$MASTER_ID}") echo "$LINK" REF_ID=$(echo "$LINK" | grep -oE '"refId":[0-9]+' | head -1 | sed 's/"refId"://') echo "refId=$REF_ID" echo "" echo "=== 2. 项目级追加列(采购数量) ===" COL=$(curl -s -b $JAR -X POST "http://127.0.0.1:8081/bom/api/ref/$REF_ID/column" \ -H "Content-Type: application/json" -H "X-CSRF-TOKEN: $CSRF" \ -d '{"key":"采购数量","label":"采购数量"}') echo "$COL" COL_ID=$(echo "$COL" | grep -oE '"columnId":[0-9]+' | head -1 | sed 's/"columnId"://') echo "columnId=$COL_ID" echo "" echo "=== 3. 项目级存值(itemId 用第一条明细) ===" ITEM_ID=$(mysql -uonebot -p'OneBot_Db_7xKpQ9z' -h127.0.0.1 onebot -N -e "SELECT id FROM zp_bom_item WHERE bomId=$MASTER_ID ORDER BY id LIMIT 1;" 2>/dev/null) echo "itemId=$ITEM_ID" curl -s -b $JAR -X POST "http://127.0.0.1:8081/bom/api/ref/$REF_ID/value" \ -H "Content-Type: application/json" -H "X-CSRF-TOKEN: $CSRF" \ -d "{\"columnId\":$COL_ID,\"itemId\":$ITEM_ID,\"value\":\"999\"}" -w " save HTTP=%{http_code}\n" echo "" echo "=== 4. 验证:项目级值已写入引用层 ===" mysql -uonebot -p'OneBot_Db_7xKpQ9z' -h127.0.0.1 onebot -e "SELECT * FROM zp_master_ref_value WHERE refId=$REF_ID;" 2>/dev/null echo "" echo "=== 5. 验证:全局主数据行未被修改(extra 不含采购数量) ===" mysql -uonebot -p'OneBot_Db_7xKpQ9z' -h127.0.0.1 onebot -e "SELECT id, extra LIKE '%采购数量%' AS has_col FROM zp_bom_item WHERE id=$ITEM_ID;" 2>/dev/null echo "" echo "=== 6. 引用详情接口 ===" curl -s -b $JAR "http://127.0.0.1:8081/bom/api/ref/$REF_ID" | head -c 400 echo "" echo "" echo "=== 7. 清理测试数据 ===" curl -s -b $JAR -X DELETE "http://127.0.0.1:8081/bom/api/ref/$REF_ID" \ -H "X-CSRF-TOKEN: $CSRF" -w "unlink HTTP=%{http_code}\n" echo "" echo "=== 完成 ==="