#!/bin/bash # 批量修改API请求方法签名,添加ctx参数 FILE="app/main/api/internal/service/apirequestService.go" # 需要修改的方法列表(不包括ProcessYYSYBE08Request和ProcessFLXG0V4BRequest,因为已经修改过了) METHODS=( "ProcessPersonEnterpriseProRequest" "ProcessFLXG0687Request" "ProcessFLXG3D56Request" "ProcessIVYZ5733Request" "ProcessIVYZ9A2BRequest" "ProcessJRZQ0A03Request" "ProcessJRZQ8203Request" "ProcessJRZQ4AA8Request" "ProcessQYGL8271Request" "ProcessQYGL6F2DRequest" "ProcessQCXG7A2BRequest" "ProcessYYSY09CDRequest" "ProcessBehaviorRiskScanRequest" "ProcessDWBG8B4DRequest" "ProcessDWBG6A2CRequest" "ProcessJRZQ4B6CRequest" "ProcessJRZQ09J8Request" "ProcessJRZQ5E9FRequest" "ProcessQYGL3F8ERequest" "ProcessIVYZ81NCRequest" "ProcessIVYZ7F3ARequest" "ProcessDWBG7F3ARequest" "ProcessJRZQ8A2DRequest" "ProcessYYSY8B1CRequest" "ProcessYYSY7D3ERequest" "ProcessFLXG7E8FRequest" "ProcessIVYZ8I9JRequest" "ProcessJRZQ7F1ARequest" "ProcessIVYZ3P9MRequest" "ProcessJRZQ6F2ARequest" ) echo "开始批量修改方法签名..." echo "" # 备份文件 if [ ! -f "$FILE.backup" ]; then cp "$FILE" "$FILE.backup" echo "✓ 已备份文件到: $FILE.backup" echo "" else echo "⚠ 备份文件已存在,跳过备份" echo "" fi # 逐个修改方法 count=0 for method in "${METHODS[@]}"; do # 查找方法定义 old_pattern="func (a \*ApiRequestService) $method(params \[\]byte\) \(\[\]byte, error\)" new_pattern="func (a *ApiRequestService) $method(ctx context.Context, params \[\]byte\) \(\[\]byte, error\)" # 检查文件中是否包含这个方法签名 if grep -q "$method" "$FILE"; then # 使用sed替换 sed -i "s/$old_pattern/$new_pattern/g" "$FILE" echo "✓ 已修改: $method" ((count++)) else echo "✗ 未找到: $method" fi done echo "" echo "=========================================" echo "修改完成!" echo "=========================================" echo "共修改了 $count 个方法" echo "" echo "下一步:" echo "1. 检查修改后的文件" echo "2. 编译项目验证是否有错误" echo "3. 运行测试" echo "========================================="