You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					62 lines
				
				2.0 KiB
			
		
		
			
		
	
	
					62 lines
				
				2.0 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								package com.ynxbd.wx.wxfactory.utils;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.common.ErrorHelper;
							 | 
						||
| 
								 | 
							
								import lombok.extern.slf4j.Slf4j;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import java.io.UnsupportedEncodingException;
							 | 
						||
| 
								 | 
							
								import java.net.URLEncoder;
							 | 
						||
| 
								 | 
							
								import java.util.ArrayList;
							 | 
						||
| 
								 | 
							
								import java.util.LinkedHashMap;
							 | 
						||
| 
								 | 
							
								import java.util.List;
							 | 
						||
| 
								 | 
							
								import java.util.Map;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@Slf4j
							 | 
						||
| 
								 | 
							
								public class MapHelper {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * map 排序
							 | 
						||
| 
								 | 
							
								     * @param map map
							 | 
						||
| 
								 | 
							
								     * @return map
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static Map<String, Object> order(Map<String, Object> map) {
							 | 
						||
| 
								 | 
							
								        Map<String, Object> orderMap = new LinkedHashMap<>();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        List<Map.Entry<String, Object>> infoIds = new ArrayList<>(map.entrySet());
							 | 
						||
| 
								 | 
							
								        infoIds.sort((a, b) -> ((Object) a.getKey()).toString().compareTo(b.getKey()));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        for (Map.Entry<String, Object> item : infoIds) {
							 | 
						||
| 
								 | 
							
								            orderMap.put(item.getKey(), item.getValue());
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return orderMap;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 参数拼接
							 | 
						||
| 
								 | 
							
								    public static String mapJoin(Map<String, Object> map, boolean keyLower, boolean isUrlEncode) {
							 | 
						||
| 
								 | 
							
								        StringBuilder sb = new StringBuilder();
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            String key;
							 | 
						||
| 
								 | 
							
								            Object value;
							 | 
						||
| 
								 | 
							
								            for (Map.Entry<String, Object> item : map.entrySet()) {
							 | 
						||
| 
								 | 
							
								                key = item.getKey();
							 | 
						||
| 
								 | 
							
								                if ("".equals(key)) {
							 | 
						||
| 
								 | 
							
								                    continue;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                key = key.endsWith("_") && key.length() > 1 ? key.substring(0, key.length() - 1) : key;
							 | 
						||
| 
								 | 
							
								                value = item.getValue();
							 | 
						||
| 
								 | 
							
								                if (value == null) {
							 | 
						||
| 
								 | 
							
								                    value = "";
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                sb.append(keyLower ? key.toLowerCase() : key).append("=").append(isUrlEncode ? URLEncoder.encode(value.toString(), "utf-8").replace("+", "%20") : value).append("&");
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        } catch (UnsupportedEncodingException e) {
							 | 
						||
| 
								 | 
							
								            ErrorHelper.println(e);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        String params = sb.toString();
							 | 
						||
| 
								 | 
							
								        if (params.length() > 1) {
							 | 
						||
| 
								 | 
							
								            return params.substring(0, params.length() - 1);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return sb.toString();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |