139 lines
4.1 KiB
Bash
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 ""
|