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/vo/dao/MyBatisDBDaoVO.java |   55 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/src/main/java/org/yeshi/utils/generater/vo/dao/MyBatisDBDaoVO.java b/src/main/java/org/yeshi/utils/generater/vo/dao/MyBatisDBDaoVO.java
index aba2762..347b1d1 100644
--- a/src/main/java/org/yeshi/utils/generater/vo/dao/MyBatisDBDaoVO.java
+++ b/src/main/java/org/yeshi/utils/generater/vo/dao/MyBatisDBDaoVO.java
@@ -7,8 +7,11 @@
 import org.yeshi.utils.generater.entity.*;
 import org.yeshi.utils.generater.mybatis.Column;
 import org.yeshi.utils.generater.mybatis.ColumnParseUtil;
+import org.yeshi.utils.generater.mybatis.ColumnUtil;
 import org.yeshi.utils.generater.mybatis.Table;
 import org.yeshi.utils.generater.vo.ExceptionVO;
+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;
@@ -28,11 +31,13 @@
     private List<DaoQueryColumnData> queryList;
     private String table;
 
+
     public static class Builder {
 
         private ClassInfo baseMapper;
         private Class entity;
         private ClassInfo mapper;
+        private DaoData daoData;
 
         public Builder setBaseMapper(ClassInfo baseMapper) {
             this.baseMapper = baseMapper;
@@ -46,6 +51,11 @@
 
         public Builder setMapper(ClassInfo mapper) {
             this.mapper = mapper;
+            return this;
+        }
+
+        public Builder setDaoData(DaoData daoData) {
+            this.daoData = daoData;
             return this;
         }
 
@@ -104,13 +114,18 @@
                 }
 
                 String property = fd.getName();
-                String column = fd.getName();
+                String column = null;
                 for (Annotation a : as) {
                     //涓嶅弬涓庤В鏋�
                     if (a instanceof Column) {
                         column = ((Column) a).name();
                         break;
                     }
+                }
+
+                //椹煎嘲鍐欐硶锛岄瀛楁瘝灏忓啓
+                if (column == null) {
+                    column = ColumnUtil.getColumnFromProperty(fd.getName());
                 }
 
                 MybatisColumnData columData = new MybatisColumnData(column, property, fd.getType().getSimpleName(), ColumnParseUtil.getJDBCType(fd.getType().getName()));
@@ -133,16 +148,34 @@
                 columlist.add(columData);
 
 
-                //鑾峰彇鏌ヨ鏉′欢
-                for (Annotation a : as) {
-                    if (a instanceof DaoQueryCondition) {
-                        if (fd.getType().getSimpleName().equalsIgnoreCase("Date")) {
-                            daoQueryColumnList.add(new DaoQueryColumnData("max" + StringUtil.firstCharToUpper(columData.getProperty()), columData, fd.getType().getSimpleName(), DaoQueryCondition.QueryType.lt));
-                            daoQueryColumnList.add(new DaoQueryColumnData("min" + StringUtil.firstCharToUpper(columData.getProperty()), columData, fd.getType().getSimpleName(), DaoQueryCondition.QueryType.gte));
-                        } else {
-                            daoQueryColumnList.add(new DaoQueryColumnData(columData.getProperty(), columData, fd.getType().getSimpleName(), ((DaoQueryCondition) a).queryType()));
+                if (daoData != null) {
+                    //鏌ヨ鏉′欢浠庡閮ㄤ紶鍏�
+                    if (daoData.getQueryList() != null)
+                        for (DaoQuery query : daoData.getQueryList()) {
+                            if (query.getName().equalsIgnoreCase(columData.getProperty())) {
+                                if (fd.getType().getSimpleName().equalsIgnoreCase("Date")) {
+                                    daoQueryColumnList.add(new DaoQueryColumnData("max" + StringUtil.firstCharToUpper(columData.getProperty()), columData, fd.getType().getSimpleName(), DaoQueryCondition.QueryType.lt));
+                                    daoQueryColumnList.add(new DaoQueryColumnData("min" + StringUtil.firstCharToUpper(columData.getProperty()), columData, fd.getType().getSimpleName(), DaoQueryCondition.QueryType.gte));
+                                } else {
+                                    daoQueryColumnList.add(new DaoQueryColumnData(columData.getProperty(), columData, fd.getType().getSimpleName(), query.getQueryType()));
+                                }
+                            } else if (query.getName().equalsIgnoreCase(columData.getColumn())) {
+                                daoQueryColumnList.add(new DaoQueryColumnData(columData.getColumn(), columData, fd.getType().getSimpleName(), query.getQueryType()));
+                            }
                         }
-                        break;
+
+                } else {
+                    //鑾峰彇娉ㄨВ鏌ヨ鏉′欢
+                    for (Annotation a : as) {
+                        if (a instanceof DaoQueryCondition) {
+                            if (fd.getType().getSimpleName().equalsIgnoreCase("Date")) {
+                                daoQueryColumnList.add(new DaoQueryColumnData("max" + StringUtil.firstCharToUpper(columData.getProperty()), columData, fd.getType().getSimpleName(), DaoQueryCondition.QueryType.lt));
+                                daoQueryColumnList.add(new DaoQueryColumnData("min" + StringUtil.firstCharToUpper(columData.getProperty()), columData, fd.getType().getSimpleName(), DaoQueryCondition.QueryType.gte));
+                            } else {
+                                daoQueryColumnList.add(new DaoQueryColumnData(columData.getProperty(), columData, fd.getType().getSimpleName(), ((DaoQueryCondition) a).queryType()));
+                            }
+                            break;
+                        }
                     }
                 }
             }
@@ -212,4 +245,6 @@
     public void setTable(String table) {
         this.table = table;
     }
+
+
 }

--
Gitblit v1.8.0