From 664cc2fd39177fd3daa6d3988396c704d130882c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 12 十月 2021 19:06:55 +0800
Subject: [PATCH] 自动化代码生成优化

---
 src/main/java/org/yeshi/utils/generater/vo/dao/MongoDBDaoVO.java |   95 +++++++++++++++++++++++------------------------
 1 files changed, 47 insertions(+), 48 deletions(-)

diff --git a/src/main/java/org/yeshi/utils/generater/entity/MongoDBDaoData.java b/src/main/java/org/yeshi/utils/generater/vo/dao/MongoDBDaoVO.java
similarity index 71%
rename from src/main/java/org/yeshi/utils/generater/entity/MongoDBDaoData.java
rename to src/main/java/org/yeshi/utils/generater/vo/dao/MongoDBDaoVO.java
index 21637a9..d214ea5 100644
--- a/src/main/java/org/yeshi/utils/generater/entity/MongoDBDaoData.java
+++ b/src/main/java/org/yeshi/utils/generater/vo/dao/MongoDBDaoVO.java
@@ -1,8 +1,12 @@
-package org.yeshi.utils.generater.entity;
+package org.yeshi.utils.generater.vo.dao;
 
 import org.springframework.data.annotation.Id;
 import org.springframework.data.annotation.Transient;
 import org.yeshi.utils.generater.annotation.admin.DaoQueryCondition;
+import org.yeshi.utils.generater.entity.BaseData;
+import org.yeshi.utils.generater.entity.ClassInfo;
+import org.yeshi.utils.generater.entity.ColumnData;
+import org.yeshi.utils.generater.entity.DaoQueryColumnData;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
@@ -11,11 +15,11 @@
 import java.util.List;
 import java.util.Set;
 
-public class MongoDBDaoData extends BaseData {
+public class MongoDBDaoVO extends BaseData {
 
     private String daoName;
-    private String baseDaoClassName;
-    private String entityClassName;
+    private ClassInfo baseDao;
+    private ClassInfo entity;
     private Set<String> importClasses;
 
     private ColumnData identityColumn;
@@ -25,43 +29,41 @@
 
     public static class Builder {
 
-        private Class baseDaoClass;
+        private ClassInfo baseDao;
+        private Class entity;
+        private ClassInfo dao;
 
-        private Class entityClass;
-
-        private String daoPackageName;
-
-        private String daoName;
-
-
-        public Builder setBaseDaoClass(Class clazz) {
-            this.baseDaoClass = clazz;
+        public Builder setBaseDao(ClassInfo baseDao) {
+            this.baseDao = baseDao;
             return this;
         }
 
-        public Builder setEntityClass(Class clazz) {
-            this.entityClass = clazz;
+        public Builder setEntity(Class entity) {
+            this.entity = entity;
             return this;
         }
 
-        public Builder setDaoPackageName(String daoPackageName) {
-            this.daoPackageName = daoPackageName;
+        public Builder setDao(ClassInfo dao) {
+            this.dao = dao;
             return this;
         }
 
-        public Builder setDaoName(String daoName) {
-            this.daoName = daoName;
-            return this;
-        }
+        public MongoDBDaoVO build() throws Exception {
 
-
-        public MongoDBDaoData create() {
-
-            if (daoName == null) {
-                daoName = entityClass.getSimpleName() + "Dao";
+            if (entity == null) {
+                throw new Exception("entity涓嶈兘涓虹┖");
             }
 
-            Field[] fields = entityClass.getDeclaredFields();
+            if (baseDao == null) {
+                throw new Exception("baseDao涓嶈兘涓虹┖");
+            }
+
+            if (dao == null) {
+                throw new Exception("dao涓嶈兘涓虹┖");
+            }
+
+
+            Field[] fields = entity.getDeclaredFields();
             String identityColumnName = null;
             String identityColumnType = null;
             List<ColumnData> columlist = new ArrayList<>();
@@ -71,12 +73,9 @@
                 if (fd.getModifiers() != 1 && fd.getModifiers() != 2) {
                     continue;
                 }
-
                 String columName = fd.getName();
                 String columnDataType = fd.getGenericType().getTypeName();
                 Annotation[] as = fd.getAnnotations();
-
-
                 if (columName != null) {
                     for (Annotation a : as) {
                         //涓婚敭
@@ -130,18 +129,17 @@
             importClasses.add("java.util.ArrayList");
 
 
-            MongoDBDaoData data = new MongoDBDaoData();
-            data.setBaseDaoClassName(baseDaoClass.getSimpleName());
+            MongoDBDaoVO data = new MongoDBDaoVO();
+            data.setBaseDao(baseDao);
             data.setColumnDataList(columnDataList);
             data.setDaoQueryColumnDataList(daoQueryColumnList);
-            data.setDaoName(daoName);
-            data.setEntityClass(entityClass.getName());
-            data.setEntityClassName(entityClass.getSimpleName());
+            data.setDaoName(dao.getName());
+            data.setEntity(new ClassInfo(entity.getSimpleName(), entity.getName()));
             data.setIdentityColumn(new ColumnData(identityColumnName, identityColumnType));
-            data.setPackageName(daoPackageName);
+            data.setPackageName(dao.getClazz().replace("." + dao.getName(), ""));
 
-            importClasses.add(baseDaoClass.getName());
-            importClasses.add(entityClass.getName());
+            importClasses.add(baseDao.getClazz());
+            importClasses.add(entity.getName());
             data.setImportClasses(importClasses);
 
             return data;
@@ -157,22 +155,23 @@
         this.daoName = daoName;
     }
 
-    public String getBaseDaoClassName() {
-        return baseDaoClassName;
+    public ClassInfo getBaseDao() {
+        return baseDao;
     }
 
-    public void setBaseDaoClassName(String baseDaoClassName) {
-        this.baseDaoClassName = baseDaoClassName;
+    public void setBaseDao(ClassInfo baseDao) {
+        this.baseDao = baseDao;
     }
 
-    public String getEntityClassName() {
-        return entityClassName;
+    @Override
+    public ClassInfo getEntity() {
+        return entity;
     }
 
-    public void setEntityClassName(String entityClassName) {
-        this.entityClassName = entityClassName;
+    @Override
+    public void setEntity(ClassInfo entity) {
+        this.entity = entity;
     }
-
 
     public ColumnData getIdentityColumn() {
         return identityColumn;

--
Gitblit v1.8.0