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