新增
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ============================================
|
||||
# 物流追踪系统安装脚本
|
||||
# ============================================
|
||||
|
||||
echo "=========================================="
|
||||
echo "物流追踪系统安装"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# 检查MySQL连接信息
|
||||
echo "请输入MySQL连接信息:"
|
||||
read -p "数据库主机 [localhost]: " DB_HOST
|
||||
DB_HOST=${DB_HOST:-localhost}
|
||||
|
||||
read -p "数据库端口 [3306]: " DB_PORT
|
||||
DB_PORT=${DB_PORT:-3306}
|
||||
|
||||
read -p "数据库名称: " DB_NAME
|
||||
read -p "数据库用户名: " DB_USER
|
||||
read -sp "数据库密码: " DB_PASS
|
||||
echo ""
|
||||
|
||||
# 测试数据库连接
|
||||
echo ""
|
||||
echo "测试数据库连接..."
|
||||
mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" -e "SELECT 1" > /dev/null 2>&1
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "❌ 数据库连接失败,请检查连接信息"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ 数据库连接成功"
|
||||
|
||||
# 执行SQL脚本
|
||||
echo ""
|
||||
echo "创建数据库表..."
|
||||
mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" < server/database/migrations/create_express_tracking_tables.sql
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ 数据库表创建成功"
|
||||
else
|
||||
echo "❌ 数据库表创建失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 注册定时任务命令
|
||||
echo ""
|
||||
echo "配置定时任务..."
|
||||
echo ""
|
||||
echo "请手动添加以下内容到 server/config/console.php 的 commands 数组中:"
|
||||
echo ""
|
||||
echo "'express:auto-update' => \\app\\command\\ExpressAutoUpdate::class,"
|
||||
echo ""
|
||||
|
||||
# 测试命令
|
||||
echo "测试定时任务命令..."
|
||||
cd server
|
||||
php think express:auto-update
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ 定时任务命令测试成功"
|
||||
else
|
||||
echo "❌ 定时任务命令测试失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 配置crontab
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "配置crontab定时任务"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "请选择更新频率:"
|
||||
echo "1) 每5分钟(高频,适合重要业务)"
|
||||
echo "2) 每10分钟(推荐)"
|
||||
echo "3) 每30分钟(低频,节省费用)"
|
||||
echo "4) 手动配置"
|
||||
read -p "请选择 [2]: " FREQ_CHOICE
|
||||
FREQ_CHOICE=${FREQ_CHOICE:-2}
|
||||
|
||||
PROJECT_PATH=$(pwd)
|
||||
|
||||
case $FREQ_CHOICE in
|
||||
1)
|
||||
CRON_EXPR="*/5 * * * *"
|
||||
;;
|
||||
2)
|
||||
CRON_EXPR="*/10 * * * *"
|
||||
;;
|
||||
3)
|
||||
CRON_EXPR="*/30 * * * *"
|
||||
;;
|
||||
4)
|
||||
echo "请手动配置crontab"
|
||||
echo "执行: crontab -e"
|
||||
echo "添加: */10 * * * * cd $PROJECT_PATH/server && php think express:auto-update >> /dev/null 2>&1"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
CRON_EXPR="*/10 * * * *"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo ""
|
||||
echo "将添加以下crontab任务:"
|
||||
echo "$CRON_EXPR cd $PROJECT_PATH/server && php think express:auto-update >> /dev/null 2>&1"
|
||||
echo ""
|
||||
read -p "是否自动添加到crontab? (y/n) [y]: " ADD_CRON
|
||||
ADD_CRON=${ADD_CRON:-y}
|
||||
|
||||
if [ "$ADD_CRON" = "y" ]; then
|
||||
# 检查是否已存在
|
||||
crontab -l 2>/dev/null | grep -q "express:auto-update"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "⚠️ crontab中已存在相关任务,跳过添加"
|
||||
else
|
||||
# 添加到crontab
|
||||
(crontab -l 2>/dev/null; echo "$CRON_EXPR cd $PROJECT_PATH/server && php think express:auto-update >> /dev/null 2>&1") | crontab -
|
||||
echo "✅ crontab任务添加成功"
|
||||
fi
|
||||
else
|
||||
echo "请手动添加crontab任务:"
|
||||
echo "crontab -e"
|
||||
echo "添加: $CRON_EXPR cd $PROJECT_PATH/server && php think express:auto-update >> /dev/null 2>&1"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "安装完成!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "下一步:"
|
||||
echo "1. 确认快递100已充值"
|
||||
echo "2. 在订单发货时调用 ExpressTrackingService::createOrUpdate()"
|
||||
echo "3. 查看文档: EXPRESS_TRACKING_SYSTEM.md"
|
||||
echo ""
|
||||
echo "测试命令:"
|
||||
echo "cd server && php think express:auto-update"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user