Selaa lähdekoodia

优化代码生成器

java110 6 vuotta sitten
vanhempi
commit
1b4327b3c4

+ 14 - 4
java110-code-generator/src/main/java/com/java110/code/back/BackCoderGeneratorStart.java

@@ -1,6 +1,7 @@
 package com.java110.code.back;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.code.back.Data;
 import com.java110.code.back.GeneratorAbstractBussiness;
@@ -15,8 +16,7 @@ import com.java110.code.back.GeneratorServiceDaoImplMapperListener;
 import com.java110.code.back.GeneratorUpdateInfoListener;
 import com.java110.code.web.GeneratorStart;
 
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Hello world!
@@ -30,8 +30,9 @@ public class BackCoderGeneratorStart extends BaseGenerator {
 
     /**
      * 代码生成器 入口方法
-     *  此处生成的mapper文件包含过程表和实例表的sql,所以要求两张表的特殊字段也要写上
-     *   BusinessTypeCd
+     * 此处生成的mapper文件包含过程表和实例表的sql,所以要求两张表的特殊字段也要写上
+     * BusinessTypeCd
+     *
      * @param args 参数
      */
     public static void main(String[] args) {
@@ -58,6 +59,15 @@ public class BackCoderGeneratorStart extends BaseGenerator {
         data.setTableName(dataJson.getString("tableName"));
         data.setParams(dataJson.getJSONObject("param"));
 
+        JSONArray required = dataJson.getJSONArray("required");
+
+        List<String> paramList = new ArrayList<String>();
+        for (int reqIndex = 0; reqIndex < required.size(); reqIndex++) {
+            JSONObject require = required.getJSONObject(reqIndex);
+            paramList.add(require.getString("code"));
+        }
+        data.setRequiredParam(paramList.toArray(new String[required.size()]));
+
         GeneratorSaveInfoListener generatorSaveInfoListener = new GeneratorSaveInfoListener();
         generatorSaveInfoListener.generator(data);
 

+ 12 - 0
java110-code-generator/src/main/java/com/java110/code/back/BaseGenerator.java

@@ -89,4 +89,16 @@ public class BaseGenerator {
                 .replace("@@searchCode@@", data.getString("searchCode"))
                 .replace("@@searchName@@", data.getString("searchName"));
     }
+
+    protected String replaceTemplateContext(String srcStr, Data data){
+        return srcStr.replace("@@templateName@@", data.getDesc())
+                .replace("@@templateCode@@", data.getName())
+                .replace("@@TemplateCode@@", toUpperCaseFirstOne(data.getName()))
+                .replace("@@templateKey@@", data.getId())
+                .replace("@@TemplateKey@@", toUpperCaseFirstOne(data.getId()))
+                .replace("@@templateKeyName@@", data.getId())
+                .replace("@@TEMPLATECODE@@", data.getName())
+                .replace("@@searchCode@@", data.getId())
+                .replace("@@searchName@@", data.getId());
+    }
 }

+ 10 - 0
java110-code-generator/src/main/java/com/java110/code/back/Data.java

@@ -42,6 +42,8 @@ public class Data {
 
     private Map params;
 
+    private String[] requiredParam;
+
     public String getPackagePath() {
         return packagePath;
     }
@@ -162,4 +164,12 @@ public class Data {
     public void setShareParam(String shareParam) {
         this.shareParam = shareParam;
     }
+
+    public String[] getRequiredParam() {
+        return requiredParam;
+    }
+
+    public void setRequiredParam(String[] requiredParam) {
+        this.requiredParam = requiredParam;
+    }
 }

+ 166 - 0
java110-code-generator/src/main/java/com/java110/code/back/GeneratorApiListener.java

@@ -0,0 +1,166 @@
+package com.java110.code.back;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.code.web.GeneratorStart;
+import org.springframework.util.StringUtils;
+
+import java.util.Map;
+import java.util.Set;
+
+public class GeneratorApiListener extends BaseGenerator {
+
+
+    /**
+     * 生成代码
+     *
+     * @param data
+     */
+    public void generator(Data data) {
+        genneratorListListener(data);
+        genneratorVo(data);
+        genneratorDataVo(data);
+        genneratorIBmo(data);
+        genneratorBmoImpl(data);
+        genneratorSaveListener(data);
+    }
+
+    /**
+     * 生成API 侦听处理类
+     *
+     * @param data
+     */
+    private void genneratorListListener(Data data) {
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/template/ListListener.java").getFile());
+        String fileContext = sb.toString();
+
+        fileContext = super.replaceTemplateContext(fileContext, data);
+
+        String writePath = this.getClass().getResource("/").getPath()
+                + "out/api/listener/" + data.getName() + "/List" + toUpperCaseFirstOne(data.getName()) + "sListener.java";
+        System.out.printf("writePath: " + writePath);
+        writeFile(writePath,
+                fileContext);
+    }
+
+    private void genneratorVo(Data data) {
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/template/ApiVo.java").getFile());
+        String fileContext = sb.toString();
+
+        fileContext = super.replaceTemplateContext(fileContext, data);
+
+        String writePath = this.getClass().getResource("/").getPath()
+                + "out/api/vo/" + data.getName() + "/Api" + toUpperCaseFirstOne(data.getName()) + "Vo.java";
+        System.out.printf("writePath: " + writePath);
+        writeFile(writePath,
+                fileContext);
+    }
+
+    private void genneratorDataVo(Data data) {
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/template/ApiDataVo.java").getFile());
+        String fileContext = sb.toString();
+
+        fileContext = super.replaceTemplateContext(fileContext, data);
+        Map columns = data.getParams();
+        String variable = "";
+        String variableGetSet = "";
+
+//        variable += "private String " + data.getId() + ";\n";
+//
+//        variableGetSet += "public String get" + toUpperCaseFirstOne(data.getId()) + "() {\n"
+//                + "        return " + data.getId() + ";\n"
+//                + "    }\n";
+//        variableGetSet += "public void set" + toUpperCaseFirstOne(data.getId()) + "(String " + data.getId() + ") {\n"
+//                + "        this." + data.getId() + " = " + data.getId() + ";\n"
+//                + "    }\n";
+
+        for (Object key : columns.keySet()) {
+            //JSONObject column = columns.get(columnIndex);
+            //String key = column.getString("code");
+            variable += "private String " + key.toString() + ";\n";
+
+            variableGetSet += "public String get" + toUpperCaseFirstOne(key.toString()) + "() {\n"
+                    + "        return " + key + ";\n"
+                    + "    }\n";
+            variableGetSet += "public void set" + toUpperCaseFirstOne(key.toString()) + "(String " + key + ") {\n"
+                    + "        this." + key + " = " + key + ";\n"
+                    + "    }\n";
+        }
+
+        fileContext = fileContext.replace("@@templateColumns@@", variable + variableGetSet);
+
+        String writePath = this.getClass().getResource("/").getPath()
+                + "out/api/vo/" +data.getName() + "/Api" + toUpperCaseFirstOne(data.getName()) + "DataVo.java";
+        System.out.printf("writePath: " + writePath);
+        writeFile(writePath,
+                fileContext);
+    }
+
+    /**
+     * 生成API 侦听处理类
+     *
+     * @param data
+     */
+    private void genneratorIBmo(Data data) {
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/template/IBMO.java").getFile());
+        String fileContext = sb.toString();
+
+        fileContext = super.replaceTemplateContext(fileContext, data);
+
+        String writePath = this.getClass().getResource("/").getPath()
+                + "out/api/bmo/" + data.getName() + "/I" + toUpperCaseFirstOne(data.getName()) + "BMO.java";
+        System.out.printf("writePath: " + writePath);
+        writeFile(writePath,
+                fileContext);
+    }
+
+    /**
+     * 生成API 侦听处理类
+     *
+     * @param data
+     */
+    private void genneratorBmoImpl(Data data) {
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/template/BMOImpl.java").getFile());
+        String fileContext = sb.toString();
+
+        fileContext = super.replaceTemplateContext(fileContext, data);
+
+        String writePath = this.getClass().getResource("/").getPath()
+                + "out/api/bmo/" + data.getName() + "/impl/I" + toUpperCaseFirstOne(data.getName()) + "BMO.java";
+        System.out.printf("writePath: " + writePath);
+        writeFile(writePath,
+                fileContext);
+    }
+
+
+    /**
+     * 生成API 侦听处理类
+     *
+     * @param data
+     */
+    private void genneratorSaveListener(Data data) {
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/template/SaveListener.java").getFile());
+        String fileContext = sb.toString();
+
+        fileContext = super.replaceTemplateContext(fileContext, data);
+
+        //替换校验部分代码 @@validateTemplateColumns@@
+        Map columns = data.getParams();
+        StringBuffer validateStr = new StringBuffer();
+        for (String key : data.getRequiredParam()) {
+            //JSONObject column = columns.getJSONObject(columnIndex);
+                validateStr.append("Assert.hasKeyAndValue(reqJson, \""+key+"\", \"请求报文中未包含"+key+"\");\n");
+
+        }
+
+        fileContext = fileContext.replace("@@validateTemplateColumns@@", validateStr.toString());
+
+
+        String writePath = this.getClass().getResource("/").getPath()
+                + "out/api/listener/" + data.getName() + "/Save" + toUpperCaseFirstOne(data.getName()) + "Listener.java";
+        System.out.printf("writePath: " + writePath);
+        writeFile(writePath,
+                fileContext);
+    }
+
+}

+ 6 - 1
java110-code-generator/src/main/resources/back/template_1.json

@@ -29,5 +29,10 @@
     "statusCd": "status_cd",
     "operate": "operate",
     "bId": "b_id"
-  }
+  },
+  "required": [
+    {
+      "code": "activitiesId"
+    }
+  ]
 }

+ 11 - 0
java110-code-generator/src/main/resources/template/ApiDataVo.java

@@ -0,0 +1,11 @@
+package com.java110.vo.api.@@templateCode@@;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class Api@@TemplateCode@@DataVo implements Serializable {
+
+    @@templateColumns@@
+
+
+}

+ 19 - 0
java110-code-generator/src/main/resources/template/ApiVo.java

@@ -0,0 +1,19 @@
+package com.java110.vo.api.@@templateCode@@;
+
+import com.java110.vo.MorePageVo;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class Api@@TemplateCode@@Vo extends MorePageVo implements Serializable {
+    List<Api@@TemplateCode@@DataVo> @@templateCode@@s;
+
+
+    public List<Api@@TemplateCode@@DataVo> get@@TemplateCode@@s() {
+        return @@templateCode@@s;
+    }
+
+    public void set@@TemplateCode@@s(List<Api@@TemplateCode@@DataVo> @@templateCode@@s) {
+        this.@@templateCode@@s = @@templateCode@@s;
+    }
+}

+ 102 - 0
java110-code-generator/src/main/resources/template/BMOImpl.java

@@ -0,0 +1,102 @@
+package com.java110.api.bmo.activities.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.bmo.ApiBaseBMO;
+import com.java110.api.bmo.activities.I@@TemplateCode@@BMO;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.community.I@@TemplateCode@@InnerServiceSMO;
+import com.java110.core.smo.file.IFileInnerServiceSMO;
+import com.java110.core.smo.file.IFileRelInnerServiceSMO;
+import com.java110.dto.activities.@@TemplateCode@@Dto;
+import com.java110.dto.file.FileRelDto;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("@@templateCode@@BMOImpl")
+public class @@TemplateCode@@BMOImpl extends ApiBaseBMO implements I@@TemplateCode@@BMO {
+
+    @Autowired
+    private I@@TemplateCode@@InnerServiceSMO @@templateCode@@InnerServiceSMOImpl;
+
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    public JSONObject add@@TemplateCode@@(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_@@TEMPLATECODE@@);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject business@@TemplateCode@@ = new JSONObject();
+        business@@TemplateCode@@.putAll(paramInJson);
+        business@@TemplateCode@@.put("@@templateKey@@", "-1");
+        //计算 应收金额
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("business@@TemplateCode@@", business@@TemplateCode@@);
+        return business;
+    }
+
+
+    /**
+     * 添加活动信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    public JSONObject update@@TemplateCode@@(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        @@TemplateCode@@Dto @@templateCode@@Dto = new @@TemplateCode@@Dto();
+        @@templateCode@@Dto.set@@TemplateCode@@Id(paramInJson.getString("@@templateCode@@Id"));
+        @@templateCode@@Dto.setCommunityId(paramInJson.getString("communityId"));
+        List<@@TemplateCode@@Dto> @@templateCode@@Dtos = @@templateCode@@InnerServiceSMOImpl.query@@TemplateCode@@s(@@templateCode@@Dto);
+
+        Assert.listOnlyOne(@@templateCode@@Dtos, "未找到需要修改的活动 或多条数据");
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_@@TEMPLATECODE@@);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject business@@TemplateCode@@ = new JSONObject();
+        business@@TemplateCode@@.putAll(activitiesDtos.get(0));
+        business@@TemplateCode@@.putAll(paramInJson);
+        //计算 应收金额
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("business@@TemplateCode@@", business@@TemplateCode@@);
+        return business;
+    }
+
+
+
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    public JSONObject delete@@TemplateCode@@(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_@@TEMPLATECODE@@);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject business@@TemplateCode@@ = new JSONObject();
+        business@@TemplateCode@@.putAll(paramInJson);
+        //计算 应收金额
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("business@@TemplateCode@@", business@@TemplateCode@@);
+        return business;
+    }
+
+}

+ 38 - 0
java110-code-generator/src/main/resources/template/IBMO.java

@@ -0,0 +1,38 @@
+package com.java110.api.bmo.activities;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.bmo.IApiBaseBMO;
+import com.java110.core.context.DataFlowContext;
+
+public interface I@@TemplateCode@@BMO extends IApiBaseBMO {
+
+
+    /**
+     * 添加@@templateName@@
+     * @param paramInJson
+     * @param dataFlowContext
+     * @return
+     */
+     JSONObject add@@TemplateCode@@(JSONObject paramInJson, DataFlowContext dataFlowContext);
+
+    /**
+     * 添加@@templateName@@信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+     JSONObject update@@TemplateCode@@(JSONObject paramInJson, DataFlowContext dataFlowContext);
+
+    /**
+     * 删除@@templateName@@
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+     JSONObject delete@@TemplateCode@@(JSONObject paramInJson, DataFlowContext dataFlowContext);
+
+
+
+}

+ 90 - 0
java110-code-generator/src/main/resources/template/ListListener.java

@@ -0,0 +1,90 @@
+package com.java110.api.listener.@@templateCode@@;
+
+import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.utils.constant.ServiceCodeConstant;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.@@templateCode@@.I@@TemplateCode@@InnerServiceSMO;
+import com.java110.dto.@@templateCode@@.@@TemplateCode@@Dto;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.vo.api.@@templateCode@@.Api@@TemplateCode@@DataVo;
+import com.java110.vo.api.@@templateCode@@.Api@@TemplateCode@@Vo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import com.java110.common.constant.CommonConstant;
+import com.java110.common.constant.BusinessTypeConstant;
+import com.java110.common.constant.ServiceCode@@TemplateCode@@Constant;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 查询小区侦听类
+ */
+@Java110Listener("list@@TemplateCode@@sListener")
+public class List@@TemplateCode@@sListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private I@@TemplateCode@@InnerServiceSMO @@templateCode@@InnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCode@@TemplateCode@@Constant.LIST_@@TEMPLATECODE@@S;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    public I@@TemplateCode@@InnerServiceSMO get@@TemplateCode@@InnerServiceSMOImpl() {
+        return @@templateCode@@InnerServiceSMOImpl;
+    }
+
+    public void set@@TemplateCode@@InnerServiceSMOImpl(I@@TemplateCode@@InnerServiceSMO @@templateCode@@InnerServiceSMOImpl) {
+        this.@@templateCode@@InnerServiceSMOImpl = @@templateCode@@InnerServiceSMOImpl;
+    }
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        super.validatePageInfo(reqJson);
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        @@TemplateCode@@Dto @@templateCode@@Dto = BeanConvertUtil.covertBean(reqJson, @@TemplateCode@@Dto.class);
+
+        int count = @@templateCode@@InnerServiceSMOImpl.query@@TemplateCode@@sCount(@@templateCode@@Dto);
+
+        List<Api@@TemplateCode@@DataVo> @@templateCode@@s = null;
+
+        if (count > 0) {
+            @@templateCode@@s = BeanConvertUtil.covertBeanList(@@templateCode@@InnerServiceSMOImpl.query@@TemplateCode@@s(@@templateCode@@Dto), Api@@TemplateCode@@DataVo.class);
+        } else {
+            @@templateCode@@s = new ArrayList<>();
+        }
+
+        Api@@TemplateCode@@Vo api@@TemplateCode@@Vo = new Api@@TemplateCode@@Vo();
+
+        api@@TemplateCode@@Vo.setTotal(count);
+        api@@TemplateCode@@Vo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
+        api@@TemplateCode@@Vo.set@@TemplateCode@@s(@@templateCode@@s);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(api@@TemplateCode@@Vo), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+
+    }
+}

+ 90 - 0
java110-code-generator/src/main/resources/template/SaveListener.java

@@ -0,0 +1,90 @@
+package com.java110.api.listener.@@templateCode@@;
+
+import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.utils.util.Assert;
+import com.java110.core.context.DataFlowContext;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.ServiceCodeConstant;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.ServiceCode@@TemplateCode@@Constant;
+
+
+
+
+import com.java110.core.annotation.Java110Listener;
+/**
+ * 保存小区侦听
+ * add by wuxw 2019-06-30
+ */
+@Java110Listener("save@@TemplateCode@@Listener")
+public class Save@@TemplateCode@@Listener extends AbstractServiceApiListener {
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
+
+        @@validateTemplateColumns@@
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        HttpHeaders header = new HttpHeaders();
+        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+        JSONArray businesses = new JSONArray();
+
+        AppService service = event.getAppService();
+
+        //添加单元信息
+        businesses.add(add@@TemplateCode@@(reqJson, context));
+
+        JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
+
+        //将 rest header 信息传递到下层服务中去
+        super.freshHttpHeader(header, context.getRequestCurrentHeaders());
+
+        ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
+
+        context.setResponseEntity(responseEntity);
+    }
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCode@@TemplateCode@@Constant.ADD_@@TEMPLATECODE@@;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject add@@TemplateCode@@(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_@@TEMPLATECODE@@);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject business@@TemplateCode@@ = new JSONObject();
+        business@@TemplateCode@@.putAll(paramInJson);
+        business@@TemplateCode@@.put("@@templateKey@@", "-1");
+        //计算 应收金额
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("business@@TemplateCode@@", business@@TemplateCode@@);
+        return business;
+    }
+
+}