#!/bin/bash # 集成CRM应用构建脚本 set -e APP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" MODULES_DIR="$HOME/repos" echo "🚀 构建集成CRM应用在: $APP_DIR" # 创建必要的目录 mkdir -p "$APP_DIR/wwwroot/styles" mkdir -p "$APP_DIR/wwwroot/scripts" # 步骤1: 验证所有必需模块是否存在 REQUIRED_MODULES=( "appbase" "rbac" "customer_management" "opportunity_management" "contract_management" "accounting" "workflow_approval" "unified_dashboard" ) echo "🔍 验证必需模块..." for module in "${REQUIRED_MODULES[@]}"; do if [ ! -d "$MODULES_DIR/$module" ]; then echo "❌ 错误: 模块 $module 不存在!" exit 1 fi echo "✅ 模块 $module 已找到" done # 步骤2: 运行各模块的构建脚本(如果存在) echo "🔨 构建各个模块..." for module in "${REQUIRED_MODULES[@]}"; do if [ -f "$MODULES_DIR/$module/build.sh" ]; then echo "执行 $module 构建脚本..." cd "$MODULES_DIR/$module" && ./build.sh fi done # 步骤3: 复制所有模块的wwwroot内容到主应用 echo "📁 复制模块资源..." for module in "${REQUIRED_MODULES[@]}"; do if [ -d "$MODULES_DIR/$module/wwwroot" ]; then echo "复制 $module 资源..." cp -r "$MODULES_DIR/$module/wwwroot/"* "$APP_DIR/wwwroot/" 2>/dev/null || true fi done # 步骤4: 生成数据库DDL脚本 echo "📊 生成数据库模式..." DDL_FILES=() for module in "${REQUIRED_MODULES[@]}"; do if [ -f "$MODULES_DIR/$module/mysql.ddl.sql" ] && [ -s "$MODULES_DIR/$module/mysql.ddl.sql" ]; then DDL_FILES+=("$MODULES_DIR/$module/mysql.ddl.sql") fi done if [ ${#DDL_FILES[@]} -gt 0 ]; then echo "合并数据库DDL脚本..." { echo "-- 集成CRM应用数据库模式" echo "-- 生成时间: $(date)" echo "" for ddl_file in "${DDL_FILES[@]}"; do echo "-- 来源: $(basename "$ddl_file")" cat "$ddl_file" echo "" done } > "$APP_DIR/integrated_crm_app_schema.sql" echo "✅ 数据库模式已生成: integrated_crm_app_schema.sql" else echo "⚠️ 警告: 未找到任何DDL文件" fi # 步骤5: 创建符号链接(如果使用AhServer) echo "🔗 创建符号链接..." if command -v ahserver &> /dev/null; then echo "AhServer可用,创建符号链接..." # 这里会根据实际部署环境创建适当的链接 fi # 步骤6: 验证集成 echo "🧪 验证模块加载..." cd "$APP_DIR" && python3 -c " import sys sys.path.insert(0, '.') from integrated_crm_app.init import initialize_crm_application try: modules = initialize_crm_application() print('✅ 所有模块加载成功!') except Exception as e: print(f'❌ 模块加载失败: {e}') sys.exit(1) " echo "" echo "🎉 集成CRM应用构建完成!" echo "" echo "📋 下一步操作:" echo "1. 执行数据库脚本: mysql -u user -p database < integrated_crm_app_schema.sql" echo "2. 启动应用服务器: ahserver --port 8080 --root wwwroot/" echo "3. 访问登录页面: http://localhost:8080/main/login.ui" echo ""