QUICK_DEPLOY.sh
4.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#!/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 ""