Commit c09d0d71 by ping.wu

Merge branch 'feature/20220824_后付订单小助手收银无需推支付上报_wuping' of…

Merge branch 'feature/20220824_后付订单小助手收银无需推支付上报_wuping' of https://gitlab.freemud.com/order-group-application/order-group into qa
parents 05d66db1 58bdfd4e
......@@ -31,6 +31,7 @@ import com.freemud.application.sdk.api.ordercenter.entities.vo.OrderCallBackRequ
import com.freemud.application.sdk.api.ordercenter.enums.NewOrderStatus;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType;
import com.freemud.application.sdk.api.ordercenter.enums.PayType;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp;
......@@ -210,7 +211,7 @@ public class OrderCallBackMQService {
try {
OrderInfoReqs orderInfoReqs = JSONObject.parseObject(body.getContent(), OrderInfoReqs.class);
List<Integer> allowOrderClientList = Lists.newArrayList(OrderClientType.SAAS.getIndex(), OrderClientType.ALIPAY.getIndex());
if (orderInfoReqs != null && allowOrderClientList.contains(orderInfoReqs.getOrderClient()) &&
if (orderInfoReqs != null && allowOrderClientList.contains(orderInfoReqs.getOrderClient()) && Objects.equals(PayType.ONLINE_PAY.getCode(),orderInfoReqs.getPayType())&&
((body.getOperateType() == 0 && NewOrderStatus.PENDING_PAYMENT.getIndex().equals(orderInfoReqs.getOrderState())) ||
(body.getOperateType() == 1 && NewOrderStatus.PLACE_AN_ORDER.getIndex().equals(orderInfoReqs.getOrderState())))) {
return orderInfoReqs;
......
......@@ -4,50 +4,60 @@ import cn.freemud.utils.AppLogUtil;
import com.alibaba.fastjson.JSON;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.*;
@Configuration
public class FeignInterceptor implements RequestInterceptor {
@Value("${forward.feign.headers:x-forwarded-for, x-real-ip}")
private Set<String> needHeaders;
@Override
public void apply(RequestTemplate requestTemplate) {
Map<String, String> headers = getHeaders(getHttpServletRequest());
for(String headerName : headers.keySet()){
requestTemplate.header(headerName, getHeaders(getHttpServletRequest()).get(headerName));
HttpServletRequest httpServletRequest = this.getHttpServletRequest();
if (Objects.nonNull(httpServletRequest)) {
Map<String, String> headers = getHeaders(httpServletRequest);
for (String headerName : headers.keySet()) {
requestTemplate.header(headerName, getHeaders(getHttpServletRequest()).get(headerName));
}
}
}
private HttpServletRequest getHttpServletRequest() {
try {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (Objects.isNull(requestAttributes)) {
return null;
}
return requestAttributes.getRequest();
} catch (Exception e) {
AppLogUtil.errorLog("FeignInterceptor error {}", "","", e);
AppLogUtil.errorLog("FeignInterceptor error {}", "", "", e);
return null;
}
}
private Map<String, String> getHeaders(HttpServletRequest request) {
Map<String, String> map = new LinkedHashMap<>();
Enumeration<String> enumeration = request.getHeaderNames();
while (enumeration.hasMoreElements()) {
String key = enumeration.nextElement();
if(needThisHeader(key)){
if (needThisHeader(key)) {
String value = request.getHeader(key);
map.put(key, value);
}
}
AppLogUtil.printLog("clientIp for feign client info:" + JSON.toJSONString(map), "","");
AppLogUtil.printLog("clientIp for feign client info:" + JSON.toJSONString(map), "", "");
return map;
}
private boolean needThisHeader(String headerName){
private boolean needThisHeader(String headerName) {
// TODO:过滤哪些header需要传递,千万不能把所有的header传下去
String[] needHeaders = {"x-forwarded-for", "x-real-ip"};
return Arrays.asList(needHeaders).contains(headerName);
return needHeaders.contains(headerName);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment