#!/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 "🏁 验证完成"