QUICK_DEPLOY.sh 4.15 KB
#!/bin/bash

# 色彩定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color

echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}  库存过滤修复 - 快速部署脚本${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""

# 项目根目录
PROJECT_ROOT="/Users/hexiaodong/Desktop/git/erp2025/Antis.Erp.Plat"

# 后端编译输出目录
BACKEND_BUILD_DIR="$PROJECT_ROOT/netcore/src/Application/NCC.API/bin/Release/net6.0"
# 前端编译输出目录
FRONTEND_BUILD_DIR="$PROJECT_ROOT/antis-ncc-admin/dist"

echo -e "${YELLOW}📦 检查编译输出文件...${NC}"
echo ""

# 检查后端编译输出
if [ -d "$BACKEND_BUILD_DIR" ]; then
    echo -e "${GREEN}✓ 后端编译输出目录存在${NC}"
    echo "  路径: $BACKEND_BUILD_DIR"
    DLL_COUNT=$(find "$BACKEND_BUILD_DIR" -name "*.dll" | wc -l)
    echo "  DLL 文件数: $DLL_COUNT"
else
    echo -e "${RED}✗ 后端编译输出目录不存在${NC}"
    exit 1
fi

echo ""

# 检查前端编译输出
if [ -d "$FRONTEND_BUILD_DIR" ]; then
    echo -e "${GREEN}✓ 前端编译输出目录存在${NC}"
    echo "  路径: $FRONTEND_BUILD_DIR"
    HTML_FILE="$FRONTEND_BUILD_DIR/index.html"
    if [ -f "$HTML_FILE" ]; then
        FILE_SIZE=$(ls -lh "$HTML_FILE" | awk '{print $5}')
        echo "  index.html 文件大小: $FILE_SIZE"
    fi
else
    echo -e "${RED}✗ 前端编译输出目录不存在${NC}"
    exit 1
fi

echo ""
echo -e "${YELLOW}📋 请输入部署路径${NC}"
echo ""

# 获取后端部署目录
read -p "后端部署目录 (API DLL 位置) [按Enter使用默认]: " BACKEND_DEPLOY_DIR
BACKEND_DEPLOY_DIR=${BACKEND_DEPLOY_DIR:-"/opt/ncc-api/bin"}

# 获取前端部署目录
read -p "前端部署目录 (Web 文件位置) [按Enter使用默认]: " FRONTEND_DEPLOY_DIR
FRONTEND_DEPLOY_DIR=${FRONTEND_DEPLOY_DIR:-"/var/www/html/admin"}

echo ""
echo -e "${YELLOW}⚙️ 部署配置:${NC}"
echo ""
echo "后端:"
echo "  来源: $BACKEND_BUILD_DIR"
echo "  目标: $BACKEND_DEPLOY_DIR"
echo ""
echo "前端:"
echo "  来源: $FRONTEND_BUILD_DIR"
echo "  目标: $FRONTEND_DEPLOY_DIR"
echo ""

# 确认部署
read -p "确认部署? (y/n): " -n 1 -r
echo ""
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
    echo -e "${YELLOW}⚠️ 部署已取消${NC}"
    exit 0
fi

echo ""
echo -e "${GREEN}🚀 开始部署...${NC}"
echo ""

# 部署后端
if [ -d "$BACKEND_DEPLOY_DIR" ]; then
    echo -e "${YELLOW}备份后端文件...${NC}"
    BACKUP_DIR="${BACKEND_DEPLOY_DIR}.backup.$(date +%Y%m%d_%H%M%S)"
    cp -r "$BACKEND_DEPLOY_DIR" "$BACKUP_DIR"
    echo -e "${GREEN}✓ 备份完成: $BACKUP_DIR${NC}"
    
    echo -e "${YELLOW}复制后端文件...${NC}"
    cp -r "$BACKEND_BUILD_DIR"/* "$BACKEND_DEPLOY_DIR/"
    echo -e "${GREEN}✓ 后端文件复制完成${NC}"
else
    echo -e "${RED}✗ 后端部署目录不存在: $BACKEND_DEPLOY_DIR${NC}"
fi

echo ""

# 部署前端
if [ -d "$FRONTEND_DEPLOY_DIR" ]; then
    echo -e "${YELLOW}备份前端文件...${NC}"
    BACKUP_DIR="${FRONTEND_DEPLOY_DIR}.backup.$(date +%Y%m%d_%H%M%S)"
    cp -r "$FRONTEND_DEPLOY_DIR" "$BACKUP_DIR"
    echo -e "${GREEN}✓ 备份完成: $BACKUP_DIR${NC}"
    
    echo -e "${YELLOW}复制前端文件...${NC}"
    cp -r "$FRONTEND_BUILD_DIR"/* "$FRONTEND_DEPLOY_DIR/"
    echo -e "${GREEN}✓ 前端文件复制完成${NC}"
else
    echo -e "${YELLOW}⚠️ 前端部署目录不存在,创建中...${NC}"
    mkdir -p "$FRONTEND_DEPLOY_DIR"
    cp -r "$FRONTEND_BUILD_DIR"/* "$FRONTEND_DEPLOY_DIR/"
    echo -e "${GREEN}✓ 前端目录已创建并复制文件${NC}"
fi

echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}  ✓ 部署完成!${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
echo -e "${YELLOW}📌 后续步骤:${NC}"
echo ""
echo "1. 重启后端 API 服务"
echo "   - 停止 NCC.API"
echo "   - 启动 NCC.API"
echo ""
echo "2. 清除浏览器缓存 (Ctrl+Shift+Delete)"
echo ""
echo "3. 验证功能"
echo "   - 登录收银台"
echo "   - 搜索商品"
echo "   - 检查库存显示是否正确"
echo ""
echo -e "${YELLOW}📄 查看详细部署指南:${NC}"
echo "   $PROJECT_ROOT/DEPLOYMENT_GUIDE.md"
echo ""