Browse Source

添加绑定功能 Java端代码生成,和 添加功能的实现

吴学文 6 years ago
parent
commit
1992e00e12

+ 23 - 23
java110-code-generator/src/main/java/com/java110/code/relationship/GeneratorBindingComponent.java

@@ -14,12 +14,12 @@ public class GeneratorBindingComponent extends BaseGenerator {
         //处理组件
         generatorComponentHtml(data);
         generatorComponentJs(data);
-       /* generatorComponentJava(data);
+        generatorComponentJava(data);
         genneratorIListSmo(data);
         genneratorListSmoImpl(data);
-        genneratorListListener(data);
+        //genneratorListListener(data);
 
-        genneratorServiceCodeConstant(data);*/
+        //genneratorServiceCodeConstant(data);
 
 
     }
@@ -144,13 +144,13 @@ public class GeneratorBindingComponent extends BaseGenerator {
      */
     private void generatorComponentJava(JSONObject data) {
 
-        StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/add/AddComponent.java").getFile());
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/relationship/binding/BindingComponent.java").getFile());
         String fileContext = sb.toString();
 
-        fileContext = super.replaceTemplateContext(fileContext, data);
+        fileContext = super.replaceBindingTemplateContext(fileContext, data);
 
         String writePath = this.getClass().getResource("/").getPath()
-                + "out/web/component/java/" + data.getString("templateCode") + "/Add" + toUpperCaseFirstOne(data.getString("templateCode")) + "Component.java";
+                + "out/relationship/component/java/" + data.getString("templateCode") + "/" + toUpperCaseFirstOne(data.getString("templateCode")) + "BindingComponent.java";
         System.out.printf("writePath: " + writePath);
         writeFile(writePath,
                 fileContext);
@@ -164,13 +164,13 @@ public class GeneratorBindingComponent extends BaseGenerator {
      * @param data
      */
     private void genneratorIListSmo(JSONObject data) {
-        StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/add/IAddSMO.java").getFile());
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/relationship/binding/IBindingSMO.java").getFile());
         String fileContext = sb.toString();
 
-        fileContext = super.replaceTemplateContext(fileContext, data);
+        fileContext = super.replaceBindingTemplateContext(fileContext, data);
 
         String writePath = this.getClass().getResource("/").getPath()
-                + "out/web/smo/" + data.getString("templateCode") + "/IAdd" + toUpperCaseFirstOne(data.getString("templateCode")) + "SMO.java";
+                + "out/relationship/smo/" + data.getString("templateCode") + "/I" + toUpperCaseFirstOne(data.getString("templateCode")) + "BindingSMO.java";
         System.out.printf("writePath: " + writePath);
         writeFile(writePath,
                 fileContext);
@@ -182,26 +182,26 @@ public class GeneratorBindingComponent extends BaseGenerator {
      * @param data
      */
     private void genneratorListSmoImpl(JSONObject data) {
-        StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/add/AddSMOImpl.java").getFile());
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/relationship/binding/BindingSMOImpl.java").getFile());
         String fileContext = sb.toString();
 
-        fileContext = super.replaceTemplateContext(fileContext, data);
-
-        //替换校验部分代码 @@validateTemplateColumns@@
-        JSONArray columns = data.getJSONArray("columns");
-        StringBuffer validateStr = new StringBuffer();
-        for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
-            JSONObject column = columns.getJSONObject(columnIndex);
-            if (column.getBoolean("required")) {
-                validateStr.append("Assert.hasKeyAndValue(paramIn, \"" + column.getString("code") + "\", \"" + column.getString("desc") + "\");\n");
-            }
-        }
+        fileContext = super.replaceBindingTemplateContext(fileContext, data);
 
-        fileContext = fileContext.replace("@@validateTemplateColumns@@", validateStr.toString());
+//        //替换校验部分代码 @@validateTemplateColumns@@
+//        JSONArray columns = data.getJSONArray("columns");
+//        StringBuffer validateStr = new StringBuffer();
+//        for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
+//            JSONObject column = columns.getJSONObject(columnIndex);
+//            if (column.getBoolean("required")) {
+//                validateStr.append("Assert.hasKeyAndValue(paramIn, \"" + column.getString("code") + "\", \"" + column.getString("desc") + "\");\n");
+//            }
+//        }
+//
+//        fileContext = fileContext.replace("@@validateTemplateColumns@@", validateStr.toString());
 
 
         String writePath = this.getClass().getResource("/").getPath()
-                + "out/web/smo/" + data.getString("templateCode") + "/impl/Add" + toUpperCaseFirstOne(data.getString("templateCode")) + "SMOImpl.java";
+                + "out/relationship/smo/" + data.getString("templateCode") + "/impl/" + toUpperCaseFirstOne(data.getString("templateCode")) + "BindingSMOImpl.java";
         System.out.printf("writePath: " + writePath);
         writeFile(writePath,
                 fileContext);

+ 16 - 0
java110-code-generator/src/main/resources/relationship/add/add.html

@@ -0,0 +1,16 @@
+<div class="row">
+    <div class="col-lg-12">
+        <div class="ibox">
+            <div class="ibox-title">
+                <h5>添加@@templateName@@</h5>
+                <div class="ibox-tools" style="top:10px;">
+
+                </div>
+            </div>
+            <div class="ibox-content">
+
+                @@addTemplateColumns@@
+            </div>
+        </div>
+    </div>
+</div>

+ 44 - 0
java110-code-generator/src/main/resources/relationship/add/add.js

@@ -0,0 +1,44 @@
+(function(vc){
+
+    vc.extends({
+        propTypes: {
+           callBackListener:vc.propTypes.string, //父组件名称
+           callBackFunction:vc.propTypes.string //父组件监听方法
+        },
+        data:{
+            @@templateCode@@ViewInfo:{
+                @@templateCodeColumns@@
+            }
+        },
+         _initMethod:function(){
+
+         },
+         _initEvent:function(){
+
+            vc.on('@@templateCode@@ViewInfo', 'onIndex', function(_index){
+                vc.component.@@templateCode@@ViewInfo.index = _index;
+            });
+        },
+        methods:{
+            add@@TemplateCode@@Validate(){
+                return vc.validate.validate({
+                    @@templateCode@@ViewInfo:vc.component.@@templateCode@@ViewInfo
+                },{
+                    @@addTemplateCodeValidate@@
+                });
+            },
+            save@@TemplateCode@@Info:function(){
+                if(!vc.component.@@templateCode@@Validate()){
+                    vc.message(vc.validate.errInfo);
+
+                    return ;
+                }
+
+                vc.component.@@templateCode@@ViewInfo.communityId = vc.getCurrentCommunity().communityId;
+
+                //侦听回传
+            }
+        }
+    });
+
+})(window.vc);

+ 34 - 0
java110-code-generator/src/main/resources/relationship/binding/BindingComponent.java

@@ -0,0 +1,34 @@
+package com.java110.web.components.@@templateCode@@;
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.@@templateCode@@.I@@TemplateCode@@BindingSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * 添加@@templateName@@组件
+ */
+@Component("@@templateCode@@Binding")
+public class @@TemplateCode@@BindingComponent {
+
+    @Autowired
+    private I@@TemplateCode@@BindingSMO @@templateCode@@BindingSMOImpl;
+
+    /**
+     * 添加@@templateName@@数据
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象
+     */
+    public ResponseEntity<String> binding(IPageData pd){
+        return @@templateCode@@BindingSMOImpl.binding@@TemplateCode@@(pd);
+    }
+
+    public I@@TemplateCode@@BindingSMO get@@TemplateCode@@BindingSMOImpl() {
+        return @@templateCode@@BindingSMOImpl;
+    }
+
+    public void set@@TemplateCode@@BindingSMOImpl(I@@TemplateCode@@BindingSMO @@templateCode@@BindingSMOImpl) {
+        this.@@templateCode@@BindingSMOImpl = @@templateCode@@BindingSMOImpl;
+    }
+}

+ 62 - 0
java110-code-generator/src/main/resources/relationship/binding/BindingSMOImpl.java

@@ -0,0 +1,62 @@
+package com.java110.web.smo.@@templateCode@@.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.PrivilegeCodeConstant;
+import com.java110.common.constant.ServiceConstant;
+import com.java110.common.util.Assert;
+import org.springframework.web.client.RestTemplate;
+import com.java110.core.context.IPageData;
+import com.java110.web.core.AbstractComponentSMO;
+import com.java110.web.smo.@@templateCode@@
+import org.springframework.stereotype.Service;.IAdd@@TemplateCode@@SMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 添加小区服务实现类
+ * add by wuxw 2019-06-30
+ */
+@Service("@@templateCode@@BindingSMOImpl")
+public class @@TemplateCode@@BindingSMOImpl extends AbstractComponentSMO implements I@@TemplateCode@@BindingSMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+
+        //super.validatePageInfo(pd);
+
+        //Assert.hasKeyAndValue(paramIn, "xxx", "xxx");
+        @@validateTemplateColumns@@
+
+
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.@@TEMPLATECODE@@);
+
+    }
+
+    @Override
+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
+        ResponseEntity<String> responseEntity = null;
+        super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+
+        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                ServiceConstant.SERVICE_API_URL + "/api/@@templateCode@@.@@templateCode@@",
+                HttpMethod.POST);
+        return responseEntity;
+    }
+
+    @Override
+    public ResponseEntity<String> binding@@TemplateCode@@(IPageData pd) {
+        return super.businessProcess(pd);
+    }
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+}

+ 19 - 0
java110-code-generator/src/main/resources/relationship/binding/IBindingSMO.java

@@ -0,0 +1,19 @@
+package com.java110.web.smo.community;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 添加@@templateName@@接口
+ *
+ * add by wuxw 2019-06-30
+ */
+public interface I@@TemplateCode@@BindingSMO {
+
+    /**
+     * 添加@@templateName@@
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象
+     */
+    ResponseEntity<String> binding@@TemplateCode@@(IPageData pd);
+}

+ 95 - 0
java110-code-generator/src/main/resources/relationship/binding/SaveListener.java

@@ -0,0 +1,95 @@
+package com.java110.api.listener.@@templateCode@@;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.common.util.Assert;
+import com.java110.core.context.DataFlowContext;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import com.java110.common.constant.CommonConstant;
+import com.java110.common.constant.ServiceCodeConstant;
+import com.java110.common.constant.BusinessTypeConstant;
+import com.java110.common.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;
+    }
+
+}