#!/bin/bash

echo "=== 为LocalDateTime字段添加@JsonFormat注解 ==="
echo

# 获取所有包含LocalDateTime的实体类文件
files=$(find src/main/java -path "*/entity/*" -name "*.java" -exec grep -l "LocalDateTime" {} \;)

for file in $files; do
    echo "处理文件: $file"
    
    # 检查是否已经导入JsonFormat
    if ! grep -q "import com.fasterxml.jackson.annotation.JsonFormat" "$file"; then
        echo "  添加JsonFormat导入..."
        # 在LocalDateTime导入后添加JsonFormat导入
        sed -i '' '/import java\.time\.LocalDateTime;/a\
import com.fasterxml.jackson.annotation.JsonFormat;
' "$file"
    fi
    
    # 为LocalDateTime字段添加@JsonFormat注解
    echo "  添加@JsonFormat注解..."
    
    # 处理各种时间字段模式
    sed -i '' '/private LocalDateTime.*Time;/i\
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
' "$file"
    
    # 移除重复的注解（如果存在）
    awk '
    /^[[:space:]]*@JsonFormat\(pattern = "yyyy-MM-dd HH:mm:ss"\)/ {
        if (prev_line == $0) next
        prev_line = $0
    }
    { print }
    ' "$file" > "$file.tmp" && mv "$file.tmp" "$file"
    
    echo "  完成处理: $file"
done

echo
echo "=== 批量添加@JsonFormat注解完成 ==="
echo "请重启应用程序测试效果"
