#!/bin/bash # 项目文件清理脚本 # 作者: emotion-museum # 日期: 2025-07-21 set -e # 颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' log_info() { echo -e "${BLUE}[INFO]${NC} $1" } log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1" } log_warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } log_error() { echo -e "${RED}[ERROR]${NC} $1" } # 备份重要文件 backup_important_files() { log_info "备份重要文件..." mkdir -p .backup/$(date +%Y%m%d_%H%M%S) BACKUP_DIR=".backup/$(date +%Y%m%d_%H%M%S)" # 备份重要的配置文件 cp -r backend/emotion-*/src/main/resources/ "$BACKUP_DIR/resources/" 2>/dev/null || true cp docker-compose*.yml "$BACKUP_DIR/" 2>/dev/null || true cp *.md "$BACKUP_DIR/" 2>/dev/null || true log_success "重要文件已备份到: $BACKUP_DIR" } # 删除重复和过时的文件 cleanup_duplicate_files() { log_info "清理重复和过时的文件..." # 删除重复的部署脚本 rm -f deploy-aliyun*.sh deploy-custom.sh deploy-existing-docker.sh deploy-final.sh deploy.sh rm -f manage*.sh server-install.sh quick-deploy.sh # 删除重复的文档 rm -f CLAUDE.md CUSTOM_DEPLOYMENT.md DEPLOY.md DEPLOYMENT.md DEPLOYMENT_GUIDE.md rm -f SERVER_DEPLOYMENT_CHECKLIST.md # 删除旧的docker-compose文件,保留最新的 rm -f docker-compose.custom.yml # 删除旧的web目录 rm -rf web-bak # 删除旧的backend目录 rm -rf emotion-museum-backend # 删除iOS项目(如果不需要) rm -rf EmotionMuseum # 删除构建产物目录 rm -rf build-output packages log_success "重复文件清理完成" } # 清理backend目录 cleanup_backend() { log_info "清理backend目录..." cd backend # 删除重复的脚本 rm -f deploy-test.sh dev-auto.sh dev-start.sh start-services.sh stop-services.sh rm -f test-auth.sh update-nacos*.sh verify-*.sh # 删除重复的文档 rm -f README-*.md Nacos配置*.md emotion-websocket-*.md 后端模块验证报告.md rm -f 数据库*.md 认证模块重构总结.md 项目文件清理总结.md # 删除日志目录 rm -rf logs # 删除SQL文件(保留在统一位置) rm -f verify-database-script.sql cd .. log_success "backend目录清理完成" } # 整理文档结构 organize_docs() { log_info "整理文档结构..." # 创建docs目录 mkdir -p docs/{deployment,architecture,database} # 移动部署相关文档 mv backend/Jenkins-Pipeline配置.md docs/deployment/ 2>/dev/null || true mv backend/Jenkins部署说明.md docs/deployment/ 2>/dev/null || true mv 部署脚本使用说明.md docs/deployment/ 2>/dev/null || true # 移动架构相关文档 mv "Spring Cloud Alibaba微服务架构设计.md" docs/architecture/ 2>/dev/null || true mv 技术架构完善建议.md docs/architecture/ 2>/dev/null || true # 移动数据库相关文档 mv backend/sql docs/database/ 2>/dev/null || true # 保留核心文档在根目录 # README.md, MVP功能需求文档.md, 情绪博物馆*.md 等 log_success "文档结构整理完成" } # 优化配置文件 optimize_configs() { log_info "优化配置文件..." # 创建统一的配置目录 mkdir -p configs/{nginx,docker,env} # 移动nginx配置 mv web-flowith/nginx.conf configs/nginx/ 2>/dev/null || true mv deploy/nginx/* configs/nginx/ 2>/dev/null || true # 移动docker配置 mv docker-compose*.yml configs/docker/ 2>/dev/null || true # 删除空的deploy目录 rm -rf deploy log_success "配置文件优化完成" } # 创建新的项目结构说明 create_structure_doc() { log_info "创建项目结构说明..." cat > PROJECT_STRUCTURE.md << 'EOF' # 情感博物馆项目结构 ## 📁 目录结构 ``` emotion-museum/ ├── 📁 backend/ # 后端微服务 │ ├── 📁 emotion-gateway/ # API网关服务 │ ├── 📁 emotion-user/ # 用户管理服务 │ ├── 📁 emotion-ai/ # AI聊天服务 │ ├── 📁 emotion-auth/ # 认证服务 │ ├── 📁 emotion-record/ # 记录管理服务 │ ├── 📁 emotion-growth/ # 成长跟踪服务 │ ├── 📁 emotion-explore/ # 探索服务 │ ├── 📁 emotion-reward/ # 奖励服务 │ ├── 📁 emotion-websocket/ # WebSocket服务 │ ├── 📁 emotion-stats/ # 统计服务 │ ├── 📁 emotion-common/ # 公共模块 │ ├── 🔧 build-all.sh # 构建脚本 │ ├── 🔧 deploy-all.sh # 综合部署脚本 │ ├── 🔧 deploy-remote.sh # 远程部署脚本 │ └── 📄 pom.xml # Maven父项目配置 ├── 📁 web-flowith/ # 前端Vue项目 │ ├── 📁 src/ # 源代码 │ ├── 📁 public/ # 静态资源 │ ├── 🔧 deploy.sh # 前端部署脚本 │ └── 📄 package.json # 前端依赖配置 ├── 📁 docs/ # 项目文档 │ ├── 📁 deployment/ # 部署相关文档 │ ├── 📁 architecture/ # 架构设计文档 │ └── 📁 database/ # 数据库相关文档 ├── 📁 configs/ # 配置文件 │ ├── 📁 nginx/ # Nginx配置 │ ├── 📁 docker/ # Docker配置 │ └── 📁 env/ # 环境配置 ├── 🔧 one-click-deploy.sh # 一键部署脚本 ├── 🔧 restart-middleware.sh # 中间件重启脚本 ├── 🔧 cleanup-project.sh # 项目清理脚本 └── 📄 README.md # 项目说明 ``` ## 🚀 快速开始 ### 1. 一键部署 ```bash # 完整部署(前端+后端) ./one-click-deploy.sh # 仅部署后端 ./one-click-deploy.sh backend # 仅部署前端 ./one-click-deploy.sh frontend # 健康检查 ./one-click-deploy.sh check ``` ### 2. 中间件管理 ```bash # 重启中间件(MySQL, Redis, Nacos) ./restart-middleware.sh ``` ### 3. 分步部署 ```bash # 构建后端 cd backend && ./build-all.sh # 部署后端到远程 cd backend && ./deploy-remote.sh # 部署前端 cd web-flowith && ./deploy.sh ``` ## 📋 服务端口 | 服务 | 端口 | 描述 | |------|------|------| | emotion-gateway | 19000 | API网关 | | emotion-user | 19001 | 用户服务 | | emotion-ai | 19002 | AI服务 | | emotion-record | 19003 | 记录服务 | | emotion-growth | 19004 | 成长服务 | | emotion-explore | 19005 | 探索服务 | | emotion-reward | 19006 | 奖励服务 | | emotion-websocket | 19007 | WebSocket服务 | | emotion-auth | 19008 | 认证服务 | | emotion-stats | 19009 | 统计服务 | ## 🔧 中间件端口 | 服务 | 端口 | 描述 | |------|------|------| | MySQL | 3306 | 数据库 | | Redis | 6379 | 缓存 | | Nacos | 8848 | 注册中心 | ## 📖 文档链接 - [部署指南](docs/deployment/) - [架构设计](docs/architecture/) - [数据库设计](docs/database/) EOF log_success "项目结构说明创建完成" } # 主函数 main() { log_info "🧹 开始项目文件清理和整理..." # 确认操作 echo "⚠️ 此操作将删除重复和过时的文件,是否继续?(y/N)" read -r confirm if [[ ! "$confirm" =~ ^[Yy]$ ]]; then log_warning "操作已取消" exit 0 fi backup_important_files cleanup_duplicate_files cleanup_backend organize_docs optimize_configs create_structure_doc log_success "🎉 项目清理和整理完成!" echo "" echo "📋 清理总结:" echo " ✅ 删除了重复的部署脚本" echo " ✅ 删除了过时的文档文件" echo " ✅ 整理了文档结构到docs目录" echo " ✅ 优化了配置文件到configs目录" echo " ✅ 创建了PROJECT_STRUCTURE.md" echo "" echo "📁 新的项目结构请查看: PROJECT_STRUCTURE.md" } # 执行主函数 main "$@"