| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- package com.template.common.utils;
- import com.auth0.jwt.JWT;
- import com.auth0.jwt.interfaces.Claim;
- import com.auth0.jwt.interfaces.DecodedJWT;
- import com.template.model.pojo.RepairAdmin;
- import com.template.model.pojo.SmartDataSourceLog;
- import com.template.model.result.CommonResult;
- 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.*;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- /**
- * 公共工具类
- **/
- @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;
- }
- /**
- * 生成日志对象
- *
- * @param str 字符串
- * @param httpServletRequest 请求对象
- * @return 返回对象
- */
- public static SmartDataSourceLog generateLog(String str, HttpServletRequest httpServletRequest) {
- String serverIp = null;
- try {
- serverIp = InetAddress.getLocalHost().getHostAddress();
- } catch (UnknownHostException e) {
- throw new RuntimeException(e);
- }
- String clientIp = httpServletRequest.getRemoteAddr();
- String token = httpServletRequest.getHeader("Authorization");
- String account;
- if (token != null) {
- Map<String, Claim> map = JWT.decode(token).getClaims();
- account = map.get("account").asString();
- } else {
- account = "";
- }
- String[] splitArr = str.split("\\|");
- SmartDataSourceLog smartDataSourceLog = new SmartDataSourceLog();
- smartDataSourceLog.setLogActionName(splitArr[0]);
- smartDataSourceLog.setLogActionHost(serverIp);
- smartDataSourceLog.setLogActionModule(splitArr[1]);
- smartDataSourceLog.setLogActionBusiness(splitArr[2]);
- smartDataSourceLog.setLogActionPeople(account);
- smartDataSourceLog.setLogActionRemote(clientIp);
- smartDataSourceLog.setLogActionClass(splitArr[3]);
- return smartDataSourceLog;
- }
- public static String getNumberFromString(String string) {
- Pattern pattern = Pattern.compile("\\d+");
- Matcher matcher = pattern.matcher(string);
- if (matcher.find()) {
- return matcher.group();
- }
- return null;
- }
- /**
- * 获取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());
- }
- }
|