admin
2024-07-25 47e3087067abd35e6337c011f96d2338c0bb1aae
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;
    }
}