Files
mp-java/docs/fix_dateutil_issues.sh

54 lines
1.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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