| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- package com.template.common.utils;
- import lombok.extern.slf4j.Slf4j;
- import javax.servlet.http.HttpServletRequest;
- import java.net.InetAddress;
- import java.net.UnknownHostException;
- import java.security.MessageDigest;
- import java.time.LocalDate;
- import java.time.LocalDateTime;
- import java.time.LocalTime;
- import java.util.*;
- /**
- * 公共工具类
- **/
- @Slf4j
- public class CommonUtil {
- /**
- * 检测客户端参数
- * @param code 状态码
- * @param object 对象
- * @return 返回类型
- */
- public static Map<String, Object> getReturnMap(String code, Object object) {
- Map<String, Object> returnMap = new HashMap<>();
- returnMap.put("code", code);
- returnMap.put("msg", object);
- return returnMap;
- }
- /**
- * 获取ip
- *
- * @param request
- * @return
- */
- public static String getIpAddr(HttpServletRequest request) {
- String ipAddress = null;
- try {
- ipAddress = request.getHeader("x-forwarded-for");
- System.out.println("x-forwarded-for=" + ipAddress);
- if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
- ipAddress = request.getHeader("Proxy-Client-IP");
- System.out.println("Proxy-Client-IP=" + ipAddress);
- }
- if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
- ipAddress = request.getHeader("WL-Proxy-Client-IP");
- System.out.println("WL-Proxy-Client-IP=" + ipAddress);
- }
- if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
- ipAddress = request.getRemoteAddr();
- System.out.println("getRemoteAddr=" + ipAddress);
- if (ipAddress.equals("127.0.0.1")) {
- // 根据网卡取本机配置的IP
- InetAddress inet = null;
- try {
- inet = InetAddress.getLocalHost();
- } catch (UnknownHostException e) {
- e.printStackTrace();
- }
- ipAddress = inet.getHostAddress();
- System.out.println("getHostAddress=" + ipAddress);
- }
- }
- // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
- if (ipAddress != null && ipAddress.length() > 15) {
- // "***.***.***.***".length()
- // = 15
- if (ipAddress.indexOf(",") > 0) {
- ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
- }
- }
- } catch (Exception e) {
- ipAddress = "";
- }
- return ipAddress;
- }
- /**
- * 获取全部请求头
- *
- * @param request
- * @return
- */
- public static Map<String, String> getAllRequestHeader(HttpServletRequest request) {
- Enumeration<String> headerNames = request.getHeaderNames();
- Map<String, String> map = new HashMap<>();
- while (headerNames.hasMoreElements()) {
- String key = headerNames.nextElement();
- //根据名称获取请求头的值
- String value = request.getHeader(key);
- map.put(key, value);
- }
- return map;
- }
- /**
- * MD5加密
- *
- * @param data
- * @return
- */
- public static String MD5(String data) {
- try {
- MessageDigest md = MessageDigest.getInstance("MD5");
- byte[] array = md.digest(data.getBytes("UTF-8"));
- StringBuilder sb = new StringBuilder();
- for (byte item : array) {
- sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
- }
- return sb.toString().toUpperCase();
- } catch (Exception exception) {
- }
- return null;
- }
- /**
- * 获取验证码随机数
- *
- * @param length
- * @return
- */
- public static String getRandomCode(int length) {
- String sources = "0123456789";
- Random random = new Random();
- StringBuilder sb = new StringBuilder();
- for (int j = 0; j < length; j++) {
- sb.append(sources.charAt(random.nextInt(9)));
- }
- return sb.toString();
- }
- /**
- * 获取当前时间戳
- *
- * @return
- */
- public static long getCurrentTimestamp() {
- return System.currentTimeMillis();
- }
- /**
- * 生成uuid
- *
- * @return
- */
- public static String generateUUID() {
- return UUID.randomUUID().toString().replaceAll("-", "").substring(0, 32);
- }
- /**
- * 获取随机长度的串
- *
- * @param length
- * @return
- */
- private static final String ALL_CHAR_NUM = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- public static String getStringNumRandom(int length) {
- //生成随机数字和字母,
- Random random = new Random();
- StringBuilder saltString = new StringBuilder(length);
- for (int i = 1; i <= length; ++i) {
- saltString.append(ALL_CHAR_NUM.charAt(random.nextInt(ALL_CHAR_NUM.length())));
- }
- return saltString.toString();
- }
- /**
- * LocalDate 拼接时间转成 LocalDateTime
- *
- * @param localDate
- * @param timeStr HH:mm:ss
- * @return
- */
- public static LocalDateTime localDateToTime(LocalDate localDate, String timeStr) {
- LocalTime time = LocalTime.parse(timeStr);
- return LocalDateTime.of(localDate.getYear(), localDate.getMonth(), localDate.getDayOfMonth(),
- time.getHour(), time.getMinute(), time.getSecond());
- }
- }
|