From 47e3087067abd35e6337c011f96d2338c0bb1aae Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 25 七月 2024 13:39:31 +0800
Subject: [PATCH] 优化自动化代码

---
 src/main/java/org/yeshi/utils/generater/GeneraterManager.java |   72 +++++++++++++++++++++++++----------
 1 files changed, 51 insertions(+), 21 deletions(-)

diff --git a/src/main/java/org/yeshi/utils/generater/GeneraterManager.java b/src/main/java/org/yeshi/utils/generater/GeneraterManager.java
index 30f5916..d0b4547 100644
--- a/src/main/java/org/yeshi/utils/generater/GeneraterManager.java
+++ b/src/main/java/org/yeshi/utils/generater/GeneraterManager.java
@@ -10,6 +10,7 @@
 import org.yeshi.utils.generater.params.AdminGeneraterParams;
 import org.yeshi.utils.generater.params.DaoGeneraterParams;
 import org.yeshi.utils.generater.params.ServiceGeneraterParams;
+import org.yeshi.utils.generater.util.NameUtil;
 import org.yeshi.utils.generater.vo.ExceptionVO;
 import org.yeshi.utils.generater.vo.admin.controller.AdminControllerInfoVO;
 import org.yeshi.utils.generater.vo.dao.MongoDBDaoVO;
@@ -17,10 +18,12 @@
 import org.yeshi.utils.generater.vo.service.QueryVO;
 import org.yeshi.utils.generater.vo.service.ServiceImplInfoVO;
 import org.yeshi.utils.generater.vo.service.ServiceInfoVO;
+import org.yeshi.utils.generater.vo.xmlconfig.GenertorConfig;
 import org.yeshi.utils.mongo.MongodbBaseDao;
 import org.yeshi.utils.mybatis.BaseMapper;
 
 import java.io.File;
+import java.io.IOException;
 import java.lang.annotation.Annotation;
 
 /**
@@ -44,6 +47,7 @@
     private String classRootDir;
     private Class entity;
 
+
     public static GeneraterManager getInstance() {
         if (instance == null)
             instance = new GeneraterManager();
@@ -62,7 +66,25 @@
         if (!f.exists()) {
             f.mkdirs();
         }
-        return new File(f.getAbsolutePath(), packageName.replace(".", "/")).getAbsolutePath();
+        f = new File(f.getAbsolutePath(), packageName.replace(".", "/"));
+        if (!f.exists()) {
+            f.mkdirs();
+        }
+        return f.getAbsolutePath();
+    }
+
+    /**
+     * @return void
+     * @author hxh
+     * @description 淇濆瓨鏂囦欢
+     * @date 10:06 2021/10/14
+     * @param: data
+     * @param: path
+     **/
+    private void saveFile(String data, String path) throws IOException {
+        if (!new File(path).exists())
+            new File(path).createNewFile();
+        FileUtil.saveAsFileByte(data.getBytes("UTF-8"), path);
     }
 
     public void createException(String packageName, Class base) {
@@ -71,7 +93,7 @@
             ExceptionVO vo = new ExceptionVO.Builder().setEntity(entity).setPackageName(packageName).setBase(new ClassInfo(base.getSimpleName(), base.getName())).build();
             String result = GeneraterUtil.createException(vo);
             //淇濆瓨
-            FileUtil.saveAsFileByte(result.getBytes("UTF-8"), path);
+            saveFile(result, path);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -85,7 +107,8 @@
      * @param: packageName
      **/
     public MongoDBDaoVO createDao(String packageName) throws Exception {
-        String daoName = entity.getSimpleName() + "Dao";
+
+        String daoName = NameUtil.getDefaultDaoName(entity);
         String path = getDirPath(packageName);
         MongoDBDaoVO vo = new MongoDBDaoVO.Builder()
                 .setBaseDao(new ClassInfo(MongodbBaseDao.class.getSimpleName(), MongodbBaseDao.class.getName()))
@@ -93,7 +116,7 @@
                 .setEntity(entity).build();
         String result = GeneraterUtil.createMongoDBDao(vo);
         //淇濆瓨
-        FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, daoName).getAbsolutePath());
+        saveFile(result, new File(path, daoName + ".java").getAbsolutePath());
         return vo;
     }
 
@@ -106,7 +129,7 @@
      * @param: mapperDir
      **/
     public MyBatisDBDaoVO createMapper(String packageName, String mapperDir) throws Exception {
-        String mapperName = entity.getSimpleName() + "Mapper";
+        String mapperName =  NameUtil.getDefaultMapperName(entity);
         String path = getDirPath(packageName);
         MyBatisDBDaoVO vo = new MyBatisDBDaoVO.Builder()
                 .setBaseMapper(new ClassInfo(BaseMapper.class.getSimpleName(), BaseMapper.class.getName()))
@@ -115,11 +138,11 @@
                 .build();
         String result = GeneraterUtil.createMybatisDBMapper(vo);
         //淇濆瓨
-        FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, mapperName + ".java").getAbsolutePath());
+        saveFile(result, new File(path, mapperName + ".java").getAbsolutePath());
         if (!new File(mapperDir).exists())
             new File(mapperDir).mkdirs();
         result = GeneraterUtil.createMybatisDBMapperXML(vo);
-        FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(mapperDir, mapperName + ".xml").getAbsolutePath());
+        saveFile(result, new File(mapperDir, mapperName + ".xml").getAbsolutePath());
         return vo;
     }
 
@@ -135,7 +158,7 @@
         String path = getDirPath(packageName);
         QueryVO queryVO = new QueryVO.Builder().setEntity(entity).setPackageName(packageName).build();
         String result = GeneraterUtil.createQuery(queryVO);
-        FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, queryVO.getClassName() + ".java").getAbsolutePath());
+        saveFile(result, new File(path, queryVO.getClassName() + ".java").getAbsolutePath());
         return queryVO;
     }
 
@@ -153,7 +176,7 @@
 
 
         //鍒涘缓service鎺ュ彛
-        String serviceName = entity.getSimpleName() + "Service";
+        String serviceName = NameUtil.getDefaultServiceName(entity);
         String path = getDirPath(interPackageName);
         ServiceInfoVO vo = new ServiceInfoVO.Builder()
                 .setPackageName(interPackageName)
@@ -162,10 +185,10 @@
                 .setService(new ClassInfo(serviceName, interPackageName + "." + serviceName))
                 .build();
         String result = GeneraterUtil.createService(vo);
-        FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, serviceName + ".java").getAbsolutePath());
+        saveFile(result, new File(path, serviceName + ".java").getAbsolutePath());
 
         //鍒涘缓service瀹炵幇
-        String serviceImplName = entity.getSimpleName() + "ServiceImpl";
+        String serviceImplName = NameUtil.getDefaultServiceImplName(entity);
         path = getDirPath(implPackageName);
         ServiceImplInfoVO implVO = new ServiceImplInfoVO.Builder()
                 .setDao(dao)
@@ -176,7 +199,7 @@
                 .setDaoQuery(new ClassInfo("DaoQuery", dao.getClazz() + ".DaoQuery"))
                 .build();
         result = GeneraterUtil.createServiceImpl(implVO);
-        FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, serviceImplName + ".java").getAbsolutePath());
+        saveFile(result, new File(path, serviceImplName + ".java").getAbsolutePath());
         return vo;
     }
 
@@ -194,28 +217,32 @@
     public void createAdmin(String controllerPackage, String htmlDir, ClassInfo query, ClassInfo service) throws Exception {
         String path = getDirPath(controllerPackage);
 
-        String controllerName = entity.getSimpleName() + "AdminController";
+
         AdminGeneraterInfo generaterInfo = new AdminGeneraterInfo.Builder().setEntityClass(entity).build();
 
 
         String htmlNamePrefix = getHtmlNameFromEntityName(entity.getSimpleName());
-        AdminControllerInfoVO vo = new AdminControllerInfoVO.Builder().setAdminInfo(generaterInfo).setPackageName(controllerName).setQueryVO(query).setService(service).build();
+        AdminControllerInfoVO vo = new AdminControllerInfoVO.Builder().setAdminInfo(generaterInfo).setPackageName(controllerPackage).setQueryVO(query).setService(service).build();
+        String controllerName = vo.getControllerName();
         //鐢熸垚controller
         String result = GeneraterUtil.createAdminController(vo);
-        FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, controllerName + ".java").getAbsolutePath());
+        saveFile(result, new File(path, controllerName + ".java").getAbsolutePath());
 
 
+        if (!new File(htmlDir).exists()) {
+            new File(htmlDir).mkdirs();
+        }
         result = GeneraterUtil.createAdminPageForList(generaterInfo);
-        FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(htmlDir, htmlNamePrefix + "_list.html").getAbsolutePath());
+        saveFile(result, new File(htmlDir, htmlNamePrefix + "_list.html").getAbsolutePath());
 
         if (generaterInfo.getAddFormRows() != null && generaterInfo.getAddFormRows().size() > 0) {
             result = GeneraterUtil.createAdminPageForAdd(generaterInfo);
-            FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(htmlDir, htmlNamePrefix + "_add.html").getAbsolutePath());
+            saveFile(result, new File(htmlDir, htmlNamePrefix + "_add.html").getAbsolutePath());
         }
 
         if (generaterInfo.getUpdateFormRows() != null && generaterInfo.getUpdateFormRows().size() > 0) {
             result = GeneraterUtil.createAdminPageForUpdate(generaterInfo);
-            FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(htmlDir, htmlNamePrefix + "_update.html").getAbsolutePath());
+            saveFile(result, new File(htmlDir, htmlNamePrefix + "_update.html").getAbsolutePath());
         }
     }
 
@@ -276,8 +303,11 @@
             serviceClass = serviceInfoVO.getService();
         }
 
-        //鍒涘缓Admin妯″潡
-        createAdmin(adminParams.getControllerPackage(), adminParams.getHtmlDir(), queryClass, serviceClass);
+        if (queryClass != null && serviceClass != null) {
+            if (adminParams != null)
+                //鍒涘缓Admin妯″潡
+                createAdmin(adminParams.getControllerPackage(), adminParams.getHtmlDir(), queryClass, serviceClass);
+        }
     }
 
     /**
@@ -287,7 +317,7 @@
      * @date 18:25 2021/10/13
      * @param: entityName
      **/
-    private static String getHtmlNameFromEntityName(String entityName) {
+    public static String getHtmlNameFromEntityName(String entityName) {
         StringBuffer sb = new StringBuffer();
         StringBuffer buffer = null;
         for (int i = 0; i < entityName.length(); i++) {

--
Gitblit v1.8.0