From 211840b64fa1132d76d6dff6c779e9ba2c0c450f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 07 四月 2022 19:13:54 +0800
Subject: [PATCH] 优化自动化代码

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

diff --git a/src/main/java/org/yeshi/utils/generater/vo/dao/MongoDBDaoVO.java b/src/main/java/org/yeshi/utils/generater/vo/dao/MongoDBDaoVO.java
index d214ea5..159938f 100644
--- a/src/main/java/org/yeshi/utils/generater/vo/dao/MongoDBDaoVO.java
+++ b/src/main/java/org/yeshi/utils/generater/vo/dao/MongoDBDaoVO.java
@@ -2,11 +2,11 @@
 
 import org.springframework.data.annotation.Id;
 import org.springframework.data.annotation.Transient;
+import org.yeshi.utils.StringUtil;
 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 org.yeshi.utils.generater.entity.*;
+import org.yeshi.utils.generater.vo.xmlconfig.dao.DaoData;
+import org.yeshi.utils.generater.vo.xmlconfig.dao.DaoQuery;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
@@ -33,6 +33,8 @@
         private Class entity;
         private ClassInfo dao;
 
+        private DaoData daoData;
+
         public Builder setBaseDao(ClassInfo baseDao) {
             this.baseDao = baseDao;
             return this;
@@ -45,6 +47,11 @@
 
         public Builder setDao(ClassInfo dao) {
             this.dao = dao;
+            return this;
+        }
+
+        public Builder setDaoData(DaoData daoData) {
+            this.daoData = daoData;
             return this;
         }
 
@@ -97,10 +104,34 @@
                 }
 
                 //鑾峰彇鏌ヨ鏉′欢
-                for (Annotation a : as) {
-                    if (a instanceof DaoQueryCondition) {
-                        daoQueryColumnList.add(new DaoQueryColumnData(columName, columnDataType, ((DaoQueryCondition) a).queryType()));
-                        break;
+
+                if (daoData != null) {
+                    //鏌ヨ鏉′欢浠庡閮ㄤ紶鍏�
+                    for (DaoQuery query : daoData.getQueryList()) {
+                        if (query.getName().equalsIgnoreCase(columName)) {
+                            MybatisColumnData columnData = new MybatisColumnData(columName);
+                            if (fd.getType().getSimpleName().equalsIgnoreCase("Date")) {
+                                daoQueryColumnList.add(new DaoQueryColumnData("max" + StringUtil.firstCharToUpper(columName), columnData, fd.getType().getSimpleName(), DaoQueryCondition.QueryType.lt));
+                                daoQueryColumnList.add(new DaoQueryColumnData("min" + StringUtil.firstCharToUpper(columName), columnData, fd.getType().getSimpleName(), DaoQueryCondition.QueryType.gte));
+                            } else {
+                                daoQueryColumnList.add(new DaoQueryColumnData(columName, columnData, fd.getType().getSimpleName(), query.getQueryType()));
+                            }
+                        }
+                    }
+
+                } else {
+                    //鏍规嵁娉ㄨВ璁剧疆鐨勬煡璇㈡潯浠�
+                    for (Annotation a : as) {
+                        if (a instanceof DaoQueryCondition) {
+                            MybatisColumnData columnData = new MybatisColumnData(columName);
+                            if (fd.getType().getSimpleName().equalsIgnoreCase("Date")) {
+                                daoQueryColumnList.add(new DaoQueryColumnData("max" + StringUtil.firstCharToUpper(columName), columnData, fd.getType().getSimpleName(), DaoQueryCondition.QueryType.lt));
+                                daoQueryColumnList.add(new DaoQueryColumnData("min" + StringUtil.firstCharToUpper(columName), columnData, fd.getType().getSimpleName(), DaoQueryCondition.QueryType.gte));
+                            } else {
+                                daoQueryColumnList.add(new DaoQueryColumnData(columName, columnData, fd.getType().getSimpleName(), ((DaoQueryCondition) a).queryType()));
+                            }
+                            break;
+                        }
                     }
                 }
 

--
Gitblit v1.8.0