#!/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. 建议运行测试确保修复正确"