Browse Source

1.修改事务流水号的生成规则,两位随机英文字母+时间戳

dev_shibei_match
wxz 5 years ago
parent
commit
15ebe5d3b3
  1. 21
      epmet-gateway/src/main/java/com/epmet/filter/FeignRequestFilter.java

21
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 org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import java.util.UUID;
/** /**
* Feign调用发送请求的Filter * Feign调用发送请求的Filter
* 目前用于封装用户相关信息到request供上游微服务使用 * 目前用于封装用户相关信息到request供上游微服务使用
@ -58,11 +56,28 @@ public class FeignRequestFilter implements GlobalFilter, UserTokenFilter {
if (baseTokenDto != null) { if (baseTokenDto != null) {
ServerHttpRequest build = exchange.getRequest().mutate() ServerHttpRequest build = exchange.getRequest().mutate()
.header(AppClientConstant.USER_ID, new String[]{baseTokenDto.getUserId()}) .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(); .build();
return chain.filter(exchange.mutate().request(build).build()); return chain.filter(exchange.mutate().request(build).build());
} }
return chain.filter(exchange); 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();
}
} }

Loading…
Cancel
Save