package com.malk.server.dingtalk;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.malk.utils.UtilMap;
import org.apache.commons.collections4.map.HashedMap;

import java.util.Map;

public class DDInterActiveCard {

    /**
     * 格式交互卡片, 表格数据类型 [兼容多表格], 格式详见 DDClient_Extension 发送卡片
     */
    public static Map formCardDataForTable(Map data, String... props) {

        Map cardData = new HashedMap();
        for (String prop : props) {
            cardData.put(prop, UtilMap.map("data, meta", data.get(prop), data.get("meta")));
        }
        /// fastjson 避免循环引用: 当一个对象包含另一个对象时 或 当一个对象和另一个对象完全相同时
        return UtilMap.map("cardParamMap", UtilMap.map("sys_full_json_obj", JSON.toJSONString(cardData, SerializerFeature.DisableCircularReferenceDetect)));
    }
}
