/**
 * Copyright 2019 DH
 * All right reserved.
 * 项目名称: 大恒泰山系统
 * 创建日期:2023/10/31
 */
package org.ts.ddcs.tools;

import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.ts.ddcs.common.metadata.DatagramMetadataEnum;
import org.ts.ddcs.common.metadata.ElementDataMetadataEnum;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/***
 * Date:2023/10/31
 * Title:文件所属模块（必须填写）
 * Description：对本文件的详细描述，原则上不能少于30字
 * @author dylan
 * @version 1.0
 * Remark：认为有必要的其他信息
 */
@Slf4j
public class KeyStoreHelp {

    public static Map<String, Object> getOne(List<Map<String, Object>> elements, String code) {
        for (Map<String, Object> data : elements) {
            String codeValue = (String) data.get(DatagramMetadataEnum.CACHE_METADATA_ELEMENT_CODE.getName());
            if (code.equals(codeValue)) {
                List<Map<String, Object>> keyStore = (List<Map<String, Object>>) data.get(DatagramMetadataEnum.CACHE_METADATA_DATA.getName());
                if (null != keyStore && keyStore.size() > 0) {
                    return keyStore.get(0);
                }
            }
        }
        return null;
    }

    public static List<Map<String, Object>> getList(List<Map<String, Object>> elements, String code) {
        for (Map<String, Object> data : elements) {
            String codeValue = (String) data.get(DatagramMetadataEnum.CACHE_METADATA_ELEMENT_CODE.getName());
            if (code.equals(codeValue)) {
                List<Map<String, Object>> keyStore = (List<Map<String, Object>>) data.get(DatagramMetadataEnum.CACHE_METADATA_DATA.getName());
                return keyStore;
            }
        }
        return null;
    }

    public static Map<String, Object> getOne(List<Map<String, Object>> elements, String code, String name) {
        for (Map<String, Object> data : elements) {
            String codeValue = (String) data.get(DatagramMetadataEnum.CACHE_METADATA_ELEMENT_CODE.getName());
            if (code.equals(codeValue)) {
                List<Map<String, Object>> keyStore = (List<Map<String, Object>>) data.get(DatagramMetadataEnum.CACHE_METADATA_DATA.getName());
                if (null != keyStore && keyStore.size() > 0) {
                    for (Map<String, Object> item : keyStore) {
                        String nameValue = (String)item.get(ElementDataMetadataEnum.ELEMENT_METADATA_NAME.getName());
                        if (nameValue.equals(name)) {
                            return item;
                        }
                    }
                }
            }
        }
        return null;
    }

    public static List<Map<String, Object>> getList(List<Map<String, Object>> elements, String code, String name) {
        for (Map<String, Object> data : elements) {
            String codeValue = (String) data.get(DatagramMetadataEnum.CACHE_METADATA_ELEMENT_CODE.getName());
            if (code.equals(codeValue)) {
                List<Map<String, Object>> keyStore = (List<Map<String, Object>>) data.get(DatagramMetadataEnum.CACHE_METADATA_DATA.getName());
                if (null != keyStore && keyStore.size() > 0) {
                    List<Map<String, Object>> items = new ArrayList<>();
                    for (Map<String, Object> item : keyStore) {
                        String nameValue = (String)item.get(ElementDataMetadataEnum.ELEMENT_METADATA_NAME.getName());
                        if (nameValue.equals(name)) {
                            items.add(item);
                        }
                    }
                    return items;
                }
            }
        }
        return null;
    }

//    public static JSONObject getOne(List<JSONObject> keyStore, String type) {
//        for (JSONObject d : keyStore) {
//
//            String typeValue = d.getString(DatagramCacheMetadataEnum.CACHE_METADATA_ELEMENT_CODE.getName());
//
//
//
//            if (type.equals(typeValue)) {
//                return d;
//            }
//        }
//        return null;
//    }
//
//
//    public static List<JSONObject> getList(List<JSONObject> keyStore, String type) {
//        List<JSONObject> list = new ArrayList<>();
//        for (JSONObject d : keyStore) {
//            String typeValue = d.getString(DatagramCacheMetadataEnum.CACHE_METADATA_ELEMENT_CODE.getName());
//            if (type.equals(typeValue)) {
//                list.add(d);
//            }
//        }
//        return list;
//    }


//    public static JSONObject getOne(List<JSONObject> keyStore, String type, String name) {
//        for (JSONObject d : keyStore) {
//            String typeValue = d.getString(DatagramCacheMetadataEnum.CACHE_METADATA_ELEMENT_CODE.getName());
//            String nameValue = d.getString(ElementDataMetadataEnum.PACK_METADATA_NAME.getName());
//            if (type.equals(typeValue) && name.equals(nameValue)) {
//                return d;
//            }
//        }
//        return null;
//    }

//    public static List<JSONObject> getList(List<JSONObject> keyStore, String type, String name) {
//        List<JSONObject> list = new ArrayList<>();
//        for (JSONObject d : keyStore) {
//            String typeValue = d.getString(ElementDataMetadataEnum.PACK_METADATA_TYPE.getName());
//            String nameValue = d.getString(ElementDataMetadataEnum.PACK_METADATA_NAME.getName());
//            if (type.equals(typeValue) && name.equals(nameValue)) {
//                list.add(d);
//            }
//        }
//        return list;
//    }
}
