package com.yeshi.fanli.system.utils; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.yeshi.utils.StringUtil; import org.yeshi.utils.taobao.TbImgUtil; import com.yeshi.fanli.base.entity.admin.AdminUser; public class SystemCommonUtils { private static final String ANDROID = "ANDROID"; private static final String IOS = "IOS"; private static final String WEB = "WEB"; private static final Map map = new HashMap(); static { map.put("1", ANDROID); map.put("2", IOS); map.put("3", WEB); } public static Map getMap() { return map; } public static boolean isEmailUrlRight(String email, String sign, long time) { if (StringUtil.Md5(email + time + "WEIJU2016xxx").equalsIgnoreCase(sign) && Math.abs(System.currentTimeMillis() - time) < 1000 * 60 * 60 * 2) { return true; } return false; } public static String getUrlPageTitle(String url) { try { Document doc = Jsoup.connect(url).timeout(1000 * 60).get(); return doc.title(); } catch (IOException e) { e.printStackTrace(); } return ""; } public static AdminUser getAdminUser(HttpServletRequest request) { AdminUser adminUser = (AdminUser) request.getSession().getAttribute("ADMIN_USERINFO"); return adminUser; } public static boolean signIsRight(String devicename, String imei, String sign) { return sign.equalsIgnoreCase(StringUtil.Md5(devicename + imei + "WEIju2016888xx3")); } public static Map sort(Map map) { // 通过ArrayList构�?函数把map.entrySet()转换成list List> list = new ArrayList>((Collection) map.entrySet()); // 通过比较器实现比较排�? Collections.sort(list, new Comparator>() { public int compare(Map.Entry mapping1, Map.Entry mapping2) { return mapping1.getKey().compareTo(mapping2.getKey()); } }); Map newMap = new TreeMap(); for (Entry entry : list) { newMap.put(entry.getKey(), entry.getValue()); } return newMap; } public static String imgSize(String jsonStr) { JSONObject json = JSONObject.fromObject(jsonStr); String picUrl = (String) json.opt("pictUrl"); if (picUrl.contains("alicdn") || picUrl.contains("tbcdn")) { picUrl = TbImgUtil.getTBSize320Img(picUrl); } json.element("pictUrl", picUrl); return json.toString(); } public static String imgListSize(String jsonStr) { JSONArray json = JSONArray.fromObject(jsonStr); for (Object object : json) { String picUrl = (String) ((JSONObject) object).opt("pictUrl"); if (picUrl.contains("alicdn") || picUrl.contains("tbcdn")) { picUrl = TbImgUtil.getTBSize320Img(picUrl); } ((JSONObject) object).element("pictUrl", picUrl); } return json.toString(); } public static Map parseURL(String url) { String URL_REGEX = "(((http|https)://)|(www\\.))[a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6}(:[0-9]{1,4})?(/[a-zA-Z0-9\\&%_\\./-~-]*)?"; Pattern p = Pattern.compile(URL_REGEX); Matcher matcher = p.matcher(url); boolean b = matcher.matches(); Map map = new HashMap(); if (!b) { return map; } if (!url.contains("?")) { return map; } String params = url.substring(url.indexOf("?") + 1); if (params == null || "".equals(params)) { return map; } String[] paramArr = params.split("&"); for (String arr : paramArr) { String[] kv = arr.split("="); if (kv.length == 1) { kv[1] = ""; } map.put(kv[0], kv[1]); } return map; } public static double random(double mix) { return (Math.random() * 20) + mix; } public static String getStarString(String content, int begin, int end) { if (begin >= content.length() || begin < 0) { return content; } if (end >= content.length() || end < 0) { return content; } if (begin >= end) { return content; } String starStr = ""; for (int i = begin; i < end; i++) { starStr = starStr + "*"; } return content.substring(0, begin) + starStr + content.substring(end, content.length()); } public static boolean isNum(String content) { if (content == null) { return false; } String regex = "\\d+"; Pattern compile = Pattern.compile(regex); Matcher matcher = compile.matcher(content); return matcher.matches(); } public static boolean isOrderNum(String order) { if (order == null) { return false; } String regex = "\\d{16,}"; Pattern compile = Pattern.compile(regex); Matcher matcher = compile.matcher(order); return matcher.matches(); } public static boolean isUserOrder(String existOrder, String lostOrder) { if (existOrder.length() < 16 || lostOrder.length() < 16) { return false; } String existNum = existOrder.substring(existOrder.length() - 6); String lostOrderNum = lostOrder.substring(lostOrder.length() - 6); if (existNum.equals(lostOrderNum)) { return true; } return false; } }