From fac5d01bfcddfc8edef0a5fd3d401b1fe383fe16 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 29 三月 2022 16:48:15 +0800
Subject: [PATCH] 采用配置文件自动化生成代码

---
 src/test/java/com/generater/GeneratorTest.java |  137 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 109 insertions(+), 28 deletions(-)

diff --git a/src/test/java/com/generater/GeneratorTest.java b/src/test/java/com/generater/GeneratorTest.java
index 818a88f..f7d2b62 100644
--- a/src/test/java/com/generater/GeneratorTest.java
+++ b/src/test/java/com/generater/GeneratorTest.java
@@ -1,29 +1,27 @@
 package com.generater;
 
-import freemarker.cache.StringTemplateLoader;
-import freemarker.template.Template;
 import org.springframework.data.annotation.Id;
-import org.springframework.data.annotation.Transient;
+import org.yeshi.utils.FileUtil;
 import org.yeshi.utils.FreemarkerUtils;
-import org.yeshi.utils.generater.SpringComponentGenerater;
-import org.yeshi.utils.generater.annotation.admin.form.CheckBox;
-import org.yeshi.utils.generater.annotation.admin.form.Select;
-import org.yeshi.utils.generater.annotation.admin.form.Text;
-import org.yeshi.utils.generater.entity.KeyValue;
-import org.yeshi.utils.generater.entity.MongoDBDaoData;
+import org.yeshi.utils.generater.GeneraterUtil;
+import org.yeshi.utils.generater.entity.ClassInfo;
 import org.yeshi.utils.generater.entity.admin.AdminGeneraterInfo;
 import org.yeshi.utils.generater.mybatis.Column;
-import org.yeshi.utils.generater.mybatis.MyBatisMapperUtil;
 import org.yeshi.utils.generater.mybatis.Table;
+import org.yeshi.utils.generater.vo.ExceptionVO;
+import org.yeshi.utils.generater.vo.xmlconfig.base.FormComponent;
+import org.yeshi.utils.generater.vo.xmlconfig.admin.form.FormComponentText;
+import org.yeshi.utils.generater.vo.dao.MongoDBDaoVO;
+import org.yeshi.utils.generater.vo.dao.MyBatisDBDaoVO;
+import org.yeshi.utils.generater.vo.service.ServiceImplInfoVO;
+import org.yeshi.utils.generater.vo.service.ServiceInfoVO;
+import org.yeshi.utils.generater.vo.admin.controller.AdminControllerInfoVO;
+import org.yeshi.utils.generater.vo.admin.page.FormUpdateInfoVO;
 
-import java.io.File;
 import java.io.InputStream;
-import java.io.StringWriter;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.*;
-import java.util.regex.Pattern;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 public class GeneratorTest {
 
@@ -48,8 +46,14 @@
 //        }
 
 
-        AdminGeneraterInfo info = new AdminGeneraterInfo.Builder().setEntityClass(TestEntity.class).build();
+        //
+//        boolean match = Pattern.matches("^(https://){1}.*(\\.m3u8)$", "https://n1.szjal.cn/20210805/qnDXhXBa/index.m3u8123");
+//        System.out.println(match);
+        generater();
+    }
 
+    private static void generateAdminPage() throws Exception {
+        AdminGeneraterInfo info = new AdminGeneraterInfo.Builder().setEntityClass(TestEntity.class).build();
         //灏嗘墍鏈夌殑鎺т欢妯℃澘鍔犺浇杩涘幓
         String[] template = new String[]{
                 "admin/form/checkBox.ftl",
@@ -60,29 +64,106 @@
                 "admin/form/switch.ftl",
                 "admin/form/text.ftl",
                 "admin/form/textArea.ftl",
-                "admin/add.ftl"
+                "admin/add.ftl",
+                "admin/update.ftl",
+                "admin/list.ftl"
         };
 
         Map<String, InputStream> map = new HashMap<>();
         for (String st : template) {
-            map.put(st, SpringComponentGenerater.class.getClassLoader().getResourceAsStream("generater/" + st));
+            map.put(st, GeneraterUtil.class.getClassLoader().getResourceAsStream("generater/" + st));
         }
-
-        String result = FreemarkerUtils.generateInputStream(info, "admin/add.ftl", map);
-
-
+        String result = FreemarkerUtils.generateInputStream(new FormUpdateInfoVO.Builder().setAdminInfo(info).build(), "admin/update.ftl", map);
+        FileUtil.saveAsFileByte(result.getBytes("UTF-8"), "C:\\Users\\Administrator\\Documents\\HBuilderProjects\\LayuiTest\\form.html");
         System.out.println(result);
+    }
 
 
-        //
-//        boolean match = Pattern.matches("^(https://){1}.*(\\.m3u8)$", "https://n1.szjal.cn/20210805/qnDXhXBa/index.m3u8123");
-//        System.out.println(match);
+    private static void generateService() throws Exception {
+        ClassInfo dao = new ClassInfo("TestDao", "com.test.dao.TestDao");
+        ClassInfo query = new ClassInfo("TestQuery", "com.test.query.TestQuery");
+        ClassInfo service = new ClassInfo("TestService", "com.test.service.TestService");
+        ServiceInfoVO serviceInfoVO = new ServiceInfoVO.Builder().setEntity(Entity.class).setPackageName("com.test.service").setQuery(query).setService(service).build();
+        String result = FreemarkerUtils.generateInputStream(serviceInfoVO, GeneratorTest.class.getClassLoader().getResourceAsStream("generater\\service\\service.template"));
+        System.out.println(result);
+    }
+
+    private static void generateServiceImpl() throws Exception {
+        ClassInfo dao = new ClassInfo("TestMapper", "com.test.dao.TestMapper");
+        ClassInfo query = new ClassInfo("TestQuery", "com.test.query.TestQuery");
+        ClassInfo service = new ClassInfo("TestService", "com.test.service.TestService");
+        ClassInfo daoQuery = new ClassInfo("DaoQuery", "com.test.dao.query.DaoQuery");
+        ServiceImplInfoVO serviceInfoVO = new ServiceImplInfoVO.Builder()
+                .setDao(dao)
+                .setEntity(Entity.class)
+                .setPackageName("com.test.service.impl")
+                .setQuery(query)
+                .setService(service)
+                .setDaoQuery(daoQuery)
+                .build();
+        String result = FreemarkerUtils.generateInputStream(serviceInfoVO, GeneratorTest.class.getClassLoader().getResourceAsStream("generater\\service\\serviceImpl.template"));
+        System.out.println(result);
+    }
+
+
+    private static void generateAdminController() throws Exception {
+        AdminGeneraterInfo adminGeneraterInfo = new AdminGeneraterInfo.Builder().setEntityClass(TestEntity.class).build();
+        ClassInfo query = new ClassInfo("TestQuery", "com.test.query.TestQuery");
+        ClassInfo service = new ClassInfo("TestService", "com.test.service.TestService");
+        AdminControllerInfoVO vo = new AdminControllerInfoVO.Builder().setAdminInfo(adminGeneraterInfo).setPackageName("com.test.controller.admin").setQueryVO(query).setService(service).build();
+        String result = FreemarkerUtils.generateInputStream(vo, GeneratorTest.class.getClassLoader().getResourceAsStream("generater\\admin\\adminController.template"));
+        System.out.println(result);
+    }
+
+
+    private static void generateMongoDBDao() throws Exception {
+        MongoDBDaoVO vo = new MongoDBDaoVO.Builder().setBaseDao(new ClassInfo(BaseDao.class.getSimpleName(), BaseDao.class.getName())).setDao(new ClassInfo("TestDao", "com.test.dao.TestDao")).setEntity(TestEntity.class).build();
+        String result = FreemarkerUtils.generateInputStream(vo, GeneratorTest.class.getClassLoader().getResourceAsStream("generater\\dao\\mongoDBDao.template"));
+        System.out.println(result);
+    }
+
+
+    private static void generateMybatisDao() throws Exception {
+
+        MyBatisDBDaoVO vo = new MyBatisDBDaoVO
+                .Builder()
+                .setEntity(TestEntity2.class)
+                .setBaseMapper(new ClassInfo("BaseMapper", "com.test.mapper.BaseMapper"))
+                .setMapper(new ClassInfo("TestEntity2Mapper", "com.test.mapper.TestEntity2Mapper"))
+                .build();
+
+
+//        String result = FreemarkerUtils.generateInputStream(vo, GeneratorTest.class.getClassLoader().getResourceAsStream("generater\\dao\\mybatisDBDao.template"));
+        String result = FreemarkerUtils.generateInputStream(vo, GeneratorTest.class.getClassLoader().getResourceAsStream("generater\\dao\\mybatisDBXML.ftl"));
+        System.out.println(result);
+    }
+
+    private static void generateException() throws Exception {
+        ExceptionVO vo = new ExceptionVO.Builder()
+                .setEntity(Entity.class)
+                .setPackageName("com.test.exception").build();
+        String result = FreemarkerUtils.generateInputStream(vo, GeneratorTest.class.getClassLoader().getResourceAsStream("generater\\exception.template"));
+        System.out.println(result);
+    }
+
+    private static void generater() throws Exception {
+//        GeneraterManager.getInstance().init("D:\\workspace\\server\\utils\\src\\test\\java", TestEntity.class);
+//        AdminGeneraterParams adminGeneraterParams=new AdminGeneraterParams("com.generater.temp.controller","D:\\workspace\\server\\utils\\src\\test");
+//
+//        GeneraterManager.getInstance().createWholeFunction(new DaoGeneraterParams("com.generater.temp.dao", "D:\\workspace\\server\\utils\\src\\test"), new ServiceGeneraterParams("com.generater.temp.query","com.generater.temp.service","com.generater.temp.service.impl"), adminGeneraterParams);
+        FormComponent fc=new FormComponentText();
+
+        System.out.println(fc instanceof  FormComponentText);
+
+        FormComponentText text=(FormComponentText) fc;
+
+        System.out.println(text);
 
     }
 
 
     @Table("tb_test")
-    public static class Entity {
+     static class Entity {
 
         @Id
         @Column(name = "id")

--
Gitblit v1.8.0