Files
zyt/install_video_call.sh
2026-03-04 15:32:30 +08:00

139 lines
4.1 KiB
Bash

#!/bin/bash
# 音视频通话功能安装脚本
# 使用方法: bash install_video_call.sh
echo "=========================================="
echo " 音视频通话功能安装脚本"
echo "=========================================="
echo ""
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 检查是否在项目根目录
if [ ! -d "admin" ] || [ ! -d "server" ]; then
echo -e "${RED}错误: 请在项目根目录执行此脚本${NC}"
exit 1
fi
echo -e "${GREEN}步骤 1/5: 安装前端依赖${NC}"
cd admin
if [ -f "package.json" ]; then
echo "正在安装 @tencentcloud/call-uikit-vue..."
npm install @tencentcloud/call-uikit-vue
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ 前端依赖安装成功${NC}"
else
echo -e "${RED}✗ 前端依赖安装失败${NC}"
exit 1
fi
else
echo -e "${RED}✗ 未找到 package.json 文件${NC}"
exit 1
fi
cd ..
echo ""
echo -e "${GREEN}步骤 2/5: 创建数据库表${NC}"
echo -e "${YELLOW}请手动执行以下命令创建数据库表:${NC}"
echo "mysql -u root -p your_database < server/sql/tcm_call_record.sql"
echo ""
read -p "按回车键继续..."
echo ""
echo -e "${GREEN}步骤 3/5: 配置腾讯云 TRTC${NC}"
echo ""
echo "请访问腾讯云控制台获取配置信息:"
echo "https://console.cloud.tencent.com/trtc"
echo ""
read -p "请输入 SDKAppID: " SDK_APP_ID
read -p "请输入 SecretKey: " SECRET_KEY
# 创建或更新 .env 文件
ENV_FILE="server/.env"
if [ -f "$ENV_FILE" ]; then
# 检查是否已存在配置
if grep -q "TRTC_SDK_APP_ID" "$ENV_FILE"; then
echo -e "${YELLOW}检测到已存在 TRTC 配置,正在更新...${NC}"
sed -i "s/TRTC_SDK_APP_ID=.*/TRTC_SDK_APP_ID=$SDK_APP_ID/" "$ENV_FILE"
sed -i "s/TRTC_SECRET_KEY=.*/TRTC_SECRET_KEY=$SECRET_KEY/" "$ENV_FILE"
sed -i "s/TRTC_ENABLE=.*/TRTC_ENABLE=true/" "$ENV_FILE"
else
echo -e "${GREEN}正在添加 TRTC 配置...${NC}"
echo "" >> "$ENV_FILE"
echo "# 腾讯云实时音视频(TRTC)配置" >> "$ENV_FILE"
echo "TRTC_SDK_APP_ID=$SDK_APP_ID" >> "$ENV_FILE"
echo "TRTC_SECRET_KEY=$SECRET_KEY" >> "$ENV_FILE"
echo "TRTC_ENABLE=true" >> "$ENV_FILE"
fi
echo -e "${GREEN}✓ 配置文件更新成功${NC}"
else
echo -e "${RED}✗ 未找到 .env 文件${NC}"
exit 1
fi
echo ""
echo -e "${GREEN}步骤 4/5: 验证文件完整性${NC}"
# 检查关键文件是否存在
FILES=(
"admin/src/components/video-call/index.vue"
"admin/src/api/tcm.ts"
"server/app/adminapi/controller/tcm/DiagnosisController.php"
"server/app/adminapi/logic/tcm/DiagnosisLogic.php"
"server/app/common/model/tcm/CallRecord.php"
"server/config/trtc.php"
"server/sql/tcm_call_record.sql"
)
ALL_EXISTS=true
for file in "${FILES[@]}"; do
if [ -f "$file" ]; then
echo -e "${GREEN}${NC} $file"
else
echo -e "${RED}${NC} $file ${RED}(缺失)${NC}"
ALL_EXISTS=false
fi
done
if [ "$ALL_EXISTS" = false ]; then
echo -e "${RED}部分文件缺失,请检查${NC}"
exit 1
fi
echo ""
echo -e "${GREEN}步骤 5/5: 构建前端项目${NC}"
read -p "是否立即构建前端项目? (y/n): " BUILD_CHOICE
if [ "$BUILD_CHOICE" = "y" ] || [ "$BUILD_CHOICE" = "Y" ]; then
cd admin
npm run build
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ 前端构建成功${NC}"
else
echo -e "${RED}✗ 前端构建失败${NC}"
fi
cd ..
fi
echo ""
echo "=========================================="
echo -e "${GREEN}安装完成!${NC}"
echo "=========================================="
echo ""
echo "后续步骤:"
echo "1. 确保已执行数据库迁移"
echo "2. 在后台管理系统中配置权限: tcm.diagnosis/video-call"
echo "3. 重启后端服务"
echo "4. 访问诊断列表页面测试视频通话功能"
echo ""
echo "详细文档请查看:"
echo "- TRTC_SETUP_GUIDE.md (完整配置指南)"
echo "- admin/README_VIDEO_CALL.md (功能说明)"
echo ""
echo -e "${YELLOW}注意: 请确保使用 HTTPS 协议或 localhost 访问${NC}"
echo ""