import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.suncere.air.diagnosis.commons.DateUtil;
import org.springframework.util.DigestUtils;
import java.math.BigDecimal;
import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class DataUtils {
//保留小数点后N尾数
public static Double dateToStamp(Double d, int i) throws Exception {
BigDecimal value = new BigDecimal(d);
return value.setScale(i, BigDecimal.ROUND_HALF_UP).doubleValue();
}
//保留小数点后N尾数
public static BigDecimal dateToBigDecimal(Double d, int i) throws Exception {
return new BigDecimal(d).setScale(2,BigDecimal.ROUND_DOWN);
}
public static JSONArray httpGet(String urlAverage) {
//拿到接口的数据
String sAverage = HttpUtil.get(urlAverage, Charset.defaultCharset());
//转为json
JSONObject jsonAverage = JSONObject.parseObject(sAverage);
String dataAverage = jsonAverage.get("Data").toString();
JSONArray objectsAverage = JSONObject.parseArray(dataAverage);
return objectsAverage;
}
public static JSONObject httpGetObject(String urlAverage) {
//拿到接口的数据
String sAverage = HttpUtil.get(urlAverage, Charset.defaultCharset());
//转为json
JSONObject jsonAverage = JSONObject.parseObject(sAverage);
return jsonAverage;
}
// Map 根据value重新排序
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) {
Map<K, V> result = new LinkedHashMap<>();
map.entrySet().stream()
.sorted(Map.Entry.<K, V>comparingByValue()
.reversed()).forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
return result;
}
// Map 根据key重新排序
public <K extends Comparable<? super K>, V > Map<K, V> sortByKey(Map<K, V> map) {
Map<K, V> result = new LinkedHashMap<>();
map.entrySet().stream()
.sorted(Map.Entry.<K, V>comparingByKey()
.reversed()).forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
return result;
}
/**
*
* Map转String
* @param map
* @return
*/
public static String getMapToString(Map<String,Object> map){
Set<String> keySet = map.keySet();
//将set集合转换为数组
String[] keyArray = keySet.toArray(new String[keySet.size()]);
//给数组排序(升序)
Arrays.sort(keyArray);
//因为String拼接效率会很低的,所以转用StringBuilder
StringBuilder sb = new StringBuilder();
for (int i = 0; i < keyArray.length; i++) {
// 参数值为空,则不参与签名 这个方法trim()是去空格
if ((String.valueOf(map.get(keyArray[i]))).trim().length() > 0) {
sb.append(keyArray[i]).append(":").append(String.valueOf(map.get(keyArray[i])).trim());
}
if(i != keyArray.length-1){
sb.append(",");
}
}
return sb.toString();
}
/**
*
* String转map
* @param str
* @return
*/
public static Map<String,Object> getStringToMap(String str){
//根据逗号截取字符串数组
String[] str1 = str.split(",");
//创建Map对象
Map<String,Object> map = new HashMap<>();
//循环加入map集合
for (int i = 0; i < str1.length; i++) {
//根据":"截取字符串数组
String[] str2 = str1[i].split(":");
//str2[0]为KEY,str2[1]为值
//map.put(str2[0],str2[1]);
if (str2.length == 2){
map.put(str2[0].trim(),str2[1]);
}else{
map.put(str2[0].trim(),"");
}
}
return map;
}
}