From 932777e9d6dc8dc5d9edbfc9117639ae02d96956 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 14 十月 2021 11:55:07 +0800 Subject: [PATCH] 自动化代码生成优化 --- src/main/java/org/yeshi/utils/generater/GeneraterManager.java | 55 +++++++--- src/main/java/org/yeshi/utils/generater/vo/admin/controller/AdminControllerInfoVO.java | 12 ++ src/main/resources/generater/service/service.template | 8 src/main/resources/generater/service/method/impl/mybatis/add.ftl | 6 src/main/resources/generater/service/method/impl/mongo/list.ftl | 8 + src/main/resources/generater/service/method/impl/mybatis/list.ftl | 8 + src/main/resources/generater/admin/list.ftl | 8 + src/main/java/org/yeshi/utils/generater/vo/service/ServiceMetodInfoVO.java | 10 ++ src/test/java/com/generater/GeneratorTest.java | 6 + src/main/java/org/yeshi/utils/generater/vo/service/ServiceImplInfoVO.java | 43 ++++++++ src/test/java/com/generater/TestEntity.java | 22 +++- src/main/resources/generater/service/method/impl/mongo/count.ftl | 8 + src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java | 38 +++++++ src/main/resources/generater/admin/adminController.template | 13 +- src/main/resources/generater/service/method/impl/mongo/add.ftl | 4 src/main/resources/generater/service/method/impl/mybatis/count.ftl | 8 + src/main/resources/generater/service/method/impl/mongo/updateSlective.ftl | 2 src/main/resources/generater/dao/mybatisDBDao.template | 4 src/main/resources/generater/service/serviceImpl.template | 17 +-- 19 files changed, 218 insertions(+), 62 deletions(-) diff --git a/src/main/java/org/yeshi/utils/generater/GeneraterManager.java b/src/main/java/org/yeshi/utils/generater/GeneraterManager.java index 30f5916..68e1912 100644 --- a/src/main/java/org/yeshi/utils/generater/GeneraterManager.java +++ b/src/main/java/org/yeshi/utils/generater/GeneraterManager.java @@ -21,6 +21,7 @@ import org.yeshi.utils.mybatis.BaseMapper; import java.io.File; +import java.io.IOException; import java.lang.annotation.Annotation; /** @@ -62,7 +63,25 @@ if (!f.exists()) { f.mkdirs(); } - return new File(f.getAbsolutePath(), packageName.replace(".", "/")).getAbsolutePath(); + f = new File(f.getAbsolutePath(), packageName.replace(".", "/")); + if (!f.exists()) { + f.mkdirs(); + } + return f.getAbsolutePath(); + } + + /** + * @return void + * @author hxh + * @description 淇濆瓨鏂囦欢 + * @date 10:06 2021/10/14 + * @param: data + * @param: path + **/ + private void saveFile(String data, String path) throws IOException { + if (!new File(path).exists()) + new File(path).createNewFile(); + FileUtil.saveAsFileByte(data.getBytes("UTF-8"), path); } public void createException(String packageName, Class base) { @@ -71,7 +90,7 @@ 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); + saveFile(result, path); } catch (Exception e) { e.printStackTrace(); } @@ -93,7 +112,7 @@ .setEntity(entity).build(); String result = GeneraterUtil.createMongoDBDao(vo); //淇濆瓨 - FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, daoName).getAbsolutePath()); + saveFile(result, new File(path, daoName + ".java").getAbsolutePath()); return vo; } @@ -115,11 +134,11 @@ .build(); String result = GeneraterUtil.createMybatisDBMapper(vo); //淇濆瓨 - FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, mapperName + ".java").getAbsolutePath()); + saveFile(result, 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()); + saveFile(result, new File(mapperDir, mapperName + ".xml").getAbsolutePath()); return vo; } @@ -135,7 +154,7 @@ 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()); + saveFile(result, new File(path, queryVO.getClassName() + ".java").getAbsolutePath()); return queryVO; } @@ -162,7 +181,7 @@ .setService(new ClassInfo(serviceName, interPackageName + "." + serviceName)) .build(); String result = GeneraterUtil.createService(vo); - FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, serviceName + ".java").getAbsolutePath()); + saveFile(result, new File(path, serviceName + ".java").getAbsolutePath()); //鍒涘缓service瀹炵幇 String serviceImplName = entity.getSimpleName() + "ServiceImpl"; @@ -176,7 +195,7 @@ .setDaoQuery(new ClassInfo("DaoQuery", dao.getClazz() + ".DaoQuery")) .build(); result = GeneraterUtil.createServiceImpl(implVO); - FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, serviceImplName + ".java").getAbsolutePath()); + saveFile(result, new File(path, serviceImplName + ".java").getAbsolutePath()); return vo; } @@ -194,28 +213,29 @@ 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(); + AdminControllerInfoVO vo = new AdminControllerInfoVO.Builder().setAdminInfo(generaterInfo).setPackageName(controllerPackage).setQueryVO(query).setService(service).build(); + String controllerName = vo.getControllerName(); //鐢熸垚controller String result = GeneraterUtil.createAdminController(vo); - FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, controllerName + ".java").getAbsolutePath()); + saveFile(result, new File(path, controllerName + ".java").getAbsolutePath()); result = GeneraterUtil.createAdminPageForList(generaterInfo); - FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(htmlDir, htmlNamePrefix + "_list.html").getAbsolutePath()); + saveFile(result, 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()); + saveFile(result, 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()); + saveFile(result, new File(htmlDir, htmlNamePrefix + "_update.html").getAbsolutePath()); } } @@ -276,8 +296,11 @@ serviceClass = serviceInfoVO.getService(); } - //鍒涘缓Admin妯″潡 - createAdmin(adminParams.getControllerPackage(), adminParams.getHtmlDir(), queryClass, serviceClass); + if (queryClass != null && serviceClass != null) { + if (adminParams != null) + //鍒涘缓Admin妯″潡 + createAdmin(adminParams.getControllerPackage(), adminParams.getHtmlDir(), queryClass, serviceClass); + } } /** diff --git a/src/main/java/org/yeshi/utils/generater/vo/admin/controller/AdminControllerInfoVO.java b/src/main/java/org/yeshi/utils/generater/vo/admin/controller/AdminControllerInfoVO.java index baf35ef..e55a0eb 100644 --- a/src/main/java/org/yeshi/utils/generater/vo/admin/controller/AdminControllerInfoVO.java +++ b/src/main/java/org/yeshi/utils/generater/vo/admin/controller/AdminControllerInfoVO.java @@ -22,6 +22,9 @@ //涓婚敭绫诲瀷 private String identifyIdType; + //鍚嶇О + private String controllerName; + public static class Builder { private AdminGeneraterInfo generaterInfo; @@ -75,6 +78,7 @@ vo.setQueryVO(query); vo.setService(service); vo.setIdentifyIdType(EntityUtil.getIdentifyId(generaterInfo.getEntity()).getType().getSimpleName()); + vo.setControllerName(vo.getEntity().getName()+"AdminController"); return vo; } @@ -140,4 +144,12 @@ public void setIdentifyIdType(String identifyIdType) { this.identifyIdType = identifyIdType; } + + public String getControllerName() { + return controllerName; + } + + public void setControllerName(String controllerName) { + this.controllerName = controllerName; + } } diff --git a/src/main/java/org/yeshi/utils/generater/vo/service/ServiceImplInfoVO.java b/src/main/java/org/yeshi/utils/generater/vo/service/ServiceImplInfoVO.java index 0920e4f..775ce18 100644 --- a/src/main/java/org/yeshi/utils/generater/vo/service/ServiceImplInfoVO.java +++ b/src/main/java/org/yeshi/utils/generater/vo/service/ServiceImplInfoVO.java @@ -1,16 +1,22 @@ package org.yeshi.utils.generater.vo.service; +import org.springframework.stereotype.Service; import org.yeshi.utils.FreemarkerUtils; import org.yeshi.utils.StringUtil; +import org.yeshi.utils.bean.BeanUtil; import org.yeshi.utils.generater.entity.BaseData; import org.yeshi.utils.generater.entity.ClassInfo; import org.yeshi.utils.generater.util.EntityUtil; +import javax.annotation.Resource; import java.lang.reflect.Field; import java.util.ArrayList; +import java.util.Date; import java.util.List; public class ServiceImplInfoVO extends BaseData { + + private List<String> importList; private ClassInfo service; private ClassInfo dao; //鏂规硶鍒楄〃 @@ -26,6 +32,12 @@ private ClassInfo service; private ClassInfo query; private ClassInfo daoQuery; + private ClassInfo exception; + + public Builder setException(ClassInfo exception) { + this.exception = exception; + return this; + } public Builder setEntity(Class entity) { this.entity = entity; @@ -119,7 +131,7 @@ serviceData.setPackageName(packageName); serviceData.setDaoQuery(daoQuery); serviceData.setQuery(query); - + List<String> importList = new ArrayList<>(); //璁剧疆鎺ュ彛 List<ServiceMetodInfoVO> metodInfoVOList = new ArrayList<>(); /*******娣诲姞鏂规硶寮�濮�*******/ @@ -149,6 +161,13 @@ params = new ArrayList<>(); params.add(serviceData.getEntity().getName() + " " + StringUtil.firstCharToLower(serviceData.getEntity().getName())); metodInfo = new ServiceMetodInfoVO("public", "void", "add", StringUtil.concat(params, ",")); + if (exception != null) { + metodInfo.setExceptions(exception.getName()); + importList.add(exception.getClazz()); + } else { + metodInfo.setExceptions("Exception"); + importList.add(Exception.class.getName()); + } metodInfo.setContent(FreemarkerUtils.generateInputStream(serviceData, getClass().getClassLoader().getResourceAsStream(getMethodContentTemplatePath("add")))); metodInfoVOList.add(metodInfo); //update鏂规硶 @@ -165,6 +184,20 @@ metodInfoVOList.add(metodInfo); /*******娣诲姞鏂规硶缁撴潫*******/ + + + importList.add(Resource.class.getName()); + importList.add(Service.class.getName()); + importList.add(Date.class.getName()); + importList.add(BeanUtil.class.getName()); + importList.add(List.class.getName()); + importList.add(serviceData.getDao().getClazz()); + importList.add(entity.getName()); + importList.add(service.getClazz()); + importList.add(query.getClazz()); + importList.add(daoQuery.getClazz()); + + serviceData.setImportList(importList); serviceData.setMetodInfoList(metodInfoVOList); return serviceData; } @@ -210,5 +243,13 @@ public void setQuery(ClassInfo query) { this.query = query; } + + public List<String> getImportList() { + return importList; + } + + public void setImportList(List<String> importList) { + this.importList = importList; + } } 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 39c3b29..3374de1 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 @@ -1,15 +1,20 @@ package org.yeshi.utils.generater.vo.service; +import org.springframework.stereotype.Service; import org.yeshi.utils.StringUtil; +import org.yeshi.utils.bean.BeanUtil; import org.yeshi.utils.generater.entity.BaseData; import org.yeshi.utils.generater.entity.ClassInfo; import org.yeshi.utils.generater.util.EntityUtil; +import javax.annotation.Resource; import java.lang.reflect.Field; import java.util.ArrayList; +import java.util.Date; import java.util.List; public class ServiceInfoVO extends BaseData { + private List<String> importList; private ClassInfo service; //鏂规硶鍒楄〃 private List<ServiceMetodInfoVO> metodInfoList; @@ -21,6 +26,7 @@ private String packageName; private ClassInfo service; private ClassInfo query; + private ClassInfo exception; public Builder setEntity(Class entity) { @@ -43,6 +49,10 @@ return this; } + public Builder setException(ClassInfo exception) { + this.exception = exception; + return this; + } private String getRemarksLine(String content) { return "\t * " + content + "\n"; @@ -98,6 +108,7 @@ serviceData.setQuery(query); //璁剧疆鎺ュ彛 List<ServiceMetodInfoVO> metodInfoVOList = new ArrayList<>(); + List<String> importList = new ArrayList<>(); /*******娣诲姞鏂规硶寮�濮�*******/ List<String> params = null; ServiceMetodInfoVO metodInfo = null; @@ -121,12 +132,20 @@ params.add(identifyId.getType().getSimpleName() + " id"); metodInfo = new ServiceMetodInfoVO("public", serviceData.getEntity().getName(), "get", StringUtil.concat(params, ",")); metodInfo.setNote(getMethodRemarks("get")); + metodInfoVOList.add(metodInfo); //add鏂规硶 params = new ArrayList<>(); params.add(serviceData.getEntity().getName() + " " + StringUtil.firstCharToLower(serviceData.getEntity().getName())); metodInfo = new ServiceMetodInfoVO("public", "void", "add", StringUtil.concat(params, ",")); metodInfo.setNote(getMethodRemarks("add")); + if (exception != null) { + metodInfo.setExceptions(exception.getName()); + importList.add(exception.getClazz()); + } else { + metodInfo.setExceptions("Exception"); + importList.add(Exception.class.getName()); + } metodInfoVOList.add(metodInfo); //update鏂规硶 params = new ArrayList<>(); @@ -143,6 +162,17 @@ /*******娣诲姞鏂规硶缁撴潫*******/ serviceData.setMetodInfoList(metodInfoVOList); + + + importList.add(Resource.class.getName()); + importList.add(Date.class.getName()); + importList.add(BeanUtil.class.getName()); + importList.add(List.class.getName()); + importList.add(entity.getName()); + importList.add(service.getClazz()); + importList.add(query.getClazz()); + + serviceData.setImportList(importList); return serviceData; } @@ -172,4 +202,12 @@ public void setQuery(ClassInfo query) { this.query = query; } + + public List<String> getImportList() { + return importList; + } + + public void setImportList(List<String> importList) { + this.importList = importList; + } } diff --git a/src/main/java/org/yeshi/utils/generater/vo/service/ServiceMetodInfoVO.java b/src/main/java/org/yeshi/utils/generater/vo/service/ServiceMetodInfoVO.java index b34a46d..7f5bb7c 100644 --- a/src/main/java/org/yeshi/utils/generater/vo/service/ServiceMetodInfoVO.java +++ b/src/main/java/org/yeshi/utils/generater/vo/service/ServiceMetodInfoVO.java @@ -20,6 +20,8 @@ //鏂规硶鍐呭 private String content; + private String exceptions; + public ServiceMetodInfoVO(String visiteAccess, String returnType, String name, String params) { this.visiteAccess = visiteAccess; this.returnType = returnType; @@ -74,4 +76,12 @@ public void setContent(String content) { this.content = content; } + + public String getExceptions() { + return exceptions; + } + + public void setExceptions(String exceptions) { + this.exceptions = exceptions; + } } diff --git a/src/main/resources/generater/admin/adminController.template b/src/main/resources/generater/admin/adminController.template index 6ac0695..2fbfc9c 100644 --- a/src/main/resources/generater/admin/adminController.template +++ b/src/main/resources/generater/admin/adminController.template @@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.TimeUtil; +import com.google.gson.reflect.TypeToken; import javax.annotation.Resource; import javax.servlet.http.HttpSession; @@ -20,7 +21,7 @@ @Controller @RequestMapping("${mapping}") -public class AdminAppController { +public class ${controllerName} { <#assign serviceObjName="${service.name?uncap_first}"> <#assign entityObjName="${entity.name?uncap_first}"> @@ -58,8 +59,8 @@ @ResponseBody @RequestMapping("delete") public String delete(String ids, String callback) { - Type type = new TypeToken<List<${identifyIdType}>>(){}.get(); - List<${identifyIdType}> idList=new Gson().from(ids,type); + Type type = new TypeToken<List<${identifyIdType}>>(){}.getType(); + List<${identifyIdType}> idList=new Gson().fromJson(ids,type); ${serviceObjName}.delete(idList); return loadPrint(callback, JsonUtil.loadTrueResult("")); } @@ -71,7 +72,7 @@ ${serviceObjName}.add(bean); return loadPrint(callback, JsonUtil.loadTrueResult("")); }catch(Exception e){ - return loadPrint(callback, JsonUtil.loadFalseResult(e.getMessage)); + return loadPrint(callback, JsonUtil.loadFalseResult(e.getMessage())); } } @@ -94,9 +95,9 @@ return loadPrint(callback, JsonUtil.loadFalseResult("ID涓嶈兘涓虹┖")); } try{ - ${serviceObjName}.updateSelective(bean); + ${serviceObjName}.update(bean); }catch(Exception e){ - return loadPrint(callback,JsonUtil.loadFalseResult(e.getMessage)); + return loadPrint(callback,JsonUtil.loadFalseResult(e.getMessage())); } return loadPrint(callback,JsonUtil.loadTrueResult("")); } diff --git a/src/main/resources/generater/admin/list.ftl b/src/main/resources/generater/admin/list.ftl index 1d4e22d..0e55471 100644 --- a/src/main/resources/generater/admin/list.ftl +++ b/src/main/resources/generater/admin/list.ftl @@ -41,7 +41,7 @@ <div class="layui-card"> <div class="layui-card-body"> <form class="layui-form layui-col-space5"> - <#list rowsList as value> + <#list searchFormRows as value> <div class="layui-inline layui-show-xs-block"> <#switch value.type> <#case "CheckBox"><#include "/admin/form/checkBox.ftl" ><#break> @@ -181,8 +181,8 @@ form = layui.form, table = layui.table; //娓叉煋鏃ユ湡杈撳叆妗� - <#list searchForm as row > - <#if row.type??&&row.type=="Text"&&(row.params.type=="date")> + <#list searchFormRows as row > + <#if (row.type=="Text" && row.params.inputType=="DATE")> laydate.render({ elem: "intput[name=${row.key}]" //鎸囧畾鍏冪礌 }); @@ -295,6 +295,7 @@ layer.msg('宸插垹闄�!', {icon: 1, time: 1000}); }); }, + <#if deleteApi??> deleteList: function (ids, success) { ksapp.post("${deleteApi}", {ids: JSON.stringify(ids)}, function (e) { if (e.code == 0) { @@ -305,6 +306,7 @@ }, function (e) { }); }, + </#if> search: function (params) { //鏁版嵁閲嶈浇 tableIns.reload({ diff --git a/src/main/resources/generater/dao/mybatisDBDao.template b/src/main/resources/generater/dao/mybatisDBDao.template index 3073e91..2b45312 100644 --- a/src/main/resources/generater/dao/mybatisDBDao.template +++ b/src/main/resources/generater/dao/mybatisDBDao.template @@ -1,12 +1,14 @@ package ${packageName}; +import org.springframework.stereotype.Repository; import java.util.List; - +import java.util.Date; import org.apache.ibatis.annotations.Param; import ${baseMapper.clazz}; import ${entity.clazz}; +@Repository public interface ${mapper.name} extends ${baseMapper.name}<${entity.name}> { ${entity.name} selectByPrimaryKeyForUpdate(@Param("id") ${identify.type} id); diff --git a/src/main/resources/generater/service/method/impl/mongo/add.ftl b/src/main/resources/generater/service/method/impl/mongo/add.ftl index 36ea557..b33986a 100644 --- a/src/main/resources/generater/service/method/impl/mongo/add.ftl +++ b/src/main/resources/generater/service/method/impl/mongo/add.ftl @@ -3,11 +3,11 @@ <#assign entityObjName="${entity.name?uncap_first}" > //鏌ヨ涓婚敭ID鏄惁瀛樺湪 if(${daoObjName}.get(${entityObjName}.getId())!=null){ - throw Exception("宸插瓨鍦�"); + throw new Exception("宸插瓨鍦�"); } if(${entityObjName}.getCreateTime()==null){ ${entityObjName}.setCreateTime(new Date()); } //淇濆瓨 - ${daoObjName}.save(bean); \ No newline at end of file + ${daoObjName}.save(${entityObjName}); \ No newline at end of file diff --git a/src/main/resources/generater/service/method/impl/mongo/count.ftl b/src/main/resources/generater/service/method/impl/mongo/count.ftl index 21de435..f53a99d 100644 --- a/src/main/resources/generater/service/method/impl/mongo/count.ftl +++ b/src/main/resources/generater/service/method/impl/mongo/count.ftl @@ -1,5 +1,9 @@ <#assign daoObjName="${dao.name?uncap_first}" > <#assign queryObjName="${query.name?uncap_first}" > ${daoQuery.name} daoQuery = new ${daoQuery.name}(); - BeanUtil.copyProperties(${queryObjName}, daoQuery); - ${daoObjName}.count(daoQuery); \ No newline at end of file + try { + BeanUtil.copyProperties(${queryObjName}, daoQuery); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return ${daoObjName}.count(daoQuery); \ No newline at end of file diff --git a/src/main/resources/generater/service/method/impl/mongo/list.ftl b/src/main/resources/generater/service/method/impl/mongo/list.ftl index b9c385d..9f238cb 100644 --- a/src/main/resources/generater/service/method/impl/mongo/list.ftl +++ b/src/main/resources/generater/service/method/impl/mongo/list.ftl @@ -1,7 +1,11 @@ <#assign daoObjName="${dao.name?uncap_first}" > <#assign queryObjName="${query.name?uncap_first}" > ${daoQuery.name} daoQuery = new ${daoQuery.name}(); - BeanUtil.copyProperties(${queryObjName}, daoQuery); + try { + BeanUtil.copyProperties(${queryObjName}, daoQuery); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } daoQuery.start=(page-1)*pageSize; daoQuery.count=pageSize; - ${daoObjName}.list(daoQuery); \ No newline at end of file + return ${daoObjName}.list(daoQuery); \ No newline at end of file diff --git a/src/main/resources/generater/service/method/impl/mongo/updateSlective.ftl b/src/main/resources/generater/service/method/impl/mongo/updateSlective.ftl index 8724dbf..d32c52b 100644 --- a/src/main/resources/generater/service/method/impl/mongo/updateSlective.ftl +++ b/src/main/resources/generater/service/method/impl/mongo/updateSlective.ftl @@ -4,4 +4,4 @@ ${entityObjName}.setUpdateTime(new Date()); } //鏇存柊 - ${daoObjName}.updateSelective(${entityObjName}); + ${daoObjName}.updateSelective(${entityObjName}); \ No newline at end of file diff --git a/src/main/resources/generater/service/method/impl/mybatis/add.ftl b/src/main/resources/generater/service/method/impl/mybatis/add.ftl index 23ee748..d658eb4 100644 --- a/src/main/resources/generater/service/method/impl/mybatis/add.ftl +++ b/src/main/resources/generater/service/method/impl/mybatis/add.ftl @@ -1,7 +1,7 @@ <#assign daoObjName="${dao.name?uncap_first}" > <#assign entityObjName="${entity.name?uncap_first}" > - if(bean.getCreateTime()==null){ - bean.setCreateTime(new Date()); + if(${entityObjName}.getCreateTime()==null){ + ${entityObjName}.setCreateTime(new Date()); } //淇濆瓨 - ${daoObjName}.insertSelective(bean); \ No newline at end of file + ${daoObjName}.insertSelective(${entityObjName}); \ No newline at end of file diff --git a/src/main/resources/generater/service/method/impl/mybatis/count.ftl b/src/main/resources/generater/service/method/impl/mybatis/count.ftl index 21de435..f53a99d 100644 --- a/src/main/resources/generater/service/method/impl/mybatis/count.ftl +++ b/src/main/resources/generater/service/method/impl/mybatis/count.ftl @@ -1,5 +1,9 @@ <#assign daoObjName="${dao.name?uncap_first}" > <#assign queryObjName="${query.name?uncap_first}" > ${daoQuery.name} daoQuery = new ${daoQuery.name}(); - BeanUtil.copyProperties(${queryObjName}, daoQuery); - ${daoObjName}.count(daoQuery); \ No newline at end of file + try { + BeanUtil.copyProperties(${queryObjName}, daoQuery); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return ${daoObjName}.count(daoQuery); \ No newline at end of file diff --git a/src/main/resources/generater/service/method/impl/mybatis/list.ftl b/src/main/resources/generater/service/method/impl/mybatis/list.ftl index b9c385d..9f238cb 100644 --- a/src/main/resources/generater/service/method/impl/mybatis/list.ftl +++ b/src/main/resources/generater/service/method/impl/mybatis/list.ftl @@ -1,7 +1,11 @@ <#assign daoObjName="${dao.name?uncap_first}" > <#assign queryObjName="${query.name?uncap_first}" > ${daoQuery.name} daoQuery = new ${daoQuery.name}(); - BeanUtil.copyProperties(${queryObjName}, daoQuery); + try { + BeanUtil.copyProperties(${queryObjName}, daoQuery); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } daoQuery.start=(page-1)*pageSize; daoQuery.count=pageSize; - ${daoObjName}.list(daoQuery); \ No newline at end of file + return ${daoObjName}.list(daoQuery); \ No newline at end of file diff --git a/src/main/resources/generater/service/service.template b/src/main/resources/generater/service/service.template index a63688c..5be3047 100644 --- a/src/main/resources/generater/service/service.template +++ b/src/main/resources/generater/service/service.template @@ -1,15 +1,15 @@ package ${packageName}; -import ${service.clazz}; -import ${query.clazz}; -import ${entity.clazz}; +<#list importList as import> +import ${import}; +</#list> public interface ${service.name} { <#list metodInfoList as method> ${method.note} - ${method.visiteAccess} ${method.returnType} ${method.name}(${method.params}); + ${method.visiteAccess} ${method.returnType} ${method.name}(${method.params}) <#if method.exceptions??> throws ${method.exceptions}</#if>; </#list> diff --git a/src/main/resources/generater/service/serviceImpl.template b/src/main/resources/generater/service/serviceImpl.template index 52e6a13..74e8321 100644 --- a/src/main/resources/generater/service/serviceImpl.template +++ b/src/main/resources/generater/service/serviceImpl.template @@ -1,14 +1,11 @@ package ${packageName}; -import ${entity.clazz}; -import ${dao.clazz}; -import ${service.clazz}; -import ${query.clazz}; -import ${daoQuery.clazz}; -import javax.annotation.Resource; -import org.springframework.stereotype.Service; -import java.util.Date; -import org.yeshi.utils.bean.BeanUtil; +<#list importList as import> +import ${import}; +</#list> + +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; @Service public class ${service.name}Impl implements ${service.name}{ @@ -17,7 +14,7 @@ private ${dao.name} ${dao.name?uncap_first}; <#list metodInfoList as method> - ${method.visiteAccess} ${method.returnType} ${method.name}(${method.params}){ + ${method.visiteAccess} ${method.returnType} ${method.name}(${method.params}) <#if method.exceptions??> throws ${method.exceptions}</#if> { ${method.content} } diff --git a/src/test/java/com/generater/GeneratorTest.java b/src/test/java/com/generater/GeneratorTest.java index b08f64b..c157dcf 100644 --- a/src/test/java/com/generater/GeneratorTest.java +++ b/src/test/java/com/generater/GeneratorTest.java @@ -9,7 +9,9 @@ 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.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.dao.MongoDBDaoVO; import org.yeshi.utils.generater.vo.dao.MyBatisDBDaoVO; @@ -148,7 +150,9 @@ 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); + AdminGeneraterParams adminGeneraterParams=new AdminGeneraterParams("com.generater.temp.controller","D:\\workspace\\server\\utils\\src\\test"); + + GeneraterManager.getInstance().createWholeFunction(new DaoGeneraterParams("com.generater.temp.dao", "D:\\workspace\\server\\utils\\src\\test"), new ServiceGeneraterParams("com.generater.temp.query","com.generater.temp.service","com.generater.temp.service.impl"), adminGeneraterParams); } diff --git a/src/test/java/com/generater/TestEntity.java b/src/test/java/com/generater/TestEntity.java index eda83a7..05fcef3 100644 --- a/src/test/java/com/generater/TestEntity.java +++ b/src/test/java/com/generater/TestEntity.java @@ -33,12 +33,12 @@ @DaoQueryCondition @Show(order = 1, title = "绫诲瀷") @Select(values = {"1:鐢�", "2:濂�"}, title = "绫诲瀷") - private int type; + private Integer type; @DaoQueryCondition @Show(order = 2, title = "鎬у埆") @RadioGroup(values = {"1:鐢�", "2:濂�"}, title = "鎬у埆") - private int sex; + private Integer sex; @Show(order = 3, title = "澶村儚", showType = Show.ShowType.IMG, imgWidth = 50, imgHeight = 50) @Img(height = 50, title = "澶村儚", uploadApi = "/admin/uploadimg", uploadApiParams = {"id:123123","type:2"}) @@ -51,6 +51,8 @@ @DaoQueryCondition private Date createTime; + + private Date updateTime; public String getId() { @@ -69,19 +71,19 @@ this.nickName = nickName; } - public int getType() { + public Integer getType() { return type; } - public void setType(int type) { + public void setType(Integer type) { this.type = type; } - public int getSex() { + public Integer getSex() { return sex; } - public void setSex(int sex) { + public void setSex(Integer sex) { this.sex = sex; } @@ -109,6 +111,14 @@ this.createTime = createTime; } + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + public class SearchForm { @Text(title = "寮�濮嬫棩鏈�", inputType = Text.Type.DATE) -- Gitblit v1.8.0