Files
chat/tests/test_sales_module.sh
2026-04-25 16:36:34 +08:00

124 lines
4.4 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 "🏁 验证完成"