mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 21:57:56 +08:00
代码优化
This commit is contained in:
@@ -67,12 +67,8 @@ public class OpenUtil {
|
|||||||
for (Map.Entry<String, String[]> entry : entrySet) {
|
for (Map.Entry<String, String[]> entry : entrySet) {
|
||||||
String name = entry.getKey();
|
String name = entry.getKey();
|
||||||
String[] values = entry.getValue();
|
String[] values = entry.getValue();
|
||||||
if (values.length == 1) {
|
if (values.length >= 1) {
|
||||||
retMap.put(name, values[0]);
|
retMap.put(name, values[0]);
|
||||||
} else if (values.length > 1) {
|
|
||||||
retMap.put(name, values);
|
|
||||||
} else {
|
|
||||||
retMap.put(name, "");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -127,13 +127,26 @@ public class AlipayController {
|
|||||||
|
|
||||||
// http://localhost:2222/alipay.story.get/
|
// http://localhost:2222/alipay.story.get/
|
||||||
@ApiMapping(value = "alipay.story.get")
|
@ApiMapping(value = "alipay.story.get")
|
||||||
public Story getStory() {
|
public Story getStory(Story param) {
|
||||||
Story story = new Story();
|
Story story = new Story();
|
||||||
story.setId(1);
|
story.setId(1);
|
||||||
story.setName("海底小纵队(alipay.story.get1.0)");
|
story.setName("海底小纵队(alipay.story.get1.0), param:" + param);
|
||||||
return story;
|
return story;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param param 对应biz_content中的内容,并自动JSR-303校验
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiMapping(value = "alipay.story.get", version = "1.2")
|
||||||
|
public Story getStory11(Story param) {
|
||||||
|
Story story2 = new Story();
|
||||||
|
story2.setId(1);
|
||||||
|
story2.setName("海底小纵队(alipay.story.get1.2), param:" + param);
|
||||||
|
return story2;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 参数绑定
|
* 参数绑定
|
||||||
* @param story 对应biz_content中的内容,并自动JSR-303校验
|
* @param story 对应biz_content中的内容,并自动JSR-303校验
|
||||||
@@ -153,19 +166,6 @@ public class AlipayController {
|
|||||||
return storyVO;
|
return storyVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param story 对应biz_content中的内容,并自动JSR-303校验
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@ApiMapping(value = "alipay.story.get", version = "1.2")
|
|
||||||
public Story getStory11(Story story) {
|
|
||||||
Story story2 = new Story();
|
|
||||||
story2.setId(1);
|
|
||||||
story2.setName("海底小纵队(alipay.story.get1.2)");
|
|
||||||
return story2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 演示文档表格树
|
* 演示文档表格树
|
||||||
* @param story
|
* @param story
|
||||||
|
@@ -0,0 +1,116 @@
|
|||||||
|
package com.gitee.sop.gateway.config;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.gitee.sop.gatewaycommon.param.ApiParam;
|
||||||
|
import com.gitee.sop.gatewaycommon.param.ParamNames;
|
||||||
|
import com.gitee.sop.gatewaycommon.zuul.ZuulContext;
|
||||||
|
import com.gitee.sop.gatewaycommon.zuul.filter.BaseZuulFilter;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import com.netflix.zuul.context.RequestContext;
|
||||||
|
import com.netflix.zuul.exception.ZuulException;
|
||||||
|
import com.netflix.zuul.http.HttpServletRequestWrapper;
|
||||||
|
import com.netflix.zuul.http.ServletInputStreamWrapper;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
|
||||||
|
import javax.servlet.ServletInputStream;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author tanghc
|
||||||
|
*/
|
||||||
|
public class PreParamFilter extends BaseZuulFilter {
|
||||||
|
@Override
|
||||||
|
protected FilterType getFilterType() {
|
||||||
|
return FilterType.PRE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getFilterOrder() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Object doRun(RequestContext requestContext) throws ZuulException {
|
||||||
|
ApiParam apiParam = ZuulContext.getApiParam();
|
||||||
|
JSONObject bizContent = apiParam.getJSONObject(ParamNames.BIZ_CONTENT_NAME);
|
||||||
|
// 修改biz_content中的参数
|
||||||
|
bizContent.put("name", "修改了111");
|
||||||
|
apiParam.put(ParamNames.BIZ_CONTENT_NAME, bizContent.toJSONString());
|
||||||
|
|
||||||
|
HttpServletRequest request = requestContext.getRequest();
|
||||||
|
String contentType = request.getContentType();
|
||||||
|
if (StringUtils.containsIgnoreCase(contentType, "json")) {
|
||||||
|
byte[] bytes = apiParam.toJSONString().getBytes(StandardCharsets.UTF_8);
|
||||||
|
requestContext.setRequest(new HttpServletRequestWrapper(requestContext.getRequest()) {
|
||||||
|
@Override
|
||||||
|
public ServletInputStream getInputStream() throws IOException {
|
||||||
|
return new ServletInputStreamWrapper(bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public byte[] getContentData() {
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getContentLength() {
|
||||||
|
return bytes.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getContentLengthLong() {
|
||||||
|
return bytes.length;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if(StringUtils.containsIgnoreCase(contentType, "form")) {
|
||||||
|
List<String> list = Lists.newArrayList();
|
||||||
|
try {
|
||||||
|
for (Map.Entry<String, Object> entry : apiParam.entrySet()) {
|
||||||
|
list.add(entry.getKey() + "=" + URLEncoder.encode(String.valueOf(entry.getValue()), "UTF-8"));
|
||||||
|
}
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
String paramsStr = StringUtils.join(list, "&");
|
||||||
|
byte[] bytes = paramsStr.getBytes(StandardCharsets.UTF_8);
|
||||||
|
requestContext.setRequest(new HttpServletRequestWrapper(requestContext.getRequest()) {
|
||||||
|
@Override
|
||||||
|
public ServletInputStream getInputStream() throws IOException {
|
||||||
|
return new ServletInputStreamWrapper(bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public byte[] getContentData() {
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getContentLength() {
|
||||||
|
return bytes.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getContentLengthLong() {
|
||||||
|
return bytes.length;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if(HttpMethod.GET.name().equalsIgnoreCase(request.getMethod())) {
|
||||||
|
Map<String, List<String>> newParams = Maps.newHashMap();
|
||||||
|
for (Map.Entry<String, Object> entry : apiParam.entrySet()) {
|
||||||
|
newParams.put(entry.getKey(), Collections.singletonList(String.valueOf(entry.getValue())));
|
||||||
|
}
|
||||||
|
requestContext.setRequestQueryParams(newParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user