package com.fs.hisapi.util;

import com.alibaba.fastjson.JSON;

import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class MapUtil {
    public static Map<String, String> convertToMap(Object recipe) {
        Map<String, String> map = new HashMap<>();

        // 获取Recipe类的所有字段
        Field[] fields = recipe.getClass().getDeclaredFields();
        for (Field field : fields) {
            field.setAccessible(true); // 设置字段可访问
            String fieldName = field.getName(); // 获取字段名
            Object fieldValue = null; // 获取字段值
            try {
                fieldValue = field.get(recipe);
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            String fieldValueString = valueToString(fieldValue); // 转换为字符串类型
                map.put(fieldName, fieldValueString); // 将字段名和字段值放入Map中

        }
        return map;
    }


    private static String valueToString(Object value) {
        if (value == null) {
            return "";
        } else if (value instanceof List) {
            String jsonString = JSON.toJSONString(value);
            return jsonString;
        }else if (value instanceof BigDecimal){
            return value.toString();
        }
        return value.toString();
    }

}
