diff --git a/epmet-gateway/src/main/java/com/epmet/filter/FeignRequestFilter.java b/epmet-gateway/src/main/java/com/epmet/filter/FeignRequestFilter.java index 40a9e363ab..aeb3975b59 100644 --- a/epmet-gateway/src/main/java/com/epmet/filter/FeignRequestFilter.java +++ b/epmet-gateway/src/main/java/com/epmet/filter/FeignRequestFilter.java @@ -17,8 +17,6 @@ import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; -import java.util.UUID; - /** * Feign调用发送请求的Filter * 目前用于封装用户相关信息到request,供上游微服务使用 @@ -58,11 +56,28 @@ public class FeignRequestFilter implements GlobalFilter, UserTokenFilter { if (baseTokenDto != null) { ServerHttpRequest build = exchange.getRequest().mutate() .header(AppClientConstant.USER_ID, new String[]{baseTokenDto.getUserId()}) - .header(AppClientConstant.TRANSACTION_SERIAL_KEY, new String[]{UUID.randomUUID().toString()}) + .header(AppClientConstant.TRANSACTION_SERIAL_KEY, new String[]{getTransactionSerial()}) .build(); return chain.filter(exchange.mutate().request(build).build()); } return chain.filter(exchange); } + + /** + * 获取事务流水号 + * @return + */ + public static String getTransactionSerial() { + String[] letterPool = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n" + , "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}; + + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < 2; i++) { + sb.append(letterPool[(int) (Math.random() * 25)]); + } + + sb.append(System.currentTimeMillis()); + return sb.toString(); + } }