From 664cc2fd39177fd3daa6d3988396c704d130882c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 12 十月 2021 19:06:55 +0800
Subject: [PATCH] 自动化代码生成优化

---
 src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java |   78 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 72 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/yeshi/utils/generater/vo/ServiceInfoVO.java b/src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java
similarity index 60%
rename from src/main/java/org/yeshi/utils/generater/vo/ServiceInfoVO.java
rename to src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java
index 67924f7..3e7610e 100644
--- a/src/main/java/org/yeshi/utils/generater/vo/ServiceInfoVO.java
+++ b/src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java
@@ -1,9 +1,11 @@
-package org.yeshi.utils.generater.vo;
+package org.yeshi.utils.generater.vo.service;
 
 import org.yeshi.utils.StringUtil;
 import org.yeshi.utils.generater.entity.BaseData;
 import org.yeshi.utils.generater.entity.ClassInfo;
+import org.yeshi.utils.generater.util.EntityUtil;
 
+import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -12,6 +14,7 @@
     private ClassInfo dao;
     //鏂规硶鍒楄〃
     private List<ServiceMetodInfoVO> metodInfoList;
+    private ClassInfo query;
 
 
     public static class Builder {
@@ -48,12 +51,62 @@
         }
 
 
+        private String getRemarksLine(String content) {
+            return "\t * " + content + "\n";
+        }
+
+        //鑾峰彇鏂规硶鐨勬敞閲�
+        private String getMethodRemarks(String type) {
+            StringBuilder builder = new StringBuilder();
+            builder.append("/**\n");
+            switch (type) {
+                case "list":
+                    builder.append(getRemarksLine("鑾峰彇鍒楄〃"));
+                    builder.append(getRemarksLine("@param " + StringUtil.firstCharToLower(query.getName())));
+                    builder.append(getRemarksLine("@param page"));
+                    builder.append(getRemarksLine("@param pageSize"));
+                    builder.append(getRemarksLine("@return"));
+                    break;
+                default:
+                    builder.append(getRemarksLine(""));
+            }
+
+            builder.append("\t */");
+            return builder.toString();
+        }
+
+        private void validParams() throws Exception {
+            if (entity == null) {
+                throw new Exception("entity涓嶈兘涓虹┖");
+            }
+            if (packageName == null) {
+                throw new Exception("packageName涓嶈兘涓虹┖");
+            }
+            if (dao == null) {
+                throw new Exception("dao涓嶈兘涓虹┖");
+            }
+            if (service == null) {
+                throw new Exception("service涓嶈兘涓虹┖");
+            }
+            if (query == null) {
+                throw new Exception("query涓嶈兘涓虹┖");
+            }
+
+        }
+
+
         public ServiceInfoVO build() throws Exception {
+            validParams();
+            Field identifyId = EntityUtil.getIdentifyId(entity);
+            if (identifyId == null) {
+                throw new Exception("灏氭湭鎵惧埌涓婚敭灞炴��");
+            }
             ServiceInfoVO serviceData = new ServiceInfoVO();
             serviceData.setDao(dao);
             serviceData.setService(service);
             serviceData.setEntity(new ClassInfo(entity.getSimpleName(), entity.getName()));
             serviceData.setPackageName(packageName);
+            serviceData.setQuery(query);
             //璁剧疆鎺ュ彛
             List<ServiceMetodInfoVO> metodInfoVOList = new ArrayList<>();
             /*******娣诲姞鏂规硶寮�濮�*******/
@@ -62,38 +115,45 @@
             //list鏂规硶
             params = new ArrayList<>();
             params.add(query.getName() + " " + StringUtil.firstCharToLower(query.getName()));
-            params.add("int page");
-            params.add("int pageSize");
+            params.add(" int page");
+            params.add(" int pageSize");
             metodInfo = new ServiceMetodInfoVO("public", String.format("List<%s>", serviceData.getEntity().getName()), "list", StringUtil.concat(params, ","));
+            metodInfo.setNote(getMethodRemarks("list"));
+
             metodInfoVOList.add(metodInfo);
             //count鏂规硶
             params = new ArrayList<>();
             params.add(query.getName() + " " + StringUtil.firstCharToLower(query.getName()));
             metodInfo = new ServiceMetodInfoVO("public", "long", "count", StringUtil.concat(params, ","));
+            metodInfo.setNote(getMethodRemarks("count"));
             metodInfoVOList.add(metodInfo);
             //get鏂规硶
             params = new ArrayList<>();
-            params.add("String id");
+            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"));
             metodInfoVOList.add(metodInfo);
             //update鏂规硶
             params = new ArrayList<>();
             params.add(serviceData.getEntity().getName() + " " + StringUtil.firstCharToLower(serviceData.getEntity().getName()));
             metodInfo = new ServiceMetodInfoVO("public", "void", "update", StringUtil.concat(params, ","));
+            metodInfo.setNote(getMethodRemarks("update"));
             metodInfoVOList.add(metodInfo);
             //delete鏂规硶
             params = new ArrayList<>();
-            params.add("List<String> idList");
+            params.add(String.format("List<%s> idList", identifyId.getType().getSimpleName()));
             metodInfo = new ServiceMetodInfoVO("public", String.format("void", serviceData.getEntity().getName()), "delete", StringUtil.concat(params, ","));
+            metodInfo.setNote(getMethodRemarks("delete"));
             metodInfoVOList.add(metodInfo);
 
             /*******娣诲姞鏂规硶缁撴潫*******/
-
+            serviceData.setMetodInfoList(metodInfoVOList);
 
             return serviceData;
         }
@@ -124,5 +184,11 @@
         this.metodInfoList = metodInfoList;
     }
 
+    public ClassInfo getQuery() {
+        return query;
+    }
 
+    public void setQuery(ClassInfo query) {
+        this.query = query;
+    }
 }

--
Gitblit v1.8.0