客户转接系统

This commit is contained in:
yml2213
2026-05-27 07:58:21 +08:00
parent 0d9fec01f3
commit 80c7bb18bb
8 changed files with 387 additions and 35 deletions
+100 -8
View File
@@ -10,17 +10,92 @@ BACKEND_PID=""
FRONTEND_PID=""
CLEANED_UP=0
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[1;34m'
NC='\033[0m'
log() {
printf "\033[1;34m[dev]\033[0m %s\n" "$*"
printf "${BLUE}[dev]${NC} %s\n" "$*"
}
log_success() {
printf "${GREEN}[dev]${NC} %s\n" "$*"
}
log_warn() {
printf "${YELLOW}[dev]${NC} %s\n" "$*"
}
log_error() {
printf "${RED}[dev]${NC} %s\n" "$*" >&2
}
need_cmd() {
if ! command -v "$1" >/dev/null 2>&1; then
printf "缺少命令:%s\n" "$1" >&2
log_error "缺少命令:$1"
exit 1
fi
}
show_help() {
cat << EOF
用法: ./scripts/dev.sh [选项]
选项:
--reset-db 重置数据库(删除并重建)
--seed-only 仅重新加载种子数据
--no-frontend 不启动前端
--no-backend 不启动后端
-h, --help 显示帮助信息
环境变量:
DEV_RESET_DB=1 等同于 --reset-db
示例:
./scripts/dev.sh # 正常启动
./scripts/dev.sh --reset-db # 重置数据库后启动
./scripts/dev.sh --seed-only # 重新加载种子数据
EOF
exit 0
}
# 参数解析
RESET_DB="${DEV_RESET_DB:-0}"
SEED_ONLY=0
NO_FRONTEND=0
NO_BACKEND=0
while [[ $# -gt 0 ]]; do
case "$1" in
--reset-db)
RESET_DB=1
shift
;;
--seed-only)
SEED_ONLY=1
shift
;;
--no-frontend)
NO_FRONTEND=1
shift
;;
--no-backend)
NO_BACKEND=1
shift
;;
-h|--help)
show_help
;;
*)
log_error "未知选项: $1"
show_help
;;
esac
done
cleanup() {
if [[ "${CLEANED_UP}" == "1" ]]; then
return
@@ -57,8 +132,8 @@ wait_container_healthy() {
}
init_database() {
if [[ "${DEV_RESET_DB:-0}" == "1" ]]; then
log "DEV_RESET_DB=1,重建开发数据库..."
if [[ "${RESET_DB}" == "1" ]]; then
log_warn "重置数据库..."
docker exec hfb-mysql mysql -uroot -prootsecret -e \
"DROP DATABASE IF EXISTS hfb_sys; CREATE DATABASE hfb_sys CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
fi
@@ -76,8 +151,13 @@ init_database() {
log "执行迁移:$(basename "${migration}")"
docker exec -i hfb-mysql mysql -uhfb -psecret --default-character-set=utf8mb4 hfb_sys < "${migration}"
done
log_success "数据库初始化完成"
elif [[ "${SEED_ONLY}" == "1" ]]; then
log "重新加载种子数据..."
docker exec -i hfb-mysql mysql -uhfb -psecret --default-character-set=utf8mb4 hfb_sys < "${ROOT_DIR}/backend/migrations/000002_seed.sql"
log_success "种子数据加载完成"
else
log "数据库已存在,跳过迁移(使用 DEV_RESET_DB=1 重建)"
log "数据库已存在,跳过迁移(使用 --reset-db 重建)"
fi
}
@@ -156,10 +236,22 @@ main() {
wait_container_healthy hfb-minio "MinIO"
init_database
start_backend
start_frontend
log "开发环境已启动"
# 仅加载种子数据模式
if [[ "${SEED_ONLY}" == "1" ]]; then
log_success "种子数据加载完成,退出"
exit 0
fi
if [[ "${NO_BACKEND}" == "0" ]]; then
start_backend
fi
if [[ "${NO_FRONTEND}" == "0" ]]; then
start_frontend
fi
log_success "开发环境已启动"
log "前台:http://localhost:5173"
log "后台:http://localhost:5173/admin/loginadmin / admin123456"
log "按 Ctrl+C 停止前后端;Docker 依赖会保留运行"