#!/bin/bash # 甘草 API 修复部署脚本 # 使用方法: ./deploy_gancao_fix.sh [server_user@server_ip] [project_path] set -e # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${GREEN}=== 甘草 API 修复部署脚本 ===${NC}\n" # 检查参数 if [ $# -lt 2 ]; then echo -e "${RED}错误:缺少参数${NC}" echo "使用方法: $0 [server_user@server_ip] [project_path]" echo "示例: $0 root@192.168.1.100 /www/wwwroot/your-project" exit 1 fi SERVER=$1 PROJECT_PATH=$2 echo -e "${YELLOW}服务器:${NC}$SERVER" echo -e "${YELLOW}项目路径:${NC}$PROJECT_PATH\n" # 确认 read -p "确认部署到以上服务器?(y/n) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "已取消" exit 0 fi echo -e "\n${GREEN}步骤 1: 上传修复文件${NC}" # 上传 PHP 文件 echo "上传 GancaoScmRecipelService.php..." scp server/app/common/service/gancao/GancaoScmRecipelService.php \ $SERVER:$PROJECT_PATH/server/app/common/service/gancao/ echo "上传 GancaoOpenApiTransport.php..." scp server/app/common/service/gancao/GancaoOpenApiTransport.php \ $SERVER:$PROJECT_PATH/server/app/common/service/gancao/ echo "上传 PrescriptionOrderLogic.php..." scp server/app/adminapi/logic/tcm/PrescriptionOrderLogic.php \ $SERVER:$PROJECT_PATH/server/app/adminapi/logic/tcm/ echo "上传 PrescriptionOrderController.php..." scp server/app/adminapi/controller/tcm/PrescriptionOrderController.php \ $SERVER:$PROJECT_PATH/server/app/adminapi/controller/tcm/ # 上传测试脚本 echo "上传测试脚本..." scp test_gancao_config.php $SERVER:$PROJECT_PATH/ scp test_gancao_ssl.php $SERVER:$PROJECT_PATH/ scp diagnose_gancao_payload.php $SERVER:$PROJECT_PATH/ echo -e "${GREEN}✓ 文件上传完成${NC}\n" echo -e "${GREEN}步骤 2: 在服务器上执行操作${NC}" ssh $SERVER << EOF set -e cd $PROJECT_PATH echo "检查文件..." ls -la server/app/common/service/gancao/GancaoScmRecipelService.php ls -la server/app/common/service/gancao/GancaoOpenApiTransport.php echo "" echo "清除缓存..." cd server php think clear || true rm -rf runtime/cache/* || true rm -rf runtime/temp/* || true cd .. echo "" echo "运行配置检查..." php test_gancao_config.php || true echo "" echo "运行 SSL 测试..." php test_gancao_ssl.php || true echo "" echo "重启服务..." sudo systemctl restart php-fpm || sudo systemctl restart php7.4-fpm || sudo systemctl restart php8.0-fpm || sudo systemctl restart php8.1-fpm || true sudo systemctl restart nginx || true echo "" echo "部署完成!" EOF echo -e "\n${GREEN}=== 部署完成 ===${NC}\n" echo -e "${YELLOW}下一步:${NC}" echo "1. 查看日志:" echo " ssh $SERVER 'tail -f $PROJECT_PATH/server/runtime/log/\$(date +%Y%m%d).log | grep -i gancao'" echo "" echo "2. 测试接口:" echo " curl -X POST https://your-domain.com/api/tcm.prescriptionOrder/submitGancaoRecipel \\" echo " -H 'Content-Type: application/json' \\" echo " -H 'token: your_token' \\" echo " -d '{\"id\": 订单ID}'" echo "" echo "3. 如果仍有问题,查看详细文档:" echo " cat GANCAO_FINAL_FIX.md"