diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ApiConfig.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ApiConfig.java index 5f198eab..81195ecc 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ApiConfig.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ApiConfig.java @@ -12,6 +12,7 @@ import com.gitee.sop.gatewaycommon.manager.RouteConfigManager; import com.gitee.sop.gatewaycommon.param.ParamBuilder; import com.gitee.sop.gatewaycommon.result.DataNameBuilder; import com.gitee.sop.gatewaycommon.result.DefaultDataNameBuilder; +import com.gitee.sop.gatewaycommon.result.ResultAppender; import com.gitee.sop.gatewaycommon.result.ResultExecutor; import com.gitee.sop.gatewaycommon.secret.CacheIsvManager; import com.gitee.sop.gatewaycommon.secret.IsvManager; @@ -115,6 +116,11 @@ public class ApiConfig { */ private DataNameBuilder dataNameBuilder = new DefaultDataNameBuilder(); + /** + * 追加结果 + */ + private ResultAppender resultAppender; + // -------- fields --------- /** diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/result/BaseExecutorAdapter.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/result/BaseExecutorAdapter.java index 894f5411..f40d39e2 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/result/BaseExecutorAdapter.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/result/BaseExecutorAdapter.java @@ -132,12 +132,17 @@ public abstract class BaseExecutorAdapter implements ResultExecutor sign = String.valueOf(clientSign); } } - + ApiConfig apiConfig = ApiConfig.getInstance(); // 点换成下划线 - DataNameBuilder dataNameBuilder = ApiConfig.getInstance().getDataNameBuilder(); + DataNameBuilder dataNameBuilder = apiConfig.getDataNameBuilder(); String method = dataNameBuilder.build(name); ret.put(method, jsonObjectService); + // 先隐藏返回签名字段 ret.put(ParamNames.SIGN_NAME, sign); + ResultAppender resultAppender = apiConfig.getResultAppender(); + if (resultAppender != null) { + resultAppender.append(ret, params); + } return ret.toJSONString(); } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/result/ResultAppender.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/result/ResultAppender.java new file mode 100644 index 00000000..210079de --- /dev/null +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/result/ResultAppender.java @@ -0,0 +1,18 @@ +package com.gitee.sop.gatewaycommon.result; + +import com.alibaba.fastjson.JSONObject; + +import java.util.Map; + +/** + * 对结果进行追加 + * @author tanghc + */ +public interface ResultAppender { + /** + * 追加最终结果 + * @param result 最终结果 + * @param params 请求参数 + */ + void append(JSONObject result, Map params); +}