OneBot: Leantime 改造版源码(BOM/Univer 表格/AI 接管/品牌替换等)

This commit is contained in:
wangruiguo
2026-09-03 18:49:20 +08:00
commit d647428529
3501 changed files with 1988906 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
#!/bin/bash
set -u
cd /var/www/onebot
echo "=== PHP 语法检查 ==="
for f in app/Domain/Bom/Services/Teable.php app/Domain/Bom/Services/Bom.php app/Domain/Bom/Controllers/Api.php app/Domain/Bom/routes.php; do
php -l "$f" 2>&1
done
echo ""
echo "=== 清缓存 + 重载 fpm ==="
rm -rf storage/framework/views/* storage/framework/cache/* bootstrap/cache/*.php 2>/dev/null
echo "wrg521113.." | sudo -S systemctl reload php8.3-fpm >/dev/null 2>&1
echo "done"
echo ""
echo "=== 登录 ==="
JAR=/tmp/onebot_paste_cookies.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"
echo ""
echo "=== 粘贴解析接口测试 ==="
cat > /tmp/paste_sample.txt <<'PASTEEOF'
# Table: UAGP350B
## API Operations
### 1. Read Records (GET)
curl -X GET "https://table.universal-onebot.com/api/table/tblGHwQc8eAGFZcZ71A/record?fieldKeyType=name" \
-H "Authorization: Bearer teable_accaWtlglDjnwkieJXE_KaafZue9411p5G+QmP0r4zRsC6GDpUTuRDVfh2f8eco="
PASTEEOF
php -r '$t=file_get_contents("/tmp/paste_sample.txt"); echo json_encode(["text"=>$t], JSON_UNESCAPED_SLASHES);' > /tmp/paste_payload.json
curl -s -b "$JAR" -X POST http://127.0.0.1:8081/bom/api/teable/parse \
-H "Content-Type: application/json" \
-H "X-CSRF-TOKEN: $CSRF" \
--data-binary @/tmp/paste_payload.json
echo ""
echo ""
echo "=== Teable API 连通性(远程拉 1 条记录) ==="
curl -s -m 20 "https://table.universal-onebot.com/api/table/tblGHwQc8eAGFZcZ71A/record?fieldKeyType=name&take=1" \
-H "Authorization: Bearer teable_accaWtlglDjnwkieJXE_KaafZue9411p5G+QmP0r4zRsC6GDpUTuRDVfh2f8eco=" | head -c 400
echo ""
echo ""
echo "=== 端到端:新建测试 BOM -> 粘贴导入 -> 验证 -> 删除 ==="
PROJECT_ID=$(mysql -uonebot -p'OneBot_Db_7xKpQ9z' -h127.0.0.1 onebot -N -e "SELECT id FROM zp_projects LIMIT 1;" 2>/dev/null)
echo "projectId=$PROJECT_ID"
CREATE_RESP=$(curl -s -b "$JAR" -X POST http://127.0.0.1:8081/bom/api \
-H "Content-Type: application/json" \
-H "X-CSRF-TOKEN: $CSRF" \
-d "{\"bomNo\":\"TEST-PASTE-1\",\"productName\":\"UAGP350B paste test\",\"projectId\":$PROJECT_ID}")
echo "create: $CREATE_RESP"
BOM_ID=$(echo "$CREATE_RESP" | grep -oE '"id":[0-9]+' | head -1 | sed 's/"id"://')
echo "bomId=$BOM_ID"
if [ -n "$BOM_ID" ] && [ "$BOM_ID" -gt 0 ] 2>/dev/null; then
echo ""
echo "--- 粘贴导入(真实拉取 Teable 数据) ---"
curl -s -b "$JAR" -X POST "http://127.0.0.1:8081/bom/api/$BOM_ID/import/teable-paste" \
-H "Content-Type: application/json" \
-H "X-CSRF-TOKEN: $CSRF" \
--data-binary @/tmp/paste_payload.json
echo ""
echo "--- 验证行数 ---"
mysql -uonebot -p'OneBot_Db_7xKpQ9z' -h127.0.0.1 onebot -N -e "SELECT COUNT(*) FROM zp_bom_item WHERE bomId=$BOM_ID;" 2>/dev/null
echo "--- 清理测试 BOM ---"
curl -s -b "$JAR" -X DELETE "http://127.0.0.1:8081/bom/api/$BOM_ID" \
-H "X-CSRF-TOKEN: $CSRF" -w "delete HTTP=%{http_code}\n"
fi
echo ""
echo "=== 全部完成 ==="