package com.usky.issue.service.util;

import cn.hutool.crypto.SecureUtil;
import com.usky.common.core.utils.StringUtils;
import org.springframework.util.CollectionUtils;

import java.util.Arrays;
import java.util.Map;
import java.util.TreeMap;

public class SignUtil {

    /**
     * 使用 Map按key进行排序
     *
     * @param map
     * @return
     */
    public static Map<String, String> sortMapByKey(Map<String, String> map) {
        if (map == null || map.isEmpty()) {
            return null;
        }
        //升序排序
        Map<String, String> sortMap = new TreeMap<>(String::compareTo);
        sortMap.putAll(map);
        return sortMap;
    }

    public static String sign(String body, Map<String, String[]> params, Map<String, String> requestPathMap,
                              String secretKey, String timestamp,String appKey) {
//        StringBuilder sb = new StringBuilder();
//        if (StringUtils.isNotBlank(body)) {
//            sb.append(body).append('#');
//        }

//        if (!CollectionUtils.isEmpty(params)) {
//            params.entrySet()
//                    .stream()
//                    .sorted(Map.Entry.comparingByKey())
//                    .forEach(paramEntry -> {
//                        String paramValue = String.join(",", Arrays.stream(paramEntry.getValue()).sorted().toArray(String[]::new));
//                        sb.append(paramEntry.getKey()).append("=").append(paramValue).append('#');
//                    });
//        }
//
//        if (!CollectionUtils.isEmpty(requestPathMap)) {
//            for (String key : requestPathMap.keySet()) {
//                String value = requestPathMap.get(key);
//                sb.append(key).append("=").append(value).append('#');
//            }
//
//        }
        String a = String.join("#", secretKey, timestamp, appKey);
        return SecureUtil.md5(a);
    }
}
