package com.backendsys.utils;

import cn.hutool.core.util.ArrayUtil;
import org.springframework.util.MultiValueMap;

import java.lang.reflect.Field;

public class ConvertToUtil {

    /**
     * 数组 转 字符串 [1,2,3] 转 "1,2,3"
     * String resolutionString = ConvertToUtil.convertToString(aiGenerateVideoDTO.getResolution());
     */
    public static String convertToString(Object[] array) {
        // 分辨率 (转字符串)
        String str = ArrayUtil.toString(array);
        // 去除中括号 (小心java的substring是左闭右开的)
        str = str.substring(1, str.length() - 1);
        // 去除所有的空字符
        str = str.replaceAll("\\s", "");
        return str;
    }

    /**
     * 实体类/对象 转 MultiValueMap
     * MultiValueMap<String, String> multiValueMap = new LinkedMultiValueMap<>();
     * ConvertToUtil.convertToMultiValueMap(params, multiValueMap);
     */
    public static void convertToMultiValueMap(Object obj, MultiValueMap<String, String> multiValueMap) {
        Field[] fields = obj.getClass().getDeclaredFields();
        for (Field field : fields) {
            field.setAccessible(true); // 确保可以访问私有字段
            try {
                Object value = field.get(obj);
                if (value != null) {
                    multiValueMap.add(field.getName(), value.toString());
                }
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
    }

}
