kindergarten_java/start-all.sh
En 13fc0e720e refactor: 课程包统计与启动脚本优化
1. LessonStatus 枚举:code 值改为大写(与枚举名一致)
2. CoursePackageMapper:新增课程包统计方法
   - incrementUsageCount: 增加使用次数
   - updateTeacherCount: 更新教师数量(去重统计)
3. 启动脚本:端口调整为 8481(后端) 和 5174(前端)
2026-03-20 11:15:08 +08:00

134 lines
3.7 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 统一启动脚本 - 启动前后端服务
# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BACKEND_DIR="$SCRIPT_DIR/reading-platform-java"
FRONTEND_DIR="$SCRIPT_DIR/reading-platform-frontend"
echo "======================================"
echo " 幼儿阅读教学服务平台"
echo " 统一启动脚本"
echo "======================================"
echo ""
# 函数:检查端口是否被占用
check_port() {
local port=$1
local name=$2
if lsof -ti:$port > /dev/null 2>&1; then
echo "⚠️ 端口 $port 已被占用 ($name)"
read -p "是否停止并重启?(y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
lsof -ti:$port | xargs kill -9 2>/dev/null
echo "✅ 已停止占用端口 $port 的进程"
return 0
else
return 1
fi
fi
return 0
}
# 检查并停止占用端口的进程
check_port 8481 "后端"
if [ $? -eq 1 ]; then
echo "❌ 后端启动取消"
exit 1
fi
check_port 5174 "前端"
if [ $? -eq 1 ]; then
echo "❌ 前端启动取消"
exit 1
fi
# 启动后端
echo ""
echo "📦 [1/2] 启动后端服务 (Spring Boot)..."
cd "$BACKEND_DIR" || exit 1
echo "📂 后端目录:$(pwd)"
# 检查 JAVA_HOME 是否设置
if [ -z "$JAVA_HOME" ]; then
echo "⚠️ 未设置 JAVA_HOME尝试使用默认 JDK 17 路径..."
if [ -d "/f/Java/jdk-17" ]; then
export JAVA_HOME="/f/Java/jdk-17"
echo "✅ 设置 JAVA_HOME=$JAVA_HOME"
else
echo "⚠️ 请确保已安装 JDK 17 并设置 JAVA_HOME"
fi
fi
echo "☕ Java 版本:$(java -version 2>&1 | head -n 1)"
# 后台启动后端 (Maven)
nohup mvn spring-boot:run -Dspring-boot.run.forked > /tmp/reading-platform-java.log 2>&1 &
BACKEND_PID=$!
echo "✅ 后端启动成功 (PID: $BACKEND_PID)"
echo "📄 日志文件:/tmp/reading-platform-java.log"
# 等待后端启动
echo "⏳ 等待后端服务启动..."
for i in {1..60}; do
if curl -s http://localhost:8080/actuator/health > /dev/null 2>&1; then
echo "✅ 后端服务就绪"
break
fi
if [ $i -eq 60 ]; then
echo "❌ 后端服务启动超时"
echo "📄 请查看日志tail -f /tmp/reading-platform-java.log"
exit 1
fi
sleep 2
done
# 启动前端
echo ""
echo "📦 [2/2] 启动前端服务..."
cd "$FRONTEND_DIR" || exit 1
echo "📂 前端目录:$(pwd)"
if [ ! -d "node_modules" ]; then
echo "📦 正在安装前端依赖..."
npm install
fi
# 后台启动前端
nohup npm run dev > /tmp/reading-platform-frontend.log 2>&1 &
FRONTEND_PID=$!
echo "✅ 前端启动成功 (PID: $FRONTEND_PID)"
echo "📄 日志文件:/tmp/reading-platform-frontend.log"
# 等待前端启动
echo "⏳ 等待前端服务启动..."
for i in {1..30}; do
if curl -s http://localhost:5173 > /dev/null 2>&1; then
echo "✅ 前端服务就绪"
break
fi
if [ $i -eq 30 ]; then
echo "⚠️ 前端服务可能需要更多时间启动"
echo "📄 请查看日志tail -f /tmp/reading-platform-frontend.log"
break
fi
sleep 1
done
echo ""
echo "======================================"
echo " ✅ 所有服务启动成功!"
echo "======================================"
echo ""
echo "📍 后端 API: http://localhost:8080"
echo "📍 前端页面: http://localhost:5173"
echo "📍 API 文档: http://localhost:8080/api/v1"
echo ""
echo "📊 查看后端日志tail -f /tmp/reading-platform-java.log"
echo "📊 查看前端日志tail -f /tmp/reading-platform-frontend.log"
echo ""
echo "🛑 停止所有服务pkill -f 'spring-boot:run' && pkill -f 'vite'"
echo ""