Files
chat/tests/test_sales_module.sh

124 lines
4.4 KiB
Bash
Raw Permalink Normal View History

2026-04-25 16:36:34 +08:00
#!/bin/bash
# ============================================
# Tailchat Sales 销售模块验证脚本
# ============================================
set -e
echo "🔍 [验证] Tailchat Sales 模块状态检查"
echo "================================"
# ==================== 1. 检查 Docker 服务 ====================
echo ""
echo "1⃣ 检查 Docker 服务状态..."
if docker ps &>/dev/null; then
if docker ps | grep -q "tailchat"; then
echo "✅ Tailchat 服务运行中"
docker ps | grep "tailchat" | awk '{print $1, $2}'
else
echo "⚠️ Tailchat 服务未运行"
echo "启动命令: cd /Users/sion/Desktop/projects/tailchat-sales && docker-compose up -d"
fi
else
echo "❌ Docker 未运行"
exit 1
fi
# ==================== 2. 检查 MongoDB 连接 ====================
echo ""
echo "2⃣ 检查 MongoDB 连接..."
MONGO_CONTAINER=$(docker ps | grep mongo | awk '{print $1}' | head -1)
if [ -n "$MONGO_CONTAINER" ]; then
echo "✅ MongoDB 容器运行中: $MONGO_CONTAINER"
# 检查 sales_invites 表
if docker exec $MONGO_CONTAINER mongo tailchat --eval "db.sales_invites.count()" 2>/dev/null | grep -q "[0-9]"; then
COUNT=$(docker exec $MONGO_CONTAINER mongo tailchat --eval "db.sales_invites.count()" 2>/dev/null | tail -1)
echo "✅ sales_invites 表存在,记录数: $COUNT"
else
echo "⚠️ sales_invites 表不存在或为空"
fi
# 检查 sales_stats 表
if docker exec $MONGO_CONTAINER mongo tailchat --eval "db.sales_stats.count()" 2>/dev/null | grep -q "[0-9]"; then
COUNT=$(docker exec $MONGO_CONTAINER mongo tailchat --eval "db.sales_stats.count()" 2>/dev/null | tail -1)
echo "✅ sales_stats 表存在,记录数: $COUNT"
else
echo "⚠️ sales_stats 表不存在或为空"
fi
else
echo "❌ MongoDB 容器未运行"
fi
# ==================== 3. 检查 Redis 连接 ====================
echo ""
echo "3⃣ 检查 Redis 连接..."
REDIS_CONTAINER=$(docker ps | grep redis | awk '{print $1}' | head -1)
if [ -n "$REDIS_CONTAINER" ]; then
echo "✅ Redis 容器运行中: $REDIS_CONTAINER"
# 测试 Redis 连接
if docker exec $REDIS_CONTAINER redis-cli ping 2>/dev/null | grep -q "PONG"; then
echo "✅ Redis 连接正常"
else
echo "❌ Redis 连接失败"
fi
else
echo "❌ Redis 容器未运行"
fi
# ==================== 4. 检查销售模块 API ====================
echo ""
echo "4⃣ 检查销售模块 API..."
TAILCHAT_URL="http://localhost:11000"
# 检查服务健康状态
if curl -s "$TAILCHAT_URL/health" | grep -q "ok"; then
echo "✅ Tailchat 服务健康"
else
echo "⚠️ Tailchat 服务未响应: $TAILCHAT_URL"
fi
# 测试邀请 API (需要 token)
# echo "测试邀请 API: POST $TAILCHAT_URL/api/plugin/com.msgbyte.saleschat/invite/create"
# ==================== 5. 检查用户表关联 ====================
echo ""
echo "5⃣ 检查用户表关联..."
if [ -n "$MONGO_CONTAINER" ]; then
# 检查 Tailchat 用户表
USER_COUNT=$(docker exec $MONGO_CONTAINER mongo tailchat --eval "db.users.count()" 2>/dev/null | tail -1)
if [[ "$USER_COUNT" =~ ^[0-9]+$ ]]; then
echo "✅ Tailchat 用户表存在,用户数: $USER_COUNT"
else
echo "⚠️ Tailchat 用户表不存在或为空"
fi
# 检查 sales_invites 是否引用了有效用户
if docker exec $MONGO_CONTAINER mongo tailchat --eval "db.sales_invites.findOne()" 2>/dev/null | grep -q "salesId"; then
echo "✅ sales_invites 表有数据且包含 salesId 字段"
else
echo "⚠️ sales_invites 表无数据或缺少 salesId 字段"
fi
fi
# ==================== 6. 检查插件加载状态 ====================
echo ""
echo "6⃣ 检查插件加载状态..."
PLUGIN_DIR="/Users/sion/Desktop/projects/tailchat-sales/server/plugins/com.msgbyte.saleschat"
if [ -d "$PLUGIN_DIR" ]; then
echo "✅ 销售插件目录存在"
echo " 路径: $PLUGIN_DIR"
# 检查关键文件
[ -f "$PLUGIN_DIR/services/index.ts" ] && echo " ✅ services/index.ts"
[ -f "$PLUGIN_DIR/services/invite.service.ts" ] && echo " ✅ invite.service.ts"
[ -f "$PLUGIN_DIR/services/stats.service.ts" ] && echo " ✅ stats.service.ts"
[ -f "$PLUGIN_DIR/services/admin.service.ts" ] && echo " ✅ admin.service.ts"
else
echo "❌ 销售插件目录不存在"
fi
echo ""
echo "================================"
echo "🏁 验证完成"