From 052e1d5c47c4e536fde79074d53b0481c7d4f9b6 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 13 十月 2021 18:33:42 +0800 Subject: [PATCH] 自动化代码生成优化 --- src/main/java/org/yeshi/utils/generater/GeneraterManager.java | 323 ++++++++++++++++++++ src/main/java/org/yeshi/utils/FileUtil.java | 2 src/main/java/org/yeshi/utils/generater/params/DaoGeneraterParams.java | 33 ++ src/main/java/org/yeshi/utils/mybatis/BaseMapper.java | 23 + src/main/java/org/yeshi/utils/StringUtil.java | 9 src/main/java/org/yeshi/utils/generater/params/ServiceGeneraterParams.java | 44 ++ src/main/java/org/yeshi/utils/generater/entity/MybatisColumnData.java | 5 src/test/java/com/generater/TestEntity2.java | 15 src/main/java/org/yeshi/utils/generater/annotation/admin/DaoQueryCondition.java | 2 src/test/java/com/generater/GeneratorTest.java | 15 src/main/java/org/yeshi/utils/generater/vo/dao/MyBatisDBDaoVO.java | 9 src/main/java/org/yeshi/utils/generater/vo/service/QueryVO.java | 57 +++ src/main/java/org/yeshi/utils/generater/params/AdminGeneraterParams.java | 33 ++ src/test/java/com/generater/TestEntity.java | 14 /dev/null | 6 src/main/java/org/yeshi/utils/generater/vo/dao/MongoDBDaoVO.java | 14 src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java | 19 - src/main/java/org/yeshi/utils/generater/GeneraterUtil.java | 119 +++++++ src/main/resources/generater/dao/mybatisDBDao.template | 5 src/main/resources/generater/service/queryVO.ftl | 3 src/main/java/org/yeshi/utils/mongo/MongodbBaseDao.java | 106 ++++++ src/main/resources/generater/dao/mybatisDBXML.ftl | 28 + src/main/resources/generater/dao/mongoDBDao.template | 56 +- 23 files changed, 856 insertions(+), 84 deletions(-) diff --git a/src/main/java/org/yeshi/utils/FileUtil.java b/src/main/java/org/yeshi/utils/FileUtil.java index 873b009..df7ce33 100644 --- a/src/main/java/org/yeshi/utils/FileUtil.java +++ b/src/main/java/org/yeshi/utils/FileUtil.java @@ -91,7 +91,7 @@ /** * 灏嗚緭鍏ユ祦瀛樹负鏈湴鏂囦欢 * - * @param inputStream + * @param b * @param path * @return * @throws IOException diff --git a/src/main/java/org/yeshi/utils/StringUtil.java b/src/main/java/org/yeshi/utils/StringUtil.java index bce6048..5aec7ed 100644 --- a/src/main/java/org/yeshi/utils/StringUtil.java +++ b/src/main/java/org/yeshi/utils/StringUtil.java @@ -328,10 +328,17 @@ //棣栧瓧姣嶅皬鍐� public static String firstCharToLower(String st) { - if (st == null || st.length() < 2) + if (st == null || st.length() < 1) return st; return st.substring(0, 1).toLowerCase() + st.substring(1); } + //棣栧瓧姣嶅ぇ鍐� + public static String firstCharToUpper(String st) { + if (st == null || st.length() < 1) + return st; + return st.substring(0, 1).toUpperCase() + st.substring(1); + } + } diff --git a/src/main/java/org/yeshi/utils/generater/GeneraterManager.java b/src/main/java/org/yeshi/utils/generater/GeneraterManager.java new file mode 100644 index 0000000..30f5916 --- /dev/null +++ b/src/main/java/org/yeshi/utils/generater/GeneraterManager.java @@ -0,0 +1,323 @@ +package org.yeshi.utils.generater; + +import com.meizu.push.sdk.server.IFlymePush; +import org.springframework.data.mongodb.core.mapping.Document; +import org.yeshi.utils.FileUtil; +import org.yeshi.utils.StringUtil; +import org.yeshi.utils.generater.entity.ClassInfo; +import org.yeshi.utils.generater.entity.admin.AdminGeneraterInfo; +import org.yeshi.utils.generater.mybatis.Table; +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.vo.ExceptionVO; +import org.yeshi.utils.generater.vo.admin.controller.AdminControllerInfoVO; +import org.yeshi.utils.generater.vo.dao.MongoDBDaoVO; +import org.yeshi.utils.generater.vo.dao.MyBatisDBDaoVO; +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.mongo.MongodbBaseDao; +import org.yeshi.utils.mybatis.BaseMapper; + +import java.io.File; +import java.lang.annotation.Annotation; + +/** + * @author Administrator + * @title: GeneraterManager + * @description: 鑷姩鍖栦唬鐮佺敓鎴愮鐞嗗櫒 + * @date 2021/10/13 14:48 + */ + +/** + * Title + * + * @Description //TODO + * @Author hxh + * @Date 18:11 2021/10/13 + **/ +public class GeneraterManager { + + private static GeneraterManager instance; + + private String classRootDir; + private Class entity; + + public static GeneraterManager getInstance() { + if (instance == null) + instance = new GeneraterManager(); + return instance; + } + + //绫荤殑鏍圭洰褰� + public void init(String classRootDir, Class entity) { + this.classRootDir = classRootDir; + this.entity = entity; + } + + //鑾峰彇鏂囦欢澶圭殑璺緞 + private String getDirPath(String packageName) { + File f = new File(classRootDir); + if (!f.exists()) { + f.mkdirs(); + } + return new File(f.getAbsolutePath(), packageName.replace(".", "/")).getAbsolutePath(); + } + + public void createException(String packageName, Class base) { + String path = getDirPath(packageName); + try { + 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); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * @return org.yeshi.utils.generater.vo.dao.MongoDBDaoVO + * @author hxh + * @description 鑷姩鐢熸垚Dao + * @date 18:24 2021/10/13 + * @param: packageName + **/ + public MongoDBDaoVO createDao(String packageName) throws Exception { + String daoName = entity.getSimpleName() + "Dao"; + String path = getDirPath(packageName); + MongoDBDaoVO vo = new MongoDBDaoVO.Builder() + .setBaseDao(new ClassInfo(MongodbBaseDao.class.getSimpleName(), MongodbBaseDao.class.getName())) + .setDao(new ClassInfo(daoName, packageName + "." + daoName)) + .setEntity(entity).build(); + String result = GeneraterUtil.createMongoDBDao(vo); + //淇濆瓨 + FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, daoName).getAbsolutePath()); + return vo; + } + + /** + * @return org.yeshi.utils.generater.vo.dao.MyBatisDBDaoVO + * @author hxh + * @description 鑷姩鐢熸垚Mapper + * @date 18:24 2021/10/13 + * @param: packageName + * @param: mapperDir + **/ + public MyBatisDBDaoVO createMapper(String packageName, String mapperDir) throws Exception { + String mapperName = entity.getSimpleName() + "Mapper"; + String path = getDirPath(packageName); + MyBatisDBDaoVO vo = new MyBatisDBDaoVO.Builder() + .setBaseMapper(new ClassInfo(BaseMapper.class.getSimpleName(), BaseMapper.class.getName())) + .setMapper(new ClassInfo(mapperName, packageName + "." + mapperName)) + .setEntity(entity) + .build(); + String result = GeneraterUtil.createMybatisDBMapper(vo); + //淇濆瓨 + FileUtil.saveAsFileByte(result.getBytes("UTF-8"), 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()); + return vo; + } + + /** + * @return org.yeshi.utils.generater.vo.service.QueryVO + * @author hxh + * @description /鍒涘缓鏌ヨQuery + * @date 18:24 2021/10/13 + * @param: packageName + **/ + public QueryVO createQuery(String packageName) throws Exception { + //鍒涘缓Query + 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()); + return queryVO; + } + + /** + * @return org.yeshi.utils.generater.vo.service.ServiceInfoVO + * @author hxh + * @description 鑷姩鐢熸垚鏈嶅姟 + * @date 18:23 2021/10/13 + * @param: interPackageName + * @param: implPackageName + * @param: query + * @param: dao + **/ + public ServiceInfoVO createService(String interPackageName, String implPackageName, ClassInfo query, ClassInfo dao) throws Exception { + + + //鍒涘缓service鎺ュ彛 + String serviceName = entity.getSimpleName() + "Service"; + String path = getDirPath(interPackageName); + ServiceInfoVO vo = new ServiceInfoVO.Builder() + .setPackageName(interPackageName) + .setEntity(entity) + .setQuery(query) + .setService(new ClassInfo(serviceName, interPackageName + "." + serviceName)) + .build(); + String result = GeneraterUtil.createService(vo); + FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, serviceName + ".java").getAbsolutePath()); + + //鍒涘缓service瀹炵幇 + String serviceImplName = entity.getSimpleName() + "ServiceImpl"; + path = getDirPath(implPackageName); + ServiceImplInfoVO implVO = new ServiceImplInfoVO.Builder() + .setDao(dao) + .setPackageName(implPackageName) + .setEntity(entity) + .setQuery(query) + .setService(new ClassInfo(serviceName, interPackageName + "." + serviceName)) + .setDaoQuery(new ClassInfo("DaoQuery", dao.getClazz() + ".DaoQuery")) + .build(); + result = GeneraterUtil.createServiceImpl(implVO); + FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, serviceImplName + ".java").getAbsolutePath()); + return vo; + } + + + /** + * @return void + * @author hxh + * @description 鑷姩鐢熸垚绠$悊妯″潡 + * @date 18:23 2021/10/13 + * @param: controllerPackage + * @param: htmlDir + * @param: query + * @param: service + **/ + 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(); + //鐢熸垚controller + String result = GeneraterUtil.createAdminController(vo); + FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, controllerName + ".java").getAbsolutePath()); + + + result = GeneraterUtil.createAdminPageForList(generaterInfo); + FileUtil.saveAsFileByte(result.getBytes("UTF-8"), 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()); + } + + 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()); + } + } + + + /** + * @return void + * @author hxh + * @description 鍒涘缓鏁翠釜鍔熻兘妯″潡 + * @date 18:19 2021/10/13 + * @param: daoParams + * @param: serviceParams + * @param: adminParams + **/ + public void createWholeFunction(DaoGeneraterParams daoParams, ServiceGeneraterParams serviceParams, AdminGeneraterParams adminParams) throws Exception { + Annotation[] as = entity.getAnnotations(); + int type = -1; + for (Annotation a : as) { + if (a instanceof Table) { + type = 1; + break; + } else if (a instanceof Document) { + type = 2; + break; + } + } + if (type == -1) { + throw new Exception("瀹炰綋鏈厤缃甿ybatis鎴栬�卪ongodb"); + } + + if (daoParams != null) { + if (type == 1 && StringUtil.isNullOrEmpty(daoParams.getMapperXMLDir())) { + throw new Exception("mybatis xml鏂囦欢璺緞涓虹┖"); + } + } + + //鍒涘缓dao + ClassInfo daoClass = null; + if (daoParams != null) { + if (type == 1) { + MyBatisDBDaoVO vo = createMapper(daoParams.getDaoPackage(), daoParams.getMapperXMLDir()); + daoClass = vo.getMapper(); + } else { + MongoDBDaoVO vo = createDao(daoParams.getDaoPackage()); + daoClass = new ClassInfo(vo.getDaoName(), vo.getPackageName() + "." + vo.getDaoName()); + } + } + + ClassInfo queryClass = null; + ClassInfo serviceClass = null; + + if (serviceParams != null) { + //鍒涘缓Query + QueryVO queryVO = createQuery(serviceParams.getQueryPackage()); + queryClass = new ClassInfo(queryVO.getClassName(), queryVO.getPackageName() + "." + queryVO.getClassName()); + + //鍒涘缓service + ServiceInfoVO serviceInfoVO = createService(serviceParams.getServiceInterPackage(), serviceParams.getServiceImplPackage(), queryClass, daoClass); + serviceClass = serviceInfoVO.getService(); + } + + //鍒涘缓Admin妯″潡 + createAdmin(adminParams.getControllerPackage(), adminParams.getHtmlDir(), queryClass, serviceClass); + } + + /** + * @return java.lang.String + * @author hxh + * @description 閫氳繃entity鐨勫悕绉拌幏鍙杊tml鏂囦欢鐨勫墠缂�鍚嶇О + * @date 18:25 2021/10/13 + * @param: entityName + **/ + private static String getHtmlNameFromEntityName(String entityName) { + StringBuffer sb = new StringBuffer(); + StringBuffer buffer = null; + for (int i = 0; i < entityName.length(); i++) { + if (entityName.charAt(i) >= 65 && entityName.charAt(i) <= 90) { + //澶у啓瀛楁瘝 + if (buffer == null) + buffer = new StringBuffer(); + buffer.append(entityName.charAt(i)); + } else { + if (buffer != null) { + sb.append("_" + buffer.toString().toLowerCase()); + buffer = null; + } + sb.append(entityName.charAt(i)); + } + } + + if (buffer != null) { + sb.append("_" + buffer.toString().toLowerCase()); + } + + if (sb.charAt(0) == '_') + sb = sb.replace(0, 1, ""); + return sb.toString(); + } + + + public static void main(String[] args) { + System.out.print(getHtmlNameFromEntityName("TTestEEntity")); + } + + +} diff --git a/src/main/java/org/yeshi/utils/generater/GeneraterUtil.java b/src/main/java/org/yeshi/utils/generater/GeneraterUtil.java new file mode 100644 index 0000000..204c1d7 --- /dev/null +++ b/src/main/java/org/yeshi/utils/generater/GeneraterUtil.java @@ -0,0 +1,119 @@ +package org.yeshi.utils.generater; + +import org.yeshi.utils.FreemarkerUtils; +import org.yeshi.utils.generater.entity.admin.AdminGeneraterInfo; +import org.yeshi.utils.generater.vo.ExceptionVO; +import org.yeshi.utils.generater.vo.admin.controller.AdminControllerInfoVO; +import org.yeshi.utils.generater.vo.admin.page.FormAddInfoVO; +import org.yeshi.utils.generater.vo.admin.page.FormUpdateInfoVO; +import org.yeshi.utils.generater.vo.admin.page.ListInfoVO; +import org.yeshi.utils.generater.vo.dao.MongoDBDaoVO; +import org.yeshi.utils.generater.vo.dao.MyBatisDBDaoVO; +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 java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +public class GeneraterUtil { + + public static String createException(ExceptionVO vo) throws IOException { + String result = FreemarkerUtils.generateInputStream(vo, GeneraterUtil.class.getClassLoader().getResourceAsStream("generater\\exception.template")); + System.out.println(result); + return result; + } + + public static String createMongoDBDao(MongoDBDaoVO vo) throws IOException { + String result = FreemarkerUtils.generateInputStream(vo, GeneraterUtil.class.getClassLoader().getResourceAsStream("generater\\dao\\mongoDBDao.template")); + System.out.println(result); + return result; + } + + + public static String createMybatisDBMapper(MyBatisDBDaoVO vo) throws IOException { + String result = FreemarkerUtils.generateInputStream(vo, GeneraterUtil.class.getClassLoader().getResourceAsStream("generater\\dao\\mybatisDBDao.template")); + System.out.println(result); + return result; + } + + public static String createMybatisDBMapperXML(MyBatisDBDaoVO vo) throws IOException { + String result = FreemarkerUtils.generateInputStream(vo, GeneraterUtil.class.getClassLoader().getResourceAsStream("generater\\dao\\mybatisDBXML.ftl")); + System.out.println(result); + return result; + } + + + public static String createQuery(QueryVO vo) throws IOException { + String result = FreemarkerUtils.generateInputStream(vo, GeneraterUtil.class.getClassLoader().getResourceAsStream("generater\\service\\queryVO.ftl")); + System.out.println(result); + return result; + } + + public static String createService(ServiceInfoVO vo) throws IOException { + String result = FreemarkerUtils.generateInputStream(vo, GeneraterUtil.class.getClassLoader().getResourceAsStream("generater\\service\\service.template")); + System.out.println(result); + return result; + } + + public static String createServiceImpl(ServiceImplInfoVO vo) throws IOException { + String result = FreemarkerUtils.generateInputStream(vo, GeneraterUtil.class.getClassLoader().getResourceAsStream("generater\\service\\serviceImpl.template")); + System.out.println(result); + return result; + } + + + public static String createAdminController(AdminControllerInfoVO vo) throws IOException { + String result = FreemarkerUtils.generateInputStream(vo, GeneraterUtil.class.getClassLoader().getResourceAsStream("generater\\admin\\adminController.template")); + System.out.println(result); + return result; + } + + + private static Map<String, InputStream> getAdminIncludePageMap() { + //灏嗘墍鏈夌殑鎺т欢妯℃澘鍔犺浇杩涘幓 + String[] template = new String[]{ + "admin/form/checkBox.ftl", + "admin/form/img.ftl", + "admin/form/password.ftl", + "admin/form/radioGroup.ftl", + "admin/form/select.ftl", + "admin/form/switch.ftl", + "admin/form/text.ftl", + "admin/form/textArea.ftl", + "admin/add.ftl", + "admin/update.ftl", + "admin/list.ftl" + }; + Map<String, InputStream> map = new HashMap<>(); + for (String st : template) { + map.put(st, GeneraterUtil.class.getClassLoader().getResourceAsStream("generater/" + st)); + } + return map; + } + + public static String createAdminPageForUpdate(AdminGeneraterInfo vo) throws IOException { + Map<String, InputStream> map = getAdminIncludePageMap(); + String result = FreemarkerUtils.generateInputStream(new FormUpdateInfoVO.Builder().setAdminInfo(vo).build(), "admin/update.ftl", map); + System.out.println(result); + return result; + } + + public static String createAdminPageForAdd(AdminGeneraterInfo vo) throws IOException { + Map<String, InputStream> map = getAdminIncludePageMap(); + String result = FreemarkerUtils.generateInputStream(new FormAddInfoVO.Builder().setAdminInfo(vo).build(), "admin/add.ftl", map); + System.out.println(result); + return result; + } + + public static String createAdminPageForList(AdminGeneraterInfo vo) throws IOException { + Map<String, InputStream> map = getAdminIncludePageMap(); + String result = FreemarkerUtils.generateInputStream(new ListInfoVO.Builder().setAdminInfo(vo).build(), "admin/list.ftl", map); + System.out.println(result); + return result; + } + + +} diff --git a/src/main/java/org/yeshi/utils/generater/SpringComponentGenerater.java b/src/main/java/org/yeshi/utils/generater/SpringComponentGenerater.java deleted file mode 100644 index f8d9302..0000000 --- a/src/main/java/org/yeshi/utils/generater/SpringComponentGenerater.java +++ /dev/null @@ -1,6 +0,0 @@ -package org.yeshi.utils.generater; - -public class SpringComponentGenerater { - - -} diff --git a/src/main/java/org/yeshi/utils/generater/annotation/admin/DaoQueryCondition.java b/src/main/java/org/yeshi/utils/generater/annotation/admin/DaoQueryCondition.java index 40ce4d3..474b9ba 100644 --- a/src/main/java/org/yeshi/utils/generater/annotation/admin/DaoQueryCondition.java +++ b/src/main/java/org/yeshi/utils/generater/annotation/admin/DaoQueryCondition.java @@ -20,7 +20,7 @@ //鏄剧ず绫诲瀷 enum QueryType { - start, end, contains, equal + start, end, contains, equal, gt, gte, lt, lte } diff --git a/src/main/java/org/yeshi/utils/generater/entity/MybatisColumnData.java b/src/main/java/org/yeshi/utils/generater/entity/MybatisColumnData.java index 26f0e49..c979d88 100644 --- a/src/main/java/org/yeshi/utils/generater/entity/MybatisColumnData.java +++ b/src/main/java/org/yeshi/utils/generater/entity/MybatisColumnData.java @@ -16,6 +16,11 @@ this.jdbcType = jdbcType; } + public MybatisColumnData( String property) { + this.property = property; + } + + public String getColumn() { return column; } diff --git a/src/main/java/org/yeshi/utils/generater/params/AdminGeneraterParams.java b/src/main/java/org/yeshi/utils/generater/params/AdminGeneraterParams.java new file mode 100644 index 0000000..09ef57a --- /dev/null +++ b/src/main/java/org/yeshi/utils/generater/params/AdminGeneraterParams.java @@ -0,0 +1,33 @@ +package org.yeshi.utils.generater.params; + +/** + * @author Administrator + * @title: DaoParams + * @description: 绠$悊鍔熻兘鐢熸垚鍙傛暟 + * @date 2021/10/13 17:41 + */ +public class AdminGeneraterParams { + private String controllerPackage; + private String htmlDir; + + public AdminGeneraterParams(String controllerPackage, String htmlDir) { + this.controllerPackage = controllerPackage; + this.htmlDir = htmlDir; + } + + public String getControllerPackage() { + return controllerPackage; + } + + public void setControllerPackage(String controllerPackage) { + this.controllerPackage = controllerPackage; + } + + public String getHtmlDir() { + return htmlDir; + } + + public void setHtmlDir(String htmlDir) { + this.htmlDir = htmlDir; + } +} diff --git a/src/main/java/org/yeshi/utils/generater/params/DaoGeneraterParams.java b/src/main/java/org/yeshi/utils/generater/params/DaoGeneraterParams.java new file mode 100644 index 0000000..30f34be --- /dev/null +++ b/src/main/java/org/yeshi/utils/generater/params/DaoGeneraterParams.java @@ -0,0 +1,33 @@ +package org.yeshi.utils.generater.params; + +/** + * @author Administrator + * @title: DaoParams + * @description: 鐢熸垚Dao鐨勫弬鏁伴厤缃� + * @date 2021/10/13 17:41 + */ +public class DaoGeneraterParams { + private String daoPackage; + private String mapperXMLDir; + + public DaoGeneraterParams(String daoPackage, String mapperXMLDir) { + this.daoPackage = daoPackage; + this.mapperXMLDir = mapperXMLDir; + } + + public String getDaoPackage() { + return daoPackage; + } + + public void setDaoPackage(String daoPackage) { + this.daoPackage = daoPackage; + } + + public String getMapperXMLDir() { + return mapperXMLDir; + } + + public void setMapperXMLDir(String mapperXMLDir) { + this.mapperXMLDir = mapperXMLDir; + } +} diff --git a/src/main/java/org/yeshi/utils/generater/params/ServiceGeneraterParams.java b/src/main/java/org/yeshi/utils/generater/params/ServiceGeneraterParams.java new file mode 100644 index 0000000..8f0dcd8 --- /dev/null +++ b/src/main/java/org/yeshi/utils/generater/params/ServiceGeneraterParams.java @@ -0,0 +1,44 @@ +package org.yeshi.utils.generater.params; + +/** + * @author Administrator + * @title: DaoParams + * @description: service鑷姩鐢熸垚鍙傛暟 + * @date 2021/10/13 17:41 + */ +public class ServiceGeneraterParams { + + private String queryPackage; + private String serviceInterPackage; + private String serviceImplPackage; + + public ServiceGeneraterParams(String queryPackage, String serviceInterPackage, String serviceImplPackage) { + this.queryPackage = queryPackage; + this.serviceInterPackage = serviceInterPackage; + this.serviceImplPackage = serviceImplPackage; + } + + public String getQueryPackage() { + return queryPackage; + } + + public void setQueryPackage(String queryPackage) { + this.queryPackage = queryPackage; + } + + public String getServiceInterPackage() { + return serviceInterPackage; + } + + public void setServiceInterPackage(String serviceInterPackage) { + this.serviceInterPackage = serviceInterPackage; + } + + public String getServiceImplPackage() { + return serviceImplPackage; + } + + public void setServiceImplPackage(String serviceImplPackage) { + this.serviceImplPackage = serviceImplPackage; + } +} 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..9bc53a3 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,9 @@ 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 java.lang.annotation.Annotation; import java.lang.reflect.Field; @@ -99,7 +97,13 @@ //鑾峰彇鏌ヨ鏉′欢 for (Annotation a : as) { if (a instanceof DaoQueryCondition) { - daoQueryColumnList.add(new DaoQueryColumnData(columName, columnDataType, ((DaoQueryCondition) a).queryType())); + 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; } } 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 ee9a630..aba2762 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 @@ -2,6 +2,7 @@ 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.*; import org.yeshi.utils.generater.mybatis.Column; @@ -119,6 +120,7 @@ //涓婚敭 if (a instanceof Id) { identity = columData; + identity.setType(fd.getType().getName()); valid = false; break; } @@ -134,7 +136,12 @@ //鑾峰彇鏌ヨ鏉′欢 for (Annotation a : as) { if (a instanceof DaoQueryCondition) { - daoQueryColumnList.add(new DaoQueryColumnData(columData.getProperty(), columData, fd.getType().getSimpleName(), ((DaoQueryCondition) a).queryType())); + 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; } } diff --git a/src/main/java/org/yeshi/utils/generater/vo/service/QueryVO.java b/src/main/java/org/yeshi/utils/generater/vo/service/QueryVO.java new file mode 100644 index 0000000..796b659 --- /dev/null +++ b/src/main/java/org/yeshi/utils/generater/vo/service/QueryVO.java @@ -0,0 +1,57 @@ +package org.yeshi.utils.generater.vo.service; + +import org.yeshi.utils.generater.entity.BaseData; +import org.yeshi.utils.generater.util.EntityUtil; + +import java.lang.reflect.Field; + +public class QueryVO extends BaseData { + private String className; + + public static class Builder { + private Class entity; + private String packageName; + + + public Builder setEntity(Class entity) { + this.entity = entity; + return this; + } + + public Builder setPackageName(String packageName) { + this.packageName = packageName; + return this; + } + + private void validParams() throws Exception { + if (entity == null) { + throw new Exception("entity涓嶈兘涓虹┖"); + } + if (packageName == null) { + throw new Exception("packageName涓嶈兘涓虹┖"); + } + } + + + public QueryVO build() throws Exception { + validParams(); + Field identifyId = EntityUtil.getIdentifyId(entity); + if (identifyId == null) { + throw new Exception("灏氭湭鎵惧埌涓婚敭灞炴��"); + } + QueryVO vo = new QueryVO(); + vo.setPackageName(packageName); + vo.setClassName(entity.getSimpleName() + "Query"); + return vo; + } + + } + + public String getClassName() { + return className; + } + + public void setClassName(String className) { + this.className = className; + } +} diff --git a/src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java b/src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java index 3e7610e..39c3b29 100644 --- a/src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java +++ b/src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java @@ -11,7 +11,6 @@ public class ServiceInfoVO extends BaseData { private ClassInfo service; - private ClassInfo dao; //鏂规硶鍒楄〃 private List<ServiceMetodInfoVO> metodInfoList; private ClassInfo query; @@ -20,7 +19,6 @@ public static class Builder { private Class entity; private String packageName; - private ClassInfo dao; private ClassInfo service; private ClassInfo query; @@ -32,11 +30,6 @@ public Builder setPackageName(String packageName) { this.packageName = packageName; - return this; - } - - public Builder setDao(ClassInfo dao) { - this.dao = dao; return this; } @@ -82,9 +75,6 @@ if (packageName == null) { throw new Exception("packageName涓嶈兘涓虹┖"); } - if (dao == null) { - throw new Exception("dao涓嶈兘涓虹┖"); - } if (service == null) { throw new Exception("service涓嶈兘涓虹┖"); } @@ -102,7 +92,6 @@ throw new Exception("灏氭湭鎵惧埌涓婚敭灞炴��"); } ServiceInfoVO serviceData = new ServiceInfoVO(); - serviceData.setDao(dao); serviceData.setService(service); serviceData.setEntity(new ClassInfo(entity.getSimpleName(), entity.getName())); serviceData.setPackageName(packageName); @@ -166,14 +155,6 @@ public void setService(ClassInfo service) { this.service = service; - } - - public ClassInfo getDao() { - return dao; - } - - public void setDao(ClassInfo dao) { - this.dao = dao; } public List<ServiceMetodInfoVO> getMetodInfoList() { diff --git a/src/main/java/org/yeshi/utils/mongo/MongodbBaseDao.java b/src/main/java/org/yeshi/utils/mongo/MongodbBaseDao.java new file mode 100644 index 0000000..5226547 --- /dev/null +++ b/src/main/java/org/yeshi/utils/mongo/MongodbBaseDao.java @@ -0,0 +1,106 @@ +package org.yeshi.utils.mongo; + +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; + +import javax.annotation.Resource; +import java.lang.reflect.ParameterizedType; +import java.util.List; + +/** + * @author Administrator + * @title: MongodbBaseDao + * @description: base dao + * @date 2021/10/13 15:03 + */ +public class MongodbBaseDao<T> { + + @Resource + protected MongoTemplate mongoTemplate; + + /** + * 鎻掑叆鏁版嵁 + * + * @param bean + * @return + */ + public T save(T bean) { + mongoTemplate.save(bean); + return bean; + } + + /** + * 鏍规嵁涓婚敭鏇存柊鏁版嵁 + * + * @param query + * @param update + */ + public void update(Query query, Update update) { + mongoTemplate.upsert(query, update, this.getEntityClass()); + } + + /** + * 鏌ヨ涓�涓暟鎹� + * + * @param query + * @return + */ + public T findOne(Query query) { + return (T) mongoTemplate.findOne(query, this.getEntityClass()); + } + + /** + * 鏌ヨ澶氫釜鏁版嵁 + * + * @param query + * @return + */ + public List<T> findList(Query query) { + return mongoTemplate.find(query, this.getEntityClass()); + } + + + /** + * 缁熻鏁伴噺 + * + * @param query + * @return + */ + public long count(Query query) { + return mongoTemplate.count(query, this.getEntityClass()); + } + + /** + * 涓婚敭鏌ヨ + * + * @param id + * @return + */ + public T get(Object id) { + return (T) mongoTemplate.findById(id, this.getEntityClass()); + } + + /** + * 閫氳繃涓婚敭鍒犻櫎 + * + * @param id + */ + public void delete(Object id) { + Query query = Query.query(Criteria.where("id").is(id)); + mongoTemplate.remove(query, getEntityClass()); + } + + public void delete(Query query) { + mongoTemplate.remove(query, getEntityClass()); + } + + @SuppressWarnings("unchecked") + protected Class<T> getEntityClass() { + Class<T> tClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + return tClass; + } + +} diff --git a/src/main/java/org/yeshi/utils/mybatis/BaseMapper.java b/src/main/java/org/yeshi/utils/mybatis/BaseMapper.java new file mode 100644 index 0000000..c932abe --- /dev/null +++ b/src/main/java/org/yeshi/utils/mybatis/BaseMapper.java @@ -0,0 +1,23 @@ +package org.yeshi.utils.mybatis; + +/** + * @author Administrator + * @title: BaseMapper + * @projectName utils + * @description: 鍩虹Mapper + * @date 2021/10/1315:02 + */ +public interface BaseMapper<T> { + + int deleteByPrimaryKey(Long id); + + int insert(T record); + + int insertSelective(T record); + + T selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(T record); + + int updateByPrimaryKey(T record); +} diff --git a/src/main/resources/generater/dao/mongoDBDao.template b/src/main/resources/generater/dao/mongoDBDao.template index eeea6ba..32a5d1d 100644 --- a/src/main/resources/generater/dao/mongoDBDao.template +++ b/src/main/resources/generater/dao/mongoDBDao.template @@ -46,43 +46,37 @@ } private Query getQuery(DaoQuery daoQuery){ - List<Criteria> andList=new ArrayList<>(); - <#list daoQueryColumnDataList as value> - <#if (value.type!"") == "Date"> - if(daoQuery.min${value.columnName?cap_first}!=null){ - andList.add(Criteria.where("${value.columnName}").gte(daoQuery.min${value.columnName?cap_first})); - } - if(daoQuery.max${value.columnName?cap_first}!=null){ - andList.add(Criteria.where("${value.columnName}").lt(daoQuery.max${value.columnName?cap_first})); - } - <#else> - if(daoQuery.${value.columnName}!=null){ - <#if (value.queryType!"") == "equal"> - andList.add(Criteria.where("${value.columnName}").is(daoQuery.${value.columnName})); - <#else> - andList.add(Criteria.where("${value.columnName}").regex(daoQuery.${value.columnName})); - </#if> - } - </#if> - </#list> - Query query=new Query(); - Criteria[] ands=new Criteria[andList.size()]; - andList.toArray(ands); - if(ands.length>0){ - query.addCriteria(new Criteria().andOperator(ands)); - } - return query; + List<Criteria> andList=new ArrayList<>(); + <#list daoQueryColumnDataList as value> + if(daoQuery.${value.columnName}!=null){ + <#if (value.queryType!"") == "equal"> + andList.add(Criteria.where("${value.columnData.property}").is(daoQuery.${value.columnName})); + <#elseif (value.queryType!"") == "gt"> + andList.add(Criteria.where("${value.columnData.property}").gt(daoQuery.${value.columnName})); + <#elseif (value.queryType!"") == "gte"> + andList.add(Criteria.where("${value.columnData.property}").gte(daoQuery.${value.columnName})); + <#elseif (value.queryType!"") == "lt"> + andList.add(Criteria.where("${value.columnData.property}").lt(daoQuery.${value.columnName})); + <#elseif (value.queryType!"") == "lte"> + andList.add(Criteria.where("${value.columnData.property}").lte(daoQuery.${value.columnName})); + <#else> + andList.add(Criteria.where("${value.columnData.property}").regex(daoQuery.${value.columnName})); + </#if> + } + </#list> + Query query=new Query(); + Criteria[] ands=new Criteria[andList.size()]; + andList.toArray(ands); + if(ands.length>0){ + query.addCriteria(new Criteria().andOperator(ands)); + } + return query; } public static class DaoQuery{ <#if daoQueryColumnDataList??> <#list daoQueryColumnDataList as value> - <#if (value.type!"") == "Date"> - public ${value.type} min${value.columnName?cap_first}; - public ${value.type} max${value.columnName?cap_first}; - <#else> public ${value.type} ${value.columnName}; - </#if> </#list> </#if> public int start; diff --git a/src/main/resources/generater/dao/mybatisDBDao.template b/src/main/resources/generater/dao/mybatisDBDao.template index 3e7fd8a..3073e91 100644 --- a/src/main/resources/generater/dao/mybatisDBDao.template +++ b/src/main/resources/generater/dao/mybatisDBDao.template @@ -18,12 +18,7 @@ public static class DaoQuery{ <#if queryList??> <#list queryList as value> - <#if (value.type!"") == "Date"> - public ${value.type} min${value.columnName?cap_first}; - public ${value.type} max${value.columnName?cap_first}; - <#else> public ${value.type} ${value.columnName}; - </#if> </#list> </#if> public long start; diff --git a/src/main/resources/generater/dao/mybatisDBXML.ftl b/src/main/resources/generater/dao/mybatisDBXML.ftl index 6456016..fb90129 100644 --- a/src/main/resources/generater/dao/mybatisDBXML.ftl +++ b/src/main/resources/generater/dao/mybatisDBXML.ftl @@ -17,32 +17,32 @@ </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" - parameterType="java.lang.Long"> + parameterType="${identify.type}"> select <include refid="Base_Column_List"/> from ${table} where ${identify.column} = <#noparse>#{</#noparse>id, jdbcType=${identify.jdbcType}} </select> <select id="selectByPrimaryKeyForUpdate" resultMap="BaseResultMap" - parameterType="java.lang.Long"> + parameterType="${identify.type}"> select <include refid="Base_Column_List"/> from ${table} where ${identify.column} = <#noparse>#{</#noparse>id,jdbcType=${identify.jdbcType}} for update </select> - <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <delete id="deleteByPrimaryKey" parameterType="${identify.type}"> delete from ${table} where ${identify.column} = <#noparse>#{</#noparse>id,jdbcType=${identify.jdbcType}} </delete> <insert id="insert" - parameterType="${entity.class}" + parameterType="${entity.clazz}" useGeneratedKeys="true" keyProperty="${identify.property}"> insert into ${table} <trim prefix="(" suffix=")" suffixOverrides=","> <#list columnList as column> - ${column.column}}, + ${column.column}, </#list> </trim> @@ -56,7 +56,7 @@ </insert> <insert id="insertSelective" - parameterType="${entity.class}" + parameterType="${entity.clazz}" useGeneratedKeys="true" keyProperty="${identify.property}"> insert into ${table} <trim prefix="(" suffix=")" suffixOverrides=","> @@ -74,7 +74,7 @@ </trim> </insert> <update id="updateByPrimaryKey" - parameterType="${entity.class}"> + parameterType="${entity.clazz}"> update ${table} <set> <if test="${identify.property} != null">${identify.column} = <#noparse>#{</#noparse>${identify.property},jdbcType=${identify.jdbcType}},</if> @@ -85,7 +85,7 @@ where ${identify.column} = <#noparse>#{</#noparse>${identify.property},jdbcType=${identify.jdbcType}} </update> <update id="updateByPrimaryKeySelective" - parameterType="${entity.class}"> + parameterType="${entity.clazz}"> update ${table} <set> <#list columnList as column> @@ -110,6 +110,18 @@ <#if query.queryType=="contains"> and ${query.columnData.column} = '%<#noparse>#{</#noparse>query.${query.columnName}}%' </#if> + <#if query.queryType=="gt"> + and ${query.columnData.column} > <#noparse>#{</#noparse>query.${query.columnName}} + </#if> + <#if query.queryType=="gte"> + and ${query.columnData.column} >= <#noparse>#{</#noparse>query.${query.columnName}} + </#if> + <#if query.queryType=="lt"> + and ${query.columnData.column} <![CDATA[<]]> <#noparse>#{</#noparse>query.${query.columnName}} + </#if> + <#if query.queryType=="lte"> + and ${query.columnData.column} <![CDATA[<=]]> <#noparse>#{</#noparse>query.${query.columnName}} + </#if> </if> </#list> </sql> diff --git a/src/main/resources/generater/service/queryVO.ftl b/src/main/resources/generater/service/queryVO.ftl index 77045ac..f5a61fc 100644 --- a/src/main/resources/generater/service/queryVO.ftl +++ b/src/main/resources/generater/service/queryVO.ftl @@ -1,7 +1,6 @@ package ${packageName}; public class ${className} { - //鎼滅储鍏抽敭璇� private String kw; @@ -10,7 +9,7 @@ } private void setKw(String kw){ - this.kw=kw; + this.kw = kw; } diff --git a/src/test/java/com/generater/GeneratorTest.java b/src/test/java/com/generater/GeneratorTest.java index 33d9472..b08f64b 100644 --- a/src/test/java/com/generater/GeneratorTest.java +++ b/src/test/java/com/generater/GeneratorTest.java @@ -3,11 +3,13 @@ import org.springframework.data.annotation.Id; import org.yeshi.utils.FileUtil; import org.yeshi.utils.FreemarkerUtils; -import org.yeshi.utils.generater.SpringComponentGenerater; +import org.yeshi.utils.generater.GeneraterManager; +import org.yeshi.utils.generater.GeneraterUtil; import org.yeshi.utils.generater.entity.ClassInfo; import org.yeshi.utils.generater.entity.admin.AdminGeneraterInfo; import org.yeshi.utils.generater.mybatis.Column; import org.yeshi.utils.generater.mybatis.Table; +import org.yeshi.utils.generater.params.DaoGeneraterParams; import org.yeshi.utils.generater.vo.ExceptionVO; import org.yeshi.utils.generater.vo.dao.MongoDBDaoVO; import org.yeshi.utils.generater.vo.dao.MyBatisDBDaoVO; @@ -47,7 +49,7 @@ // // boolean match = Pattern.matches("^(https://){1}.*(\\.m3u8)$", "https://n1.szjal.cn/20210805/qnDXhXBa/index.m3u8123"); // System.out.println(match); - generateMybatisDao(); + generater(); } private static void generateAdminPage() throws Exception { @@ -69,7 +71,7 @@ Map<String, InputStream> map = new HashMap<>(); for (String st : template) { - map.put(st, SpringComponentGenerater.class.getClassLoader().getResourceAsStream("generater/" + st)); + map.put(st, GeneraterUtil.class.getClassLoader().getResourceAsStream("generater/" + st)); } String result = FreemarkerUtils.generateInputStream(new FormUpdateInfoVO.Builder().setAdminInfo(info).build(), "admin/update.ftl", map); FileUtil.saveAsFileByte(result.getBytes("UTF-8"), "C:\\Users\\Administrator\\Documents\\HBuilderProjects\\LayuiTest\\form.html"); @@ -81,7 +83,7 @@ ClassInfo dao = new ClassInfo("TestDao", "com.test.dao.TestDao"); ClassInfo query = new ClassInfo("TestQuery", "com.test.query.TestQuery"); ClassInfo service = new ClassInfo("TestService", "com.test.service.TestService"); - ServiceInfoVO serviceInfoVO = new ServiceInfoVO.Builder().setDao(dao).setEntity(Entity.class).setPackageName("com.test.service").setQuery(query).setService(service).build(); + ServiceInfoVO serviceInfoVO = new ServiceInfoVO.Builder().setEntity(Entity.class).setPackageName("com.test.service").setQuery(query).setService(service).build(); String result = FreemarkerUtils.generateInputStream(serviceInfoVO, GeneratorTest.class.getClassLoader().getResourceAsStream("generater\\service\\service.template")); System.out.println(result); } @@ -144,6 +146,11 @@ System.out.println(result); } + private static void generater() throws Exception { + GeneraterManager.getInstance().init("D:\\workspace\\server\\utils\\src\\test\\java", TestEntity.class); + GeneraterManager.getInstance().createWholeFunction(new DaoGeneraterParams("com.generater.temp.dao", null), null, null); + } + @Table("tb_test") public static class Entity { diff --git a/src/test/java/com/generater/TestEntity.java b/src/test/java/com/generater/TestEntity.java index efbe70f..eda83a7 100644 --- a/src/test/java/com/generater/TestEntity.java +++ b/src/test/java/com/generater/TestEntity.java @@ -1,6 +1,7 @@ package com.generater; import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; import org.yeshi.utils.generater.annotation.admin.AdminController; import org.yeshi.utils.generater.annotation.admin.DaoQueryCondition; import org.yeshi.utils.generater.annotation.admin.Show; @@ -10,12 +11,15 @@ import org.yeshi.utils.generater.annotation.admin.form.Text; import org.yeshi.utils.generater.entity.admin.FormVerifyType; +import java.util.Date; + /** * @author Administrator * @title: TestEntity * @description: 娴嬭瘯entity * @date 2021/9/23 14:22 */ +@Document(collection = "test") @AdminController(mapping = "admin/api/test", title = "娴嬭瘯", searchForm = TestEntity.SearchForm.class,jsonp = true) public class TestEntity { @Id @@ -44,6 +48,9 @@ @Show(order = 4, title = "鐪�") @Select(values = {"cq:閲嶅簡","js:姹熻嫃"}, title = "鐪�", apiParams = {"page:1", "pageSize:10", "id:\"test\""}) private String province; + + @DaoQueryCondition + private Date createTime; public String getId() { @@ -94,6 +101,13 @@ this.province = province; } + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } public class SearchForm { diff --git a/src/test/java/com/generater/TestEntity2.java b/src/test/java/com/generater/TestEntity2.java index 4b0b516..e99b2ea 100644 --- a/src/test/java/com/generater/TestEntity2.java +++ b/src/test/java/com/generater/TestEntity2.java @@ -13,6 +13,8 @@ import org.yeshi.utils.generater.mybatis.Column; import org.yeshi.utils.generater.mybatis.Table; +import java.util.Date; + /** * @author Administrator * @title: TestEntity @@ -50,6 +52,11 @@ @Show(order = 4, title = "鐪�") @Select(values = {"cq:閲嶅簡","js:姹熻嫃"}, title = "鐪�", apiParams = {"page:1", "pageSize:10", "id:\"test\""}) private String province; + + @DaoQueryCondition + private Date createTime; + + public String getId() { return id; @@ -99,6 +106,14 @@ this.province = province; } + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + public class SearchForm { @Text(title = "寮�濮嬫棩鏈�", inputType = Text.Type.DATE) -- Gitblit v1.8.0