pipeline {
    agent any
    
    environment {
        DEPLOY_DIR = '/opt/ruoyi-deploy'
        WEBHOOK_URL = '  https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b95a25f3-82fe-4dfd-abde-6a89e8a8de0a'
    }
    
    stages {
        stage('Checkout') {
            steps {
                echo '=== 阶段1: 拉取代码 ==='
                checkout scm
                sh 'git log --oneline -3'
            }
        }
        
        stage('Build') {
            steps {
                echo '=== 阶段2: Maven打包 ==='
                sh 'mvn clean package -DskipTests'
            }
        }
        
        stage('Upload to Nexus') {
            steps {
                echo '=== 阶段3: 上传制品到Nexus ==='
                nexusArtifactUploader(
                    nexusVersion: 'nexus3',
                    protocol: 'http',
                    nexusUrl: '192.168.182.100:8080',
                    groupId: 'com.ruoyi',
                    version: '1.0.0-SNAPSHOT',
                    repository: 'maven-snapshots',
                    credentialsId: 'nexus-credentials',
                    artifacts: [
                        [artifactId: 'ruoyi-admin',
                         classifier: '',
                         file: 'ruoyi-admin/target/ruoyi-admin.jar',
                         type: 'jar']
                    ]
                )
            }
        }
        
        stage('Deploy') {
            steps {
                echo '=== 阶段4: 部署应用 ==='
                sh 'chmod +x deploy.sh && ./deploy.sh'
            }
        }

        stage('Health Check') {
            steps {
                echo '=== 阶段5: 健康检查 ==='
                sh 'sleep 5'  // 等待服务启动
                sh 'curl -f http://192.168.182.100:9000 || exit 1'
                echo '健康检查通过！'
            }
        }
    }
    
    post {
        success {
            echo '部署成功！'
            sh '''
                            curl -X POST -H "Content-Type: application/json" \
                              -d '{
                                "msgtype": "markdown",
                                "markdown": {
                                  "content": "**若依部署通知**\\n>状态：<font color=\\"info\\">✅ 成功</font>\\n>构建号：#'"$BUILD_NUMBER"'\\n>提交：'"$GIT_COMMIT"'\\n>时间：'"$(date '+%Y-%m-%d %H:%M:%S')"'"
                                }
                              }' \
                              $WEBHOOK_URL
                        '''
        }
        failure {
            echo '部署失败！'
            sh '''
                            curl -X POST -H "Content-Type: application/json" \
                              -d '{
                                "msgtype": "markdown",
                                "markdown": {
                                  "content": "**若依部署通知**\\n>状态：<font color=\\"warning\\">❌ 失败</font>\\n>构建号：#'"$BUILD_NUMBER"'\\n>提交：'"$GIT_COMMIT"'\\n>时间：'"$(date '+%Y-%m-%d %H:%M:%S')"'\\n>请检查Jenkins控制台日志"
                                }
                              }' \
                              $WEBHOOK_URL
                        '''
        }
    }
}
