Parcourir la source

公有的方法提取到common包内

gaodm il y a 6 ans
Parent
commit
2d37ab1d63
45 fichiers modifiés avec 582 ajouts et 1300 suppressions
  1. 5 5
      bi-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java
  2. 2 2
      bi-service/src/main/java/com/diagbot/rabbit/MySender.java
  3. 59 5
      common/pom.xml
  4. 18 0
      common/src/main/java/com/diagbot/core/KeyedNamed.java
  5. 41 0
      common/src/main/java/com/diagbot/enums/IsDeleteEnum.java
  6. 19 7
      common/src/main/java/com/diagbot/exception/ErrorCode.java
  7. 0 0
      common/src/main/java/com/diagbot/util/BeanUtil.java
  8. 0 0
      common/src/main/java/com/diagbot/util/EntityUtil.java
  9. 55 0
      common/src/main/java/com/diagbot/util/FastJsonUtils.java
  10. 99 0
      common/src/main/java/com/diagbot/util/GsonUtil.java
  11. 0 0
      common/src/main/java/com/diagbot/util/HttpUtils.java
  12. 23 0
      common/src/main/java/com/diagbot/util/IntegerUtil.java
  13. 9 0
      common/src/main/java/com/diagbot/util/ListUtil.java
  14. 102 0
      common/src/main/java/com/diagbot/util/MapUtil.java
  15. 43 0
      common/src/main/java/com/diagbot/util/SqlExecuteUtil.java
  16. 0 0
      common/src/main/java/com/diagbot/util/UserUtils.java
  17. 5 5
      diagbotman-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java
  18. 2 2
      diagbotman-service/src/main/java/com/diagbot/rabbit/MySender.java
  19. 0 51
      diagbotman-service/src/main/java/com/diagbot/util/BeanUtil.java
  20. 0 92
      diagbotman-service/src/main/java/com/diagbot/util/EntityUtil.java
  21. 0 97
      diagbotman-service/src/main/java/com/diagbot/util/HttpUtils.java
  22. 0 93
      diagbotman-service/src/main/java/com/diagbot/util/UserUtils.java
  23. 5 5
      feedback-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java
  24. 2 2
      feedback-service/src/main/java/com/diagbot/rabbit/MySender.java
  25. 0 51
      feedback-service/src/main/java/com/diagbot/util/BeanUtil.java
  26. 0 92
      feedback-service/src/main/java/com/diagbot/util/EntityUtil.java
  27. 0 97
      feedback-service/src/main/java/com/diagbot/util/HttpUtils.java
  28. 0 93
      feedback-service/src/main/java/com/diagbot/util/UserUtils.java
  29. 5 5
      knowledge-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java
  30. 2 2
      knowledge-service/src/main/java/com/diagbot/rabbit/MySender.java
  31. 5 6
      log-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java
  32. 2 2
      log-service/src/main/java/com/diagbot/rabbit/MyReceiver.java
  33. 2 2
      log-service/src/main/java/com/diagbot/rabbit/MySender.java
  34. 0 51
      log-service/src/main/java/com/diagbot/util/BeanUtil.java
  35. 0 92
      log-service/src/main/java/com/diagbot/util/EntityUtil.java
  36. 0 97
      log-service/src/main/java/com/diagbot/util/HttpUtils.java
  37. 0 93
      log-service/src/main/java/com/diagbot/util/UserUtils.java
  38. 3 4
      uaa-service/src/main/java/com/diagbot/config/CustomTokenEnhancer.java
  39. 5 5
      user-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java
  40. 26 0
      user-service/src/main/java/com/diagbot/entity/SwsVerInfo.java
  41. 2 2
      user-service/src/main/java/com/diagbot/rabbit/MySender.java
  42. 0 51
      user-service/src/main/java/com/diagbot/util/BeanUtil.java
  43. 0 92
      user-service/src/main/java/com/diagbot/util/EntityUtil.java
  44. 0 97
      user-service/src/main/java/com/diagbot/util/HttpUtils.java
  45. 41 0
      user-service/src/main/java/com/diagbot/util/VerCodeUtil.java

+ 5 - 5
bi-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java

@@ -1,12 +1,12 @@
 package com.diagbot.aop;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.entity.SysLog;
 import com.diagbot.rabbit.MySender;
+import com.diagbot.util.GsonUtil;
 import com.diagbot.util.HttpUtils;
+import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
-import org.apache.commons.lang.StringUtils;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
@@ -53,16 +53,16 @@ public class SysLoggerAspect {
         Object[] args = joinPoint.getArgs();
         String params="";
         for(Object o:args){
-            params+=JSON.toJSONString(o);
+            params+=GsonUtil.toJson(o);
         }
-        if(!StringUtils.isEmpty(params)) {
+        if(!StringUtil.isEmpty(params)) {
             sysLog.setParams(params);
         }
         //设置IP地址
         sysLog.setIp(HttpUtils.getIpAddress());
         //用户名
         String username = UserUtils.getCurrentPrinciple();
-        if(!StringUtils.isEmpty(username)) {
+        if(!StringUtil.isEmpty(username)) {
             sysLog.setUsername(username);
         }
         sysLog.setGmtCreate(new Date());

+ 2 - 2
bi-service/src/main/java/com/diagbot/rabbit/MySender.java

@@ -1,7 +1,7 @@
 package com.diagbot.rabbit;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.entity.SysLog;
+import com.diagbot.util.GsonUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.cloud.stream.annotation.EnableBinding;
@@ -22,6 +22,6 @@ public class MySender {
     MessageChannel outputLog;
 
     public void outputLogSend(SysLog sysLog){
-        outputLog.send(MessageBuilder.withPayload(JSON.toJSONString(sysLog)).build());
+        outputLog.send(MessageBuilder.withPayload(GsonUtil.toJson(sysLog)).build());
     }
 }

+ 59 - 5
common/pom.xml

@@ -20,17 +20,71 @@
         <maven.compiler.target>1.8</maven.compiler.target>
     </properties>
     <dependencies>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.7</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.16.22</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-webmvc</artifactId>
+            <version>5.0.8.RELEASE</version>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-core</artifactId>
+            <version>5.0.7.RELEASE</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.security.oauth</groupId>
+            <artifactId>spring-security-oauth2</artifactId>
+            <version>2.2.1.RELEASE</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.8.5</version>
+        </dependency>
+
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>fastjson</artifactId>
             <version>1.2.49</version>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>3.7</version>
-        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>com.fasterxml.jackson.core</groupId>-->
+            <!--<artifactId>jackson-core</artifactId>-->
+            <!--<version>2.9.6</version>-->
+        <!--</dependency>-->
+
+        <!--<dependency>-->
+            <!--<groupId>com.fasterxml.jackson.core</groupId>-->
+            <!--<artifactId>jackson-databind</artifactId>-->
+            <!--<version>2.9.6</version>-->
+        <!--</dependency>-->
     </dependencies>
 
     <build>

+ 18 - 0
common/src/main/java/com/diagbot/core/KeyedNamed.java

@@ -0,0 +1,18 @@
+package com.diagbot.core;
+
+/**
+ * @Description: 状态和名字基础接口
+ * @author: gaodm
+ * @time: 2018/9/3 16:13
+ */
+public interface KeyedNamed {
+    /**
+     * 状态值
+     */
+    int getKey();
+
+    /**
+     * 状态描述
+     */
+    String getName();
+}

+ 41 - 0
common/src/main/java/com/diagbot/enums/IsDeleteEnum.java

@@ -0,0 +1,41 @@
+package com.diagbot.enums;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 是否,例如:是否删除
+ * @author: gaodm
+ * @time: 2018/9/3 16:01
+ */
+public enum IsDeleteEnum {
+
+    Y("Y","是"),
+    N("N","否");
+
+    @Getter
+    @Setter
+    private String key;
+
+    @Getter
+    @Setter
+    private String name;
+    IsDeleteEnum(String key, String name){
+        this.key = key;
+        this.name = name;
+    }
+
+    public static IsDeleteEnum getEnum(String key) {
+        for (IsDeleteEnum item : IsDeleteEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(String key) {
+        IsDeleteEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+}

+ 19 - 7
common/src/main/java/com/diagbot/exception/ErrorCode.java

@@ -2,20 +2,32 @@ package com.diagbot.exception;
 
 /**
  * @Description: 通用错误码
+ *      系统码(3位) + 等级码(1位) + 4位顺序号
+ *      系统码 通用码 000;用户中心 100; 管理中心 200;
  * @author: gaodm
  * @time: 2018/8/1 14:56
  */
 public enum ErrorCode {
 
-    OK(0, ""),
+    OK(0, "操作成功"),
     FAIL(-1, "操作失败"),
     RPC_ERROR(-2,"远程调度失败"),
-    USER_NOT_FOUND(1000,"用户不存在"),
-    USER_PASSWORD_ERROR(1001,"密码错误"),
-    GET_TOKEN_FAIL(1002,"获取token失败"),
-    TOKEN_IS_NOT_MATCH_USER(1003,"请使用自己的token进行接口请求"),
-
-    LOG_IS_NOT_EXIST(9001,"该日志不存在");
+    INSERT_DATA_FAILED(00020001, "数据库写入失败!"),
+    NOT_EXISTS (00020002, "该数据不存在!"),
+    UPDATE_INFO_FAIL(00020003, "更新数据失败!"),
+    PARAM_IS_NULL(00020004, "传入的参数为空!"),
+    STATUS_IS_ERROR(00020005, "参数状态错误!"),
+
+    USER_NOT_FOUND(10020000,"用户不存在"),
+    USER_PASSWORD_ERROR(10020001,"密码错误"),
+    GET_TOKEN_FAIL(10020002,"获取token失败"),
+    TOKEN_IS_NOT_MATCH_USER(10020003,"请使用自己的token进行接口请求"),
+
+    SMS_SEND_ERROR(10020004, "短信发送错误!"),
+    USER_BIND_ERROR(10020005, "用户手机号已经绑定无需再次验证!"),
+    USER_UN_BIND_ERROR(10020006, "用户手机号未绑定无需解绑!"),
+
+    LOG_IS_NOT_EXIST(90020001,"该日志不存在");
     private int code;
     private String msg;
 

bi-service/src/main/java/com/diagbot/util/BeanUtil.java → common/src/main/java/com/diagbot/util/BeanUtil.java


bi-service/src/main/java/com/diagbot/util/EntityUtil.java → common/src/main/java/com/diagbot/util/EntityUtil.java


+ 55 - 0
common/src/main/java/com/diagbot/util/FastJsonUtils.java

@@ -0,0 +1,55 @@
+package com.diagbot.util;
+
+import java.util.List;
+import java.util.Map;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+
+/**
+ * @Description: 基于fastjson封装的json转换工具类 (大量数据用)
+ * @author: gaodm
+ * @time: 2018/9/4 12:20
+ */
+public class FastJsonUtils {
+
+
+    /**
+     * 功能描述:把JSON数据转换成指定的java对象
+     * @param jsonData JSON数据
+     * @param clazz 指定的java对象
+     * @return 指定的java对象
+     */
+    public static <T> T getJsonToBean(String jsonData, Class<T> clazz) {
+        return JSON.parseObject(jsonData, clazz);
+    }
+
+    /**
+     * 功能描述:把java对象转换成JSON数据
+     * @param object java对象
+     * @return JSON数据
+     */
+    public static String getBeanToJson(Object object) {
+        return JSON.toJSONString(object);
+    }
+
+    /**
+     * 功能描述:把JSON数据转换成指定的java对象列表
+     * @param jsonData JSON数据
+     * @param clazz 指定的java对象
+     * @return List<T>
+     */
+    public static <T> List<T> getJsonToList(String jsonData, Class<T> clazz) {
+        return JSON.parseArray(jsonData, clazz);
+    }
+
+    /**
+     * 功能描述:把JSON数据转换成较为复杂的List<Map<String, Object>>
+     * @param jsonData JSON数据
+     * @return List<Map<String, Object>>
+     */
+    public static List<Map<String, Object>> getJsonToListMap(String jsonData) {
+        return JSON.parseObject(jsonData, new TypeReference<List<Map<String, Object>>>() {
+        });
+    }
+
+}

+ 99 - 0
common/src/main/java/com/diagbot/util/GsonUtil.java

@@ -0,0 +1,99 @@
+package com.diagbot.util;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 基于com.google.code.gson封装的json转换工具类 (少量数据用)
+ * @author: gaodm
+ * @time: 2018/9/4 11:48
+ */
+public class GsonUtil {
+    private static Gson gson = null;
+    static {
+        if (gson == null) {
+            gson = new Gson();
+        }
+    }
+
+    private GsonUtil() {
+    }
+
+    /**
+     * 对象转成json
+     *
+     * @param object
+     * @return json
+     */
+    public static String toJson(Object object) {
+        String gsonString = null;
+        if (gson != null) {
+            gsonString = gson.toJson(object);
+        }
+        return gsonString;
+    }
+
+    /**
+     * Json转成对象
+     *
+     * @param gsonString
+     * @param cls
+     * @return 对象
+     */
+    public static <T> T toObject(String gsonString, Class<T> cls) {
+        T t = null;
+        if (gson != null) {
+            t = gson.fromJson(gsonString, cls);
+        }
+        return t;
+    }
+
+    /**
+     * json转成list<T>
+     *
+     * @param gsonString
+     * @param cls
+     * @return list<T>
+     */
+    public static <T> List<T> toList(String gsonString, Class<T> cls) {
+        List<T> list = null;
+        if (gson != null) {
+            list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
+            }.getType());
+        }
+        return list;
+    }
+
+    /**
+     * json转成list中有map的
+     *
+     * @param gsonString
+     * @return List<Map<String, T>>
+     */
+    public static <T> List<Map<String, T>> toListMaps(String gsonString) {
+        List<Map<String, T>> list = null;
+        if (gson != null) {
+            list = gson.fromJson(gsonString, new TypeToken<List<Map<String, T>>>() {
+            }.getType());
+        }
+        return list;
+    }
+
+    /**
+     * json转成map的
+     *
+     * @param gsonString
+     * @return Map<String, T>
+     */
+    public static <T> Map<String, T> gsonToMaps(String gsonString) {
+        Map<String, T> map = null;
+        if (gson != null) {
+            map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
+            }.getType());
+        }
+        return map;
+    }
+}

bi-service/src/main/java/com/diagbot/util/HttpUtils.java → common/src/main/java/com/diagbot/util/HttpUtils.java


+ 23 - 0
common/src/main/java/com/diagbot/util/IntegerUtil.java

@@ -0,0 +1,23 @@
+package com.diagbot.util;
+
+/**
+ * @Description: Integer 工具类
+ * @author: gaodm
+ * @time: 2018/9/4 9:24
+ */
+public class IntegerUtil {
+    /**
+     * 当无法转换时返回0
+     * @param s
+     * @return
+     */
+    public static Integer parseIntNullZero(String s) {
+        Integer val;
+        try {
+            val = Integer.parseInt(s);
+        } catch (Exception e) {
+            val = 0;
+        }
+        return val;
+    }
+}

+ 9 - 0
common/src/main/java/com/diagbot/util/ListUtil.java

@@ -48,6 +48,15 @@ public class ListUtil {
         return Boolean.FALSE;
     }
 
+    /**
+     * 判断List是否为非空
+     * @param list
+     * @return
+     */
+    public static boolean isNotEmpty(List list) {
+        return !isEmpty(list);
+    }
+
     /**
      * 获取List集合中第一个对象,前提是自己先判断这个list不会为空
      *

+ 102 - 0
common/src/main/java/com/diagbot/util/MapUtil.java

@@ -0,0 +1,102 @@
+package com.diagbot.util;
+
+import java.beans.BeanInfo;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Description: map工具类
+ * @author: gaodm
+ * @time: 2018/9/4 9:24
+ */
+public class MapUtil {
+    private static final String SP = ";";
+    private static final String SSP = ":";
+
+    /**
+     * 把Map转换成String。注意以英文分号字符';'开始和结束
+     * @param attrs
+     * @return
+     */
+    public static String toString(Map<String, String> attrs) {
+        StringBuilder sb = new StringBuilder();
+        if (null != attrs && !attrs.isEmpty()) {
+            sb.append(SP);
+            for (String key : attrs.keySet()) {
+                String val = attrs.get(key);
+                if (val != null && !"".equals(val)) {
+                    sb.append(key).append(SSP).append(val).append(SP);
+                }
+            }
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 把key:value;key:value格式的String转换成Map
+     * @param str
+     * @return
+     */
+    public static Map<String, String> fromString(String str) {
+        Map<String, String> attrs = new HashMap<String, String>();
+        if (str != null && !"".equals(str)) {
+            String[] arr = str.split(SP);
+            if (null != arr) {
+                for (String kv : arr) {
+                    if (kv != null && !"".equals(kv)) {
+                        String[] ar = kv.split(SSP);
+                        if (null != ar && ar.length == 2) {
+                            String key = ar[0];
+                            String val = ar[1];
+                            if (val != null && !"".equals(val)) {
+                                attrs.put(key, val);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return attrs;
+    }
+
+    public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception {
+        if (map == null)
+            return null;
+
+        Object obj = beanClass.newInstance();
+
+        BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
+        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+        for (PropertyDescriptor property : propertyDescriptors) {
+            Method setter = property.getWriteMethod();
+            if (setter != null) {
+                setter.invoke(obj, map.get(property.getName()));
+            }
+        }
+
+        return obj;
+    }
+
+    public static Map<String, Object> objectToMap(Object obj) throws Exception {
+        if (obj == null)
+            return null;
+
+        Map<String, Object> map = new HashMap<String, Object>();
+
+        BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
+        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+        for (PropertyDescriptor property : propertyDescriptors) {
+            String key = property.getName();
+            if (key.compareToIgnoreCase("class") == 0) {
+                continue;
+            }
+            Method getter = property.getReadMethod();
+            Object value = getter != null ? getter.invoke(obj) : null;
+            map.put(key, value);
+        }
+        return map;
+    }
+}

+ 43 - 0
common/src/main/java/com/diagbot/util/SqlExecuteUtil.java

@@ -0,0 +1,43 @@
+package com.diagbot.util;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * @Description: sql批量执行时,参数分组后按组提交,避免游标、数据量超过限制
+ * @author: gaodm
+ * @time: 2018/4/20 11:27
+ */
+public class SqlExecuteUtil {
+
+    /**
+     *
+     * sql批量执行时,参数分组后按组提交,避免游标、数据量超过限制
+     *
+     * @param originList 原始参数列表
+     * @param capacity   分组后每组的大小
+     *
+     * @return List<List<T>> 分组后的参数列表
+     *
+     */
+    public static <T> List<List<T>>divideList(List<T> originList, int capacity) {
+        List<List<T>> list = new LinkedList<>();
+        int originListSize = originList.size();
+
+        int length = originListSize / capacity;
+        if(length == 0) {
+            list.add(originList);
+            return list;
+        }
+        if(originListSize % capacity > 0) {
+            length = length + 1;
+        }
+        for(int i = 0; i < length; i++) {
+            int fromIndex = i * capacity;
+            int toIndex = (i + 1) * capacity > originListSize ? originListSize : (i + 1) * capacity;
+            list.add(new ArrayList<T>(originList.subList(fromIndex, toIndex)));
+        }
+        return list;
+    }
+}

bi-service/src/main/java/com/diagbot/util/UserUtils.java → common/src/main/java/com/diagbot/util/UserUtils.java


+ 5 - 5
diagbotman-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java

@@ -1,12 +1,12 @@
 package com.diagbot.aop;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.entity.SysLog;
 import com.diagbot.rabbit.MySender;
+import com.diagbot.util.GsonUtil;
 import com.diagbot.util.HttpUtils;
+import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
-import org.apache.commons.lang.StringUtils;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
@@ -53,16 +53,16 @@ public class SysLoggerAspect {
         Object[] args = joinPoint.getArgs();
         String params="";
         for(Object o:args){
-            params+=JSON.toJSONString(o);
+            params+=GsonUtil.toJson(o);
         }
-        if(!StringUtils.isEmpty(params)) {
+        if(!StringUtil.isEmpty(params)) {
             sysLog.setParams(params);
         }
         //设置IP地址
         sysLog.setIp(HttpUtils.getIpAddress());
         //用户名
         String username = UserUtils.getCurrentPrinciple();
-        if(!StringUtils.isEmpty(username)) {
+        if(!StringUtil.isEmpty(username)) {
             sysLog.setUsername(username);
         }
         sysLog.setGmtCreate(new Date());

+ 2 - 2
diagbotman-service/src/main/java/com/diagbot/rabbit/MySender.java

@@ -1,7 +1,7 @@
 package com.diagbot.rabbit;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.entity.SysLog;
+import com.diagbot.util.GsonUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.cloud.stream.annotation.EnableBinding;
@@ -22,6 +22,6 @@ public class MySender {
     MessageChannel outputLog;
 
     public void outputLogSend(SysLog sysLog){
-        outputLog.send(MessageBuilder.withPayload(JSON.toJSONString(sysLog)).build());
+        outputLog.send(MessageBuilder.withPayload(GsonUtil.toJson(sysLog)).build());
     }
 }

+ 0 - 51
diagbotman-service/src/main/java/com/diagbot/util/BeanUtil.java

@@ -1,51 +0,0 @@
-package com.diagbot.util;
-
-
-import org.springframework.beans.BeanUtils;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @Description: 对象转换工具类
- * @author: gaodm
- * @date: 2017/12/28 10:16
- * @version: V1.0
- */
-public class BeanUtil {
-    /**
-     * 把一个对象的属性值复制给另外一个对象的属性值
-     * @param source 源对象,被转换的对象
-     * @param target 目标对象,即转换后对象
-     */
-    public static void copyProperties(Object source, Object target){
-        BeanUtils.copyProperties(source,target);
-    }
-
-    /**
-     * 复制集合
-     * @param <E>
-     * @param source 转换前的列表
-     * @param destinationClass 转换后列表类
-     * @return 转换后列表
-     */
-    public static <E> List<E> listCopyTo(List<?> source, Class<E> destinationClass){
-        try{
-            if (source.size() == 0){
-                return Collections.emptyList();
-            }
-            List<E> res = new ArrayList<E>(source.size());
-            for (Object o : source) {
-                E e = destinationClass.newInstance();
-                BeanUtils.copyProperties(o, e);
-                res.add(e);
-            }
-            return res;
-        }catch (IllegalAccessException ex){
-            throw new RuntimeException(ex);
-        }catch (InstantiationException ex){
-            throw new RuntimeException(ex);
-        }
-    }
-}

+ 0 - 92
diagbotman-service/src/main/java/com/diagbot/util/EntityUtil.java

@@ -1,92 +0,0 @@
-package com.diagbot.util;
-
-import lombok.extern.slf4j.Slf4j;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 实体对象工具类
- * @author: gaodm
- * @time: 2018/2/11 10:09
- */
-@Slf4j
-public class EntityUtil {
-
-    /**
-     *
-     * 将list中的元素放到Map<K, V>以建立 key - value 索引<p>
-     *
-     * @param list  List<V> 元素列表
-     * @param keyFieldName String 元素的属性名称, 该属性的值作为索引key
-     * @param <K> key类型
-     * @param <V> value类型
-     * @return Map<K, V> key - value 索引
-     */
-    @SuppressWarnings("unchecked")
-    public static <K, V> Map<K, V> makeEntityMap(List<V> list, String keyFieldName) {
-        Map<K, V> map = new HashMap<>();
-        if(list == null || list.size() == 0) {
-            return map;
-        }
-        try {
-            Method getter = getMethod(list.get(0).getClass(), keyFieldName, "get");
-            for (V item : list) {
-                map.put((K) getter.invoke(item), item);
-            }
-        } catch (Exception e) {
-            log.error("makeEntityMap error list is " + list, e);
-            return map;
-        }
-        return map;
-    }
-
-    /**
-     *
-     * 将list中的元素放到Map<K, List<V>> 以建立 key - List<value> 索引<p>
-     *
-     * @param list  List<V> 元素列表
-     * @param keyFieldName String 元素的属性名称, 该属性的值作为索引key
-     * @param <K> key类型
-     * @param <V> value类型
-     * @return Map<K, V> key - value 索引
-     */
-    public static <K, V> Map<K, List<V>> makeEntityListMap(List<V> list, String keyFieldName) {
-        Map<K, List<V>> map = new LinkedHashMap<>();
-        if(list == null || list.size() == 0) {
-            return map;
-        }
-        try {
-            Method getter = getMethod(list.get(0).getClass(), keyFieldName, "get");
-            for (V item : list) {
-                @SuppressWarnings("unchecked")
-                K key = (K) getter.invoke(item);
-                List<V> groupList = map.get(key);
-                if (groupList == null) {
-                    groupList = new ArrayList<>();
-                    map.put(key, groupList);
-                }
-                groupList.add(item);
-            }
-        } catch (Exception e) {
-            log.error("makeEntityListMap error list is " + list, e);
-            return map;
-        }
-        return map;
-    }
-
-    /**
-     * 获取getter或setter
-     */
-    @SuppressWarnings("unchecked")
-    private static Method getMethod(@SuppressWarnings("rawtypes") Class clazz, String fieldName,
-                                    String methodPrefix) throws NoSuchMethodException {
-        String first = fieldName.substring(0, 1);
-        String getterName = methodPrefix + fieldName.replaceFirst(first, first.toUpperCase());
-        return clazz.getMethod(getterName);
-    }
-}

+ 0 - 97
diagbotman-service/src/main/java/com/diagbot/util/HttpUtils.java

@@ -1,97 +0,0 @@
-package com.diagbot.util;
-
-
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Enumeration;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * @Description: http请求功能工具类
- * @author: gaodm
- * @time: 2018/8/3 17:45
- */
-public class HttpUtils {
-
-
-    /**
-     * 尝试获取当前请求的HttpServletRequest实例
-     *
-     * @return HttpServletRequest
-     */
-    public static HttpServletRequest getHttpServletRequest() {
-        try {
-            return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-
-    public static Map<String, String> getHeaders(HttpServletRequest request) {
-        Map<String, String> map = new LinkedHashMap<>();
-        Enumeration<String> enumeration = request.getHeaderNames();
-        while (enumeration.hasMoreElements()) {
-            String key = enumeration.nextElement();
-            String value = request.getHeader(key);
-            map.put(key, value);
-        }
-        return map;
-    }
-
-    /**
-     * 获取请求客户端的真实ip地址
-     *
-     * @param request 请求对象
-     * @return ip地址
-     */
-    public static String getIpAddress(HttpServletRequest request) {
-
-        // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
-        String ip = request.getHeader("X-Forwarded-For");
-
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("Proxy-Client-IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("WL-Proxy-Client-IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("HTTP_CLIENT_IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("HTTP_X_FORWARDED_FOR");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getRemoteAddr();
-            }
-        } else if (ip.length() > 15) {
-            String[] ips = ip.split(",");
-            for (int index = 0; index < ips.length; index++) {
-                String strIp = (String) ips[index];
-                if (!("unknown".equalsIgnoreCase(strIp))) {
-                    ip = strIp;
-                    break;
-                }
-            }
-        }
-        return ip;
-    }
-
-    /**
-     * 获取请求客户端的真实ip地址
-     *
-     * @param
-     * @return ip地址
-     */
-    public static String getIpAddress() {
-        // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
-        return getIpAddress(getHttpServletRequest());
-    }
-
-
-}

+ 0 - 93
diagbotman-service/src/main/java/com/diagbot/util/UserUtils.java

@@ -1,93 +0,0 @@
-package com.diagbot.util;
-
-
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 用户工具类
- * @author: gaodm
- * @time: 2018/8/3 17:46
- */
-public class UserUtils {
-
-    private static final String AUTHORIZATION = "authorization";
-
-    /**
-     * 获取当前请求的token
-     * @return
-     */
-    public static String getCurrentToken() {
-        return HttpUtils.getHeaders(HttpUtils.getHttpServletRequest()).get(AUTHORIZATION);
-    }
-
-    /**
-     * 获取当前请求的用户名称
-     * @return
-     */
-    public static String getCurrentPrinciple() {
-        return (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
-    }
-
-    /**
-     * 获取当前请求的用户ID
-     * @return
-     */
-    public static String getCurrentPrincipleID() {
-        OAuth2AuthenticationDetails oauthDetails = (OAuth2AuthenticationDetails) SecurityContextHolder.getContext().getAuthentication().getDetails();
-        Map<String, Object> details = (Map<String, Object>) oauthDetails.getDecodedDetails();
-        return details.get("user_id").toString();
-    }
-
-    /**
-     * 判读当前token用户是否为接口所需的参数username
-     *
-     * @param username
-     * @return
-     */
-    public static boolean isMyself(String username) {
-        return username.equals(getCurrentPrinciple());
-    }
-
-    /**
-     * 获取当前请求Authentication
-     *
-     * @return
-     */
-    public static Authentication getCurrentAuthentication() {
-        return SecurityContextHolder.getContext().getAuthentication();
-    }
-
-    /**
-     * 获取当前请求的权限信息
-     * @return
-     */
-    public static List<SimpleGrantedAuthority> getCurrentAuthorities() {
-        return (List<SimpleGrantedAuthority>) SecurityContextHolder.getContext().getAuthentication().getAuthorities();
-    }
-
-    /**
-     * @param role
-     * @return
-     */
-    public static boolean hasRole(String role) {
-        if (!role.startsWith("ROLE_")) {
-            role = "ROLE_" + role;
-        }
-        boolean hasRole = false;
-        List<SimpleGrantedAuthority> list = getCurrentAuthorities();
-        for (SimpleGrantedAuthority s : list) {
-            if (role.equals(s.getAuthority())) {
-                hasRole = true;
-                break;
-            }
-        }
-        return hasRole;
-    }
-
-}

+ 5 - 5
feedback-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java

@@ -1,12 +1,12 @@
 package com.diagbot.aop;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.entity.SysLog;
 import com.diagbot.rabbit.MySender;
+import com.diagbot.util.GsonUtil;
 import com.diagbot.util.HttpUtils;
+import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
-import org.apache.commons.lang.StringUtils;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
@@ -53,16 +53,16 @@ public class SysLoggerAspect {
         Object[] args = joinPoint.getArgs();
         String params="";
         for(Object o:args){
-            params+=JSON.toJSONString(o);
+            params+=GsonUtil.toJson(o);
         }
-        if(!StringUtils.isEmpty(params)) {
+        if(!StringUtil.isEmpty(params)) {
             sysLog.setParams(params);
         }
         //设置IP地址
         sysLog.setIp(HttpUtils.getIpAddress());
         //用户名
         String username = UserUtils.getCurrentPrinciple();
-        if(!StringUtils.isEmpty(username)) {
+        if(!StringUtil.isEmpty(username)) {
             sysLog.setUsername(username);
         }
         sysLog.setGmtCreate(new Date());

+ 2 - 2
feedback-service/src/main/java/com/diagbot/rabbit/MySender.java

@@ -1,7 +1,7 @@
 package com.diagbot.rabbit;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.entity.SysLog;
+import com.diagbot.util.GsonUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.cloud.stream.annotation.EnableBinding;
@@ -22,6 +22,6 @@ public class MySender {
     MessageChannel outputLog;
 
     public void outputLogSend(SysLog sysLog){
-        outputLog.send(MessageBuilder.withPayload(JSON.toJSONString(sysLog)).build());
+        outputLog.send(MessageBuilder.withPayload(GsonUtil.toJson(sysLog)).build());
     }
 }

+ 0 - 51
feedback-service/src/main/java/com/diagbot/util/BeanUtil.java

@@ -1,51 +0,0 @@
-package com.diagbot.util;
-
-
-import org.springframework.beans.BeanUtils;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @Description: 对象转换工具类
- * @author: gaodm
- * @date: 2017/12/28 10:16
- * @version: V1.0
- */
-public class BeanUtil {
-    /**
-     * 把一个对象的属性值复制给另外一个对象的属性值
-     * @param source 源对象,被转换的对象
-     * @param target 目标对象,即转换后对象
-     */
-    public static void copyProperties(Object source, Object target){
-        BeanUtils.copyProperties(source,target);
-    }
-
-    /**
-     * 复制集合
-     * @param <E>
-     * @param source 转换前的列表
-     * @param destinationClass 转换后列表类
-     * @return 转换后列表
-     */
-    public static <E> List<E> listCopyTo(List<?> source, Class<E> destinationClass){
-        try{
-            if (source.size() == 0){
-                return Collections.emptyList();
-            }
-            List<E> res = new ArrayList<E>(source.size());
-            for (Object o : source) {
-                E e = destinationClass.newInstance();
-                BeanUtils.copyProperties(o, e);
-                res.add(e);
-            }
-            return res;
-        }catch (IllegalAccessException ex){
-            throw new RuntimeException(ex);
-        }catch (InstantiationException ex){
-            throw new RuntimeException(ex);
-        }
-    }
-}

+ 0 - 92
feedback-service/src/main/java/com/diagbot/util/EntityUtil.java

@@ -1,92 +0,0 @@
-package com.diagbot.util;
-
-import lombok.extern.slf4j.Slf4j;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 实体对象工具类
- * @author: gaodm
- * @time: 2018/2/11 10:09
- */
-@Slf4j
-public class EntityUtil {
-
-    /**
-     *
-     * 将list中的元素放到Map<K, V>以建立 key - value 索引<p>
-     *
-     * @param list  List<V> 元素列表
-     * @param keyFieldName String 元素的属性名称, 该属性的值作为索引key
-     * @param <K> key类型
-     * @param <V> value类型
-     * @return Map<K, V> key - value 索引
-     */
-    @SuppressWarnings("unchecked")
-    public static <K, V> Map<K, V> makeEntityMap(List<V> list, String keyFieldName) {
-        Map<K, V> map = new HashMap<>();
-        if(list == null || list.size() == 0) {
-            return map;
-        }
-        try {
-            Method getter = getMethod(list.get(0).getClass(), keyFieldName, "get");
-            for (V item : list) {
-                map.put((K) getter.invoke(item), item);
-            }
-        } catch (Exception e) {
-            log.error("makeEntityMap error list is " + list, e);
-            return map;
-        }
-        return map;
-    }
-
-    /**
-     *
-     * 将list中的元素放到Map<K, List<V>> 以建立 key - List<value> 索引<p>
-     *
-     * @param list  List<V> 元素列表
-     * @param keyFieldName String 元素的属性名称, 该属性的值作为索引key
-     * @param <K> key类型
-     * @param <V> value类型
-     * @return Map<K, V> key - value 索引
-     */
-    public static <K, V> Map<K, List<V>> makeEntityListMap(List<V> list, String keyFieldName) {
-        Map<K, List<V>> map = new LinkedHashMap<>();
-        if(list == null || list.size() == 0) {
-            return map;
-        }
-        try {
-            Method getter = getMethod(list.get(0).getClass(), keyFieldName, "get");
-            for (V item : list) {
-                @SuppressWarnings("unchecked")
-                K key = (K) getter.invoke(item);
-                List<V> groupList = map.get(key);
-                if (groupList == null) {
-                    groupList = new ArrayList<>();
-                    map.put(key, groupList);
-                }
-                groupList.add(item);
-            }
-        } catch (Exception e) {
-            log.error("makeEntityListMap error list is " + list, e);
-            return map;
-        }
-        return map;
-    }
-
-    /**
-     * 获取getter或setter
-     */
-    @SuppressWarnings("unchecked")
-    private static Method getMethod(@SuppressWarnings("rawtypes") Class clazz, String fieldName,
-                                    String methodPrefix) throws NoSuchMethodException {
-        String first = fieldName.substring(0, 1);
-        String getterName = methodPrefix + fieldName.replaceFirst(first, first.toUpperCase());
-        return clazz.getMethod(getterName);
-    }
-}

+ 0 - 97
feedback-service/src/main/java/com/diagbot/util/HttpUtils.java

@@ -1,97 +0,0 @@
-package com.diagbot.util;
-
-
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Enumeration;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * @Description: http请求功能工具类
- * @author: gaodm
- * @time: 2018/8/3 17:45
- */
-public class HttpUtils {
-
-
-    /**
-     * 尝试获取当前请求的HttpServletRequest实例
-     *
-     * @return HttpServletRequest
-     */
-    public static HttpServletRequest getHttpServletRequest() {
-        try {
-            return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-
-    public static Map<String, String> getHeaders(HttpServletRequest request) {
-        Map<String, String> map = new LinkedHashMap<>();
-        Enumeration<String> enumeration = request.getHeaderNames();
-        while (enumeration.hasMoreElements()) {
-            String key = enumeration.nextElement();
-            String value = request.getHeader(key);
-            map.put(key, value);
-        }
-        return map;
-    }
-
-    /**
-     * 获取请求客户端的真实ip地址
-     *
-     * @param request 请求对象
-     * @return ip地址
-     */
-    public static String getIpAddress(HttpServletRequest request) {
-
-        // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
-        String ip = request.getHeader("X-Forwarded-For");
-
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("Proxy-Client-IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("WL-Proxy-Client-IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("HTTP_CLIENT_IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("HTTP_X_FORWARDED_FOR");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getRemoteAddr();
-            }
-        } else if (ip.length() > 15) {
-            String[] ips = ip.split(",");
-            for (int index = 0; index < ips.length; index++) {
-                String strIp = (String) ips[index];
-                if (!("unknown".equalsIgnoreCase(strIp))) {
-                    ip = strIp;
-                    break;
-                }
-            }
-        }
-        return ip;
-    }
-
-    /**
-     * 获取请求客户端的真实ip地址
-     *
-     * @param
-     * @return ip地址
-     */
-    public static String getIpAddress() {
-        // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
-        return getIpAddress(getHttpServletRequest());
-    }
-
-
-}

+ 0 - 93
feedback-service/src/main/java/com/diagbot/util/UserUtils.java

@@ -1,93 +0,0 @@
-package com.diagbot.util;
-
-
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 用户工具类
- * @author: gaodm
- * @time: 2018/8/3 17:46
- */
-public class UserUtils {
-
-    private static final String AUTHORIZATION = "authorization";
-
-    /**
-     * 获取当前请求的token
-     * @return
-     */
-    public static String getCurrentToken() {
-        return HttpUtils.getHeaders(HttpUtils.getHttpServletRequest()).get(AUTHORIZATION);
-    }
-
-    /**
-     * 获取当前请求的用户名称
-     * @return
-     */
-    public static String getCurrentPrinciple() {
-        return (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
-    }
-
-    /**
-     * 获取当前请求的用户ID
-     * @return
-     */
-    public static String getCurrentPrincipleID() {
-        OAuth2AuthenticationDetails oauthDetails = (OAuth2AuthenticationDetails) SecurityContextHolder.getContext().getAuthentication().getDetails();
-        Map<String, Object> details = (Map<String, Object>) oauthDetails.getDecodedDetails();
-        return details.get("user_id").toString();
-    }
-
-    /**
-     * 判读当前token用户是否为接口所需的参数username
-     *
-     * @param username
-     * @return
-     */
-    public static boolean isMyself(String username) {
-        return username.equals(getCurrentPrinciple());
-    }
-
-    /**
-     * 获取当前请求Authentication
-     *
-     * @return
-     */
-    public static Authentication getCurrentAuthentication() {
-        return SecurityContextHolder.getContext().getAuthentication();
-    }
-
-    /**
-     * 获取当前请求的权限信息
-     * @return
-     */
-    public static List<SimpleGrantedAuthority> getCurrentAuthorities() {
-        return (List<SimpleGrantedAuthority>) SecurityContextHolder.getContext().getAuthentication().getAuthorities();
-    }
-
-    /**
-     * @param role
-     * @return
-     */
-    public static boolean hasRole(String role) {
-        if (!role.startsWith("ROLE_")) {
-            role = "ROLE_" + role;
-        }
-        boolean hasRole = false;
-        List<SimpleGrantedAuthority> list = getCurrentAuthorities();
-        for (SimpleGrantedAuthority s : list) {
-            if (role.equals(s.getAuthority())) {
-                hasRole = true;
-                break;
-            }
-        }
-        return hasRole;
-    }
-
-}

+ 5 - 5
knowledge-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java

@@ -1,12 +1,12 @@
 package com.diagbot.aop;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.entity.SysLog;
 import com.diagbot.rabbit.MySender;
+import com.diagbot.util.GsonUtil;
 import com.diagbot.util.HttpUtils;
+import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
-import org.apache.commons.lang.StringUtils;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
@@ -53,16 +53,16 @@ public class SysLoggerAspect {
         Object[] args = joinPoint.getArgs();
         String params="";
         for(Object o:args){
-            params+=JSON.toJSONString(o);
+            params+=GsonUtil.toJson(o);
         }
-        if(!StringUtils.isEmpty(params)) {
+        if(!StringUtil.isEmpty(params)) {
             sysLog.setParams(params);
         }
         //设置IP地址
         sysLog.setIp(HttpUtils.getIpAddress());
         //用户名
         String username = UserUtils.getCurrentPrinciple();
-        if(!StringUtils.isEmpty(username)) {
+        if(!StringUtil.isEmpty(username)) {
             sysLog.setUsername(username);
         }
         sysLog.setGmtCreate(new Date());

+ 2 - 2
knowledge-service/src/main/java/com/diagbot/rabbit/MySender.java

@@ -1,7 +1,7 @@
 package com.diagbot.rabbit;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.entity.SysLog;
+import com.diagbot.util.GsonUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.cloud.stream.annotation.EnableBinding;
@@ -22,6 +22,6 @@ public class MySender {
     MessageChannel outputLog;
 
     public void outputLogSend(SysLog sysLog){
-        outputLog.send(MessageBuilder.withPayload(JSON.toJSONString(sysLog)).build());
+        outputLog.send(MessageBuilder.withPayload(GsonUtil.toJson(sysLog)).build());
     }
 }

+ 5 - 6
log-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java

@@ -1,13 +1,12 @@
 package com.diagbot.aop;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.entity.SysLog;
-import com.diagbot.facade.SysLogFacade;
 import com.diagbot.rabbit.MySender;
+import com.diagbot.util.GsonUtil;
 import com.diagbot.util.HttpUtils;
+import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
-import org.apache.commons.lang.StringUtils;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
@@ -54,16 +53,16 @@ public class SysLoggerAspect {
         Object[] args = joinPoint.getArgs();
         String params="";
         for(Object o:args){
-            params+=JSON.toJSONString(o);
+            params+=GsonUtil.toJson(o);
         }
-        if(!StringUtils.isEmpty(params)) {
+        if(!StringUtil.isEmpty(params)) {
             sysLog.setParams(params);
         }
         //设置IP地址
         sysLog.setIp(HttpUtils.getIpAddress());
         //用户名
         String username = UserUtils.getCurrentPrinciple();
-        if(!StringUtils.isEmpty(username)) {
+        if(!StringUtil.isEmpty(username)) {
             sysLog.setUsername(username);
         }
         sysLog.setGmtCreate(new Date());

+ 2 - 2
log-service/src/main/java/com/diagbot/rabbit/MyReceiver.java

@@ -1,8 +1,8 @@
 package com.diagbot.rabbit;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.entity.SysLog;
 import com.diagbot.facade.SysLogFacade;
+import com.diagbot.util.GsonUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.stream.annotation.EnableBinding;
 import org.springframework.cloud.stream.annotation.StreamListener;
@@ -19,7 +19,7 @@ public class MyReceiver {
     @StreamListener(MyProcessor.INPUT_LOG)
     public void inputLog (String message) {
         System.out.println("Received <" + message + ">");
-        SysLog sysLog=  JSON.parseObject(message, SysLog.class);
+        SysLog sysLog=  GsonUtil.toObject(message, SysLog.class);
         sysLogFacade.save(sysLog);
     }
 }

+ 2 - 2
log-service/src/main/java/com/diagbot/rabbit/MySender.java

@@ -1,7 +1,7 @@
 package com.diagbot.rabbit;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.entity.SysLog;
+import com.diagbot.util.GsonUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.cloud.stream.annotation.EnableBinding;
@@ -22,6 +22,6 @@ public class MySender {
     MessageChannel outputLog;
 
     public void outputLogSend(SysLog sysLog){
-        outputLog.send(MessageBuilder.withPayload(JSON.toJSONString(sysLog)).build());
+        outputLog.send(MessageBuilder.withPayload(GsonUtil.toJson(sysLog)).build());
     }
 }

+ 0 - 51
log-service/src/main/java/com/diagbot/util/BeanUtil.java

@@ -1,51 +0,0 @@
-package com.diagbot.util;
-
-
-import org.springframework.beans.BeanUtils;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @Description: 对象转换工具类
- * @author: gaodm
- * @date: 2017/12/28 10:16
- * @version: V1.0
- */
-public class BeanUtil {
-    /**
-     * 把一个对象的属性值复制给另外一个对象的属性值
-     * @param source 源对象,被转换的对象
-     * @param target 目标对象,即转换后对象
-     */
-    public static void copyProperties(Object source, Object target){
-        BeanUtils.copyProperties(source,target);
-    }
-
-    /**
-     * 复制集合
-     * @param <E>
-     * @param source 转换前的列表
-     * @param destinationClass 转换后列表类
-     * @return 转换后列表
-     */
-    public static <E> List<E> listCopyTo(List<?> source, Class<E> destinationClass){
-        try{
-            if (source.size() == 0){
-                return Collections.emptyList();
-            }
-            List<E> res = new ArrayList<E>(source.size());
-            for (Object o : source) {
-                E e = destinationClass.newInstance();
-                BeanUtils.copyProperties(o, e);
-                res.add(e);
-            }
-            return res;
-        }catch (IllegalAccessException ex){
-            throw new RuntimeException(ex);
-        }catch (InstantiationException ex){
-            throw new RuntimeException(ex);
-        }
-    }
-}

+ 0 - 92
log-service/src/main/java/com/diagbot/util/EntityUtil.java

@@ -1,92 +0,0 @@
-package com.diagbot.util;
-
-import lombok.extern.slf4j.Slf4j;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 实体对象工具类
- * @author: gaodm
- * @time: 2018/2/11 10:09
- */
-@Slf4j
-public class EntityUtil {
-
-    /**
-     *
-     * 将list中的元素放到Map<K, V>以建立 key - value 索引<p>
-     *
-     * @param list  List<V> 元素列表
-     * @param keyFieldName String 元素的属性名称, 该属性的值作为索引key
-     * @param <K> key类型
-     * @param <V> value类型
-     * @return Map<K, V> key - value 索引
-     */
-    @SuppressWarnings("unchecked")
-    public static <K, V> Map<K, V> makeEntityMap(List<V> list, String keyFieldName) {
-        Map<K, V> map = new HashMap<>();
-        if(list == null || list.size() == 0) {
-            return map;
-        }
-        try {
-            Method getter = getMethod(list.get(0).getClass(), keyFieldName, "get");
-            for (V item : list) {
-                map.put((K) getter.invoke(item), item);
-            }
-        } catch (Exception e) {
-            log.error("makeEntityMap error list is " + list, e);
-            return map;
-        }
-        return map;
-    }
-
-    /**
-     *
-     * 将list中的元素放到Map<K, List<V>> 以建立 key - List<value> 索引<p>
-     *
-     * @param list  List<V> 元素列表
-     * @param keyFieldName String 元素的属性名称, 该属性的值作为索引key
-     * @param <K> key类型
-     * @param <V> value类型
-     * @return Map<K, V> key - value 索引
-     */
-    public static <K, V> Map<K, List<V>> makeEntityListMap(List<V> list, String keyFieldName) {
-        Map<K, List<V>> map = new LinkedHashMap<>();
-        if(list == null || list.size() == 0) {
-            return map;
-        }
-        try {
-            Method getter = getMethod(list.get(0).getClass(), keyFieldName, "get");
-            for (V item : list) {
-                @SuppressWarnings("unchecked")
-                K key = (K) getter.invoke(item);
-                List<V> groupList = map.get(key);
-                if (groupList == null) {
-                    groupList = new ArrayList<>();
-                    map.put(key, groupList);
-                }
-                groupList.add(item);
-            }
-        } catch (Exception e) {
-            log.error("makeEntityListMap error list is " + list, e);
-            return map;
-        }
-        return map;
-    }
-
-    /**
-     * 获取getter或setter
-     */
-    @SuppressWarnings("unchecked")
-    private static Method getMethod(@SuppressWarnings("rawtypes") Class clazz, String fieldName,
-                                    String methodPrefix) throws NoSuchMethodException {
-        String first = fieldName.substring(0, 1);
-        String getterName = methodPrefix + fieldName.replaceFirst(first, first.toUpperCase());
-        return clazz.getMethod(getterName);
-    }
-}

+ 0 - 97
log-service/src/main/java/com/diagbot/util/HttpUtils.java

@@ -1,97 +0,0 @@
-package com.diagbot.util;
-
-
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Enumeration;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * @Description: http请求功能工具类
- * @author: gaodm
- * @time: 2018/8/3 17:45
- */
-public class HttpUtils {
-
-
-    /**
-     * 尝试获取当前请求的HttpServletRequest实例
-     *
-     * @return HttpServletRequest
-     */
-    public static HttpServletRequest getHttpServletRequest() {
-        try {
-            return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-
-    public static Map<String, String> getHeaders(HttpServletRequest request) {
-        Map<String, String> map = new LinkedHashMap<>();
-        Enumeration<String> enumeration = request.getHeaderNames();
-        while (enumeration.hasMoreElements()) {
-            String key = enumeration.nextElement();
-            String value = request.getHeader(key);
-            map.put(key, value);
-        }
-        return map;
-    }
-
-    /**
-     * 获取请求客户端的真实ip地址
-     *
-     * @param request 请求对象
-     * @return ip地址
-     */
-    public static String getIpAddress(HttpServletRequest request) {
-
-        // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
-        String ip = request.getHeader("X-Forwarded-For");
-
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("Proxy-Client-IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("WL-Proxy-Client-IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("HTTP_CLIENT_IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("HTTP_X_FORWARDED_FOR");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getRemoteAddr();
-            }
-        } else if (ip.length() > 15) {
-            String[] ips = ip.split(",");
-            for (int index = 0; index < ips.length; index++) {
-                String strIp = (String) ips[index];
-                if (!("unknown".equalsIgnoreCase(strIp))) {
-                    ip = strIp;
-                    break;
-                }
-            }
-        }
-        return ip;
-    }
-
-    /**
-     * 获取请求客户端的真实ip地址
-     *
-     * @param
-     * @return ip地址
-     */
-    public static String getIpAddress() {
-        // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
-        return getIpAddress(getHttpServletRequest());
-    }
-
-
-}

+ 0 - 93
log-service/src/main/java/com/diagbot/util/UserUtils.java

@@ -1,93 +0,0 @@
-package com.diagbot.util;
-
-
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 用户工具类
- * @author: gaodm
- * @time: 2018/8/3 17:46
- */
-public class UserUtils {
-
-    private static final String AUTHORIZATION = "authorization";
-
-    /**
-     * 获取当前请求的token
-     * @return
-     */
-    public static String getCurrentToken() {
-        return HttpUtils.getHeaders(HttpUtils.getHttpServletRequest()).get(AUTHORIZATION);
-    }
-
-    /**
-     * 获取当前请求的用户名称
-     * @return
-     */
-    public static String getCurrentPrinciple() {
-        return (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
-    }
-
-    /**
-     * 获取当前请求的用户ID
-     * @return
-     */
-    public static String getCurrentPrincipleID() {
-        OAuth2AuthenticationDetails oauthDetails = (OAuth2AuthenticationDetails) SecurityContextHolder.getContext().getAuthentication().getDetails();
-        Map<String, Object> details = (Map<String, Object>) oauthDetails.getDecodedDetails();
-        return details.get("user_id").toString();
-    }
-
-    /**
-     * 判读当前token用户是否为接口所需的参数username
-     *
-     * @param username
-     * @return
-     */
-    public static boolean isMyself(String username) {
-        return username.equals(getCurrentPrinciple());
-    }
-
-    /**
-     * 获取当前请求Authentication
-     *
-     * @return
-     */
-    public static Authentication getCurrentAuthentication() {
-        return SecurityContextHolder.getContext().getAuthentication();
-    }
-
-    /**
-     * 获取当前请求的权限信息
-     * @return
-     */
-    public static List<SimpleGrantedAuthority> getCurrentAuthorities() {
-        return (List<SimpleGrantedAuthority>) SecurityContextHolder.getContext().getAuthentication().getAuthorities();
-    }
-
-    /**
-     * @param role
-     * @return
-     */
-    public static boolean hasRole(String role) {
-        if (!role.startsWith("ROLE_")) {
-            role = "ROLE_" + role;
-        }
-        boolean hasRole = false;
-        List<SimpleGrantedAuthority> list = getCurrentAuthorities();
-        for (SimpleGrantedAuthority s : list) {
-            if (role.equals(s.getAuthority())) {
-                hasRole = true;
-                break;
-            }
-        }
-        return hasRole;
-    }
-
-}

+ 3 - 4
uaa-service/src/main/java/com/diagbot/config/CustomTokenEnhancer.java

@@ -9,11 +9,10 @@ import org.springframework.security.oauth2.provider.token.TokenEnhancer;
 import java.util.HashMap;
 import java.util.Map;
 
-
 /**
- *
- * token生成携带的信息
- *
+ * @Description: token生成携带的信息
+ * @author: gaodm
+ * @time: 2018/9/3 15:16
  */
 public class CustomTokenEnhancer implements TokenEnhancer {
 

+ 5 - 5
user-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java

@@ -1,12 +1,12 @@
 package com.diagbot.aop;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.entity.SysLog;
 import com.diagbot.rabbit.MySender;
+import com.diagbot.util.GsonUtil;
 import com.diagbot.util.HttpUtils;
+import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
-import org.apache.commons.lang.StringUtils;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
@@ -53,16 +53,16 @@ public class SysLoggerAspect {
         Object[] args = joinPoint.getArgs();
         String params="";
         for(Object o:args){
-            params+=JSON.toJSONString(o);
+            params+=GsonUtil.toJson(o);
         }
-        if(!StringUtils.isEmpty(params)) {
+        if(!StringUtil.isEmpty(params)) {
             sysLog.setParams(params);
         }
         //设置IP地址
         sysLog.setIp(HttpUtils.getIpAddress());
         //用户名
         String username = UserUtils.getCurrentPrinciple();
-        if(!StringUtils.isEmpty(username)) {
+        if(!StringUtil.isEmpty(username)) {
             sysLog.setUsername(username);
         }
         sysLog.setGmtCreate(new Date());

+ 26 - 0
user-service/src/main/java/com/diagbot/entity/SwsVerInfo.java

@@ -0,0 +1,26 @@
+package com.diagbot.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @Description: 用户短信验证信息
+ * @author: gaodm
+ * @time: 2018/9/3 15:38
+ */
+@Getter
+@Setter
+public class SwsVerInfo {
+    //用户ID
+    private Integer userId;
+    //用户电话
+    private String mobile;
+    //验证码
+    private String code;
+    //创建时间
+    private Date createTime;
+    //验证码过期时间
+    private Date expireTime;
+}

+ 2 - 2
user-service/src/main/java/com/diagbot/rabbit/MySender.java

@@ -1,7 +1,7 @@
 package com.diagbot.rabbit;
 
-import com.alibaba.fastjson.JSON;
 import com.diagbot.entity.SysLog;
+import com.diagbot.util.GsonUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.cloud.stream.annotation.EnableBinding;
@@ -22,6 +22,6 @@ public class MySender {
     MessageChannel outputLog;
 
     public void outputLogSend(SysLog sysLog){
-        outputLog.send(MessageBuilder.withPayload(JSON.toJSONString(sysLog)).build());
+        outputLog.send(MessageBuilder.withPayload(GsonUtil.toJson(sysLog)).build());
     }
 }

+ 0 - 51
user-service/src/main/java/com/diagbot/util/BeanUtil.java

@@ -1,51 +0,0 @@
-package com.diagbot.util;
-
-
-import org.springframework.beans.BeanUtils;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @Description: 对象转换工具类
- * @author: gaodm
- * @date: 2017/12/28 10:16
- * @version: V1.0
- */
-public class BeanUtil {
-    /**
-     * 把一个对象的属性值复制给另外一个对象的属性值
-     * @param source 源对象,被转换的对象
-     * @param target 目标对象,即转换后对象
-     */
-    public static void copyProperties(Object source, Object target){
-        BeanUtils.copyProperties(source,target);
-    }
-
-    /**
-     * 复制集合
-     * @param <E>
-     * @param source 转换前的列表
-     * @param destinationClass 转换后列表类
-     * @return 转换后列表
-     */
-    public static <E> List<E> listCopyTo(List<?> source, Class<E> destinationClass){
-        try{
-            if (source.size() == 0){
-                return Collections.emptyList();
-            }
-            List<E> res = new ArrayList<E>(source.size());
-            for (Object o : source) {
-                E e = destinationClass.newInstance();
-                BeanUtils.copyProperties(o, e);
-                res.add(e);
-            }
-            return res;
-        }catch (IllegalAccessException ex){
-            throw new RuntimeException(ex);
-        }catch (InstantiationException ex){
-            throw new RuntimeException(ex);
-        }
-    }
-}

+ 0 - 92
user-service/src/main/java/com/diagbot/util/EntityUtil.java

@@ -1,92 +0,0 @@
-package com.diagbot.util;
-
-import lombok.extern.slf4j.Slf4j;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 实体对象工具类
- * @author: gaodm
- * @time: 2018/2/11 10:09
- */
-@Slf4j
-public class EntityUtil {
-
-    /**
-     *
-     * 将list中的元素放到Map<K, V>以建立 key - value 索引<p>
-     *
-     * @param list  List<V> 元素列表
-     * @param keyFieldName String 元素的属性名称, 该属性的值作为索引key
-     * @param <K> key类型
-     * @param <V> value类型
-     * @return Map<K, V> key - value 索引
-     */
-    @SuppressWarnings("unchecked")
-    public static <K, V> Map<K, V> makeEntityMap(List<V> list, String keyFieldName) {
-        Map<K, V> map = new HashMap<>();
-        if(list == null || list.size() == 0) {
-            return map;
-        }
-        try {
-            Method getter = getMethod(list.get(0).getClass(), keyFieldName, "get");
-            for (V item : list) {
-                map.put((K) getter.invoke(item), item);
-            }
-        } catch (Exception e) {
-            log.error("makeEntityMap error list is " + list, e);
-            return map;
-        }
-        return map;
-    }
-
-    /**
-     *
-     * 将list中的元素放到Map<K, List<V>> 以建立 key - List<value> 索引<p>
-     *
-     * @param list  List<V> 元素列表
-     * @param keyFieldName String 元素的属性名称, 该属性的值作为索引key
-     * @param <K> key类型
-     * @param <V> value类型
-     * @return Map<K, V> key - value 索引
-     */
-    public static <K, V> Map<K, List<V>> makeEntityListMap(List<V> list, String keyFieldName) {
-        Map<K, List<V>> map = new LinkedHashMap<>();
-        if(list == null || list.size() == 0) {
-            return map;
-        }
-        try {
-            Method getter = getMethod(list.get(0).getClass(), keyFieldName, "get");
-            for (V item : list) {
-                @SuppressWarnings("unchecked")
-                K key = (K) getter.invoke(item);
-                List<V> groupList = map.get(key);
-                if (groupList == null) {
-                    groupList = new ArrayList<>();
-                    map.put(key, groupList);
-                }
-                groupList.add(item);
-            }
-        } catch (Exception e) {
-            log.error("makeEntityListMap error list is " + list, e);
-            return map;
-        }
-        return map;
-    }
-
-    /**
-     * 获取getter或setter
-     */
-    @SuppressWarnings("unchecked")
-    private static Method getMethod(@SuppressWarnings("rawtypes") Class clazz, String fieldName,
-                                    String methodPrefix) throws NoSuchMethodException {
-        String first = fieldName.substring(0, 1);
-        String getterName = methodPrefix + fieldName.replaceFirst(first, first.toUpperCase());
-        return clazz.getMethod(getterName);
-    }
-}

+ 0 - 97
user-service/src/main/java/com/diagbot/util/HttpUtils.java

@@ -1,97 +0,0 @@
-package com.diagbot.util;
-
-
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Enumeration;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * @Description: http请求功能工具类
- * @author: gaodm
- * @time: 2018/8/3 17:45
- */
-public class HttpUtils {
-
-
-    /**
-     * 尝试获取当前请求的HttpServletRequest实例
-     *
-     * @return HttpServletRequest
-     */
-    public static HttpServletRequest getHttpServletRequest() {
-        try {
-            return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-
-    public static Map<String, String> getHeaders(HttpServletRequest request) {
-        Map<String, String> map = new LinkedHashMap<>();
-        Enumeration<String> enumeration = request.getHeaderNames();
-        while (enumeration.hasMoreElements()) {
-            String key = enumeration.nextElement();
-            String value = request.getHeader(key);
-            map.put(key, value);
-        }
-        return map;
-    }
-
-    /**
-     * 获取请求客户端的真实ip地址
-     *
-     * @param request 请求对象
-     * @return ip地址
-     */
-    public static String getIpAddress(HttpServletRequest request) {
-
-        // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
-        String ip = request.getHeader("X-Forwarded-For");
-
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("Proxy-Client-IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("WL-Proxy-Client-IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("HTTP_CLIENT_IP");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getHeader("HTTP_X_FORWARDED_FOR");
-            }
-            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
-                ip = request.getRemoteAddr();
-            }
-        } else if (ip.length() > 15) {
-            String[] ips = ip.split(",");
-            for (int index = 0; index < ips.length; index++) {
-                String strIp = (String) ips[index];
-                if (!("unknown".equalsIgnoreCase(strIp))) {
-                    ip = strIp;
-                    break;
-                }
-            }
-        }
-        return ip;
-    }
-
-    /**
-     * 获取请求客户端的真实ip地址
-     *
-     * @param
-     * @return ip地址
-     */
-    public static String getIpAddress() {
-        // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
-        return getIpAddress(getHttpServletRequest());
-    }
-
-
-}

+ 41 - 0
user-service/src/main/java/com/diagbot/util/VerCodeUtil.java

@@ -0,0 +1,41 @@
+package com.diagbot.util;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * @Description: 生成随机码
+ * @author: gaodm
+ * @time: 2018/9/3 15:21
+ */
+public final class VerCodeUtil {
+
+    private static final String AUTH_CODE = "0123456789";
+
+    public static String getVerCode()
+    {
+        StringBuilder sb = new StringBuilder();
+        for(int i = 0; i < 6; i++)
+        {
+            int index = new Random().nextInt(AUTH_CODE.length());
+            sb.append(AUTH_CODE.charAt(index));
+        }
+        return sb.toString();
+    }
+
+    public static void main(String[] args) {
+        List<String> test = new ArrayList<>();
+        //int i = 0;
+        while(true){
+            String result = getVerCode();
+            if(test.contains(result)){
+                System.out.println("出现了重复编码:" + result);
+                break;
+            }
+            test.add(result);
+            //System.out.println(i++);
+            System.out.println(result);
+        }
+    }
+}