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