#!/bin/bash

echo "=== 修复DateUtil与LocalDateTime的兼容性问题 ==="
echo

# 查找所有使用DateUtil.date()的文件
files=$(find src/main/java -name "*.java" -exec grep -l "DateUtil.date()" {} \;)

echo "发现以下文件使用了DateUtil.date()："
for file in $files; do
    echo "  - $file"
done

echo
echo "开始修复..."

for file in $files; do
    echo "处理文件: $file"
    
    # 检查文件是否导入了LocalDateTime
    if grep -q "import java.time.LocalDateTime" "$file"; then
        echo "  发现LocalDateTime导入，检查是否需要修复..."
        
        # 查找可能的问题模式
        if grep -q "\.set.*Time(DateUtil\.date())" "$file"; then
            echo "  发现setXxxTime(DateUtil.date())模式，需要修复"
            # 替换setXxxTime(DateUtil.date())为setXxxTime(LocalDateTime.now())
            sed -i '' 's/\.set\([^(]*Time\)(DateUtil\.date())/\.set\1(LocalDateTime.now())/g' "$file"
            echo "  ✅ 已修复setXxxTime方法调用"
        fi
        
        if grep -q "\.compareTo(DateUtil\.date())" "$file"; then
            echo "  发现compareTo(DateUtil.date())模式，需要手动检查"
            echo "  ⚠️  请手动检查此文件中的compareTo调用"
        fi
        
        if grep -q "DateUtil\.offsetDay.*\.compareTo(DateUtil\.date())" "$file"; then
            echo "  发现复杂的日期比较模式，需要手动修复"
            echo "  ⚠️  请手动检查此文件中的日期比较逻辑"
        fi
    else
        echo "  未发现LocalDateTime导入，可能是合理的Date使用"
    fi
    
    echo
done

echo "=== 修复完成 ==="
echo
echo "请注意："
echo "1. 自动修复了简单的setXxxTime(DateUtil.date())调用"
echo "2. 复杂的日期比较逻辑需要手动检查和修复"
echo "3. 建议运行测试确保修复正确"
