11
This commit is contained in:
61
docs/fix_all_localdatetime_fields.sh
Executable file
61
docs/fix_all_localdatetime_fields.sh
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "=== 为所有LocalDateTime字段添加@JsonFormat注解 ==="
|
||||
echo
|
||||
|
||||
# 获取所有包含LocalDateTime的实体类文件
|
||||
files=$(find src/main/java -path "*/entity/*" -name "*.java" -exec grep -l "private LocalDateTime" {} \;)
|
||||
|
||||
for file in $files; do
|
||||
echo "处理文件: $file"
|
||||
|
||||
# 检查是否已经导入JsonFormat
|
||||
if ! grep -q "import com.fasterxml.jackson.annotation.JsonFormat" "$file"; then
|
||||
echo " 添加JsonFormat导入..."
|
||||
# 在import部分添加JsonFormat导入
|
||||
sed -i '' '/import.*LocalDateTime;/a\
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
' "$file"
|
||||
fi
|
||||
|
||||
# 为没有@JsonFormat注解的LocalDateTime字段添加注解
|
||||
echo " 添加@JsonFormat注解..."
|
||||
|
||||
# 创建临时文件
|
||||
temp_file=$(mktemp)
|
||||
|
||||
# 处理文件,为LocalDateTime字段添加@JsonFormat注解
|
||||
awk '
|
||||
/^[[:space:]]*private LocalDateTime/ {
|
||||
# 检查前一行是否已经有@JsonFormat注解
|
||||
if (prev_line !~ /@JsonFormat/) {
|
||||
# 获取当前行的缩进
|
||||
match($0, /^[[:space:]]*/)
|
||||
indent = substr($0, RSTART, RLENGTH)
|
||||
# 添加@JsonFormat注解
|
||||
print indent "@JsonFormat(pattern = \"yyyy-MM-dd HH:mm:ss\")"
|
||||
}
|
||||
print
|
||||
next
|
||||
}
|
||||
{
|
||||
prev_line = $0
|
||||
print
|
||||
}
|
||||
' "$file" > "$temp_file"
|
||||
|
||||
# 替换原文件
|
||||
mv "$temp_file" "$file"
|
||||
|
||||
echo " 完成处理: $file"
|
||||
done
|
||||
|
||||
echo
|
||||
echo "=== 批量添加@JsonFormat注解完成 ==="
|
||||
|
||||
# 统计处理结果
|
||||
total_files=$(echo "$files" | wc -l)
|
||||
echo "总共处理了 $total_files 个实体类文件"
|
||||
|
||||
echo
|
||||
echo "请重启应用程序测试效果"
|
||||
Reference in New Issue
Block a user