From 29004d11782d81efdd438edf47277c0f3002e9f3 Mon Sep 17 00:00:00 2001 From: "lvchao@yunlizhihui.com" <#.dnXF3P4z2!7ff> Date: Wed, 10 Nov 2021 14:24:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A9=E5=B1=95Execute=E7=B1=BB=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9Eexecute(DatabaseQuery=20query)=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=9B=E7=94=A8=E6=88=B7=E9=80=9A=E8=BF=87=E7=BB=A7?= =?UTF-8?q?=E6=89=BFAbstractDatabaseQuery=E7=B1=BB=EF=BC=8C=E5=8F=AF?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=95=B0=E6=8D=AE=E6=9D=A5=E6=BA=90?= =?UTF-8?q?=EF=BC=8C=E5=AE=9E=E7=8E=B0=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/execute/DocumentationExecute.java | 20 +++++++++++++-- .../smallbun/screw/core/execute/Execute.java | 11 ++++++-- .../screw/core/process/DataModelProcess.java | 25 +++++++++++++++---- .../smallbun/screw/core/process/Process.java | 16 +++++++++--- .../extension/pojo/execute/PojoExecute.java | 6 +++++ 5 files changed, 65 insertions(+), 13 deletions(-) diff --git a/screw-core/src/main/java/cn/smallbun/screw/core/execute/DocumentationExecute.java b/screw-core/src/main/java/cn/smallbun/screw/core/execute/DocumentationExecute.java index 1e5fc88..417dc13 100644 --- a/screw-core/src/main/java/cn/smallbun/screw/core/execute/DocumentationExecute.java +++ b/screw-core/src/main/java/cn/smallbun/screw/core/execute/DocumentationExecute.java @@ -23,13 +23,13 @@ import cn.smallbun.screw.core.engine.TemplateEngine; import cn.smallbun.screw.core.exception.BuilderException; import cn.smallbun.screw.core.metadata.model.DataModel; import cn.smallbun.screw.core.process.DataModelProcess; +import cn.smallbun.screw.core.query.DatabaseQuery; import cn.smallbun.screw.core.util.ExceptionUtils; /** * 文档生成 * - * @author SanLi - * Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/4/1 22:51 + * @author SanLi Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/4/1 22:51 */ public class DocumentationExecute extends AbstractExecute { @@ -42,6 +42,22 @@ public class DocumentationExecute extends AbstractExecute { * * @throws BuilderException BuilderException */ + @Override + public void execute(DatabaseQuery query) throws BuilderException { + try { + long start = System.currentTimeMillis(); + //处理数据 + DataModel dataModel = new DataModelProcess(config).process(query); + //产生文档 + TemplateEngine produce = new EngineFactory(config.getEngineConfig()).newInstance(); + produce.produce(dataModel, getDocName(dataModel.getDatabase())); + logger.debug("database document generation complete time consuming:{}ms", + System.currentTimeMillis() - start); + } catch (Exception e) { + throw ExceptionUtils.mpe(e); + } + } + @Override public void execute() throws BuilderException { try { diff --git a/screw-core/src/main/java/cn/smallbun/screw/core/execute/Execute.java b/screw-core/src/main/java/cn/smallbun/screw/core/execute/Execute.java index e46bff2..d292efe 100644 --- a/screw-core/src/main/java/cn/smallbun/screw/core/execute/Execute.java +++ b/screw-core/src/main/java/cn/smallbun/screw/core/execute/Execute.java @@ -17,15 +17,22 @@ */ package cn.smallbun.screw.core.execute; +import cn.smallbun.screw.core.query.DatabaseQuery; + /** * 执行文档生成 * - * @author SanLi - * Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/4/1 22:38 + * @author SanLi Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/4/1 22:38 */ public interface Execute { /** * 执行生成 */ void execute(); + + /** + * 执行生成 + * @param query 自定义查询器 + */ + void execute(DatabaseQuery query); } diff --git a/screw-core/src/main/java/cn/smallbun/screw/core/process/DataModelProcess.java b/screw-core/src/main/java/cn/smallbun/screw/core/process/DataModelProcess.java index 1d95c08..3b3bade 100644 --- a/screw-core/src/main/java/cn/smallbun/screw/core/process/DataModelProcess.java +++ b/screw-core/src/main/java/cn/smallbun/screw/core/process/DataModelProcess.java @@ -17,6 +17,10 @@ */ package cn.smallbun.screw.core.process; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + import cn.smallbun.screw.core.Configuration; import cn.smallbun.screw.core.metadata.Column; import cn.smallbun.screw.core.metadata.Database; @@ -29,11 +33,10 @@ import cn.smallbun.screw.core.query.DatabaseQuery; import cn.smallbun.screw.core.query.DatabaseQueryFactory; import cn.smallbun.screw.core.util.StringUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -import static cn.smallbun.screw.core.constant.DefaultConstants.*; +import static cn.smallbun.screw.core.constant.DefaultConstants.N; +import static cn.smallbun.screw.core.constant.DefaultConstants.Y; +import static cn.smallbun.screw.core.constant.DefaultConstants.ZERO; +import static cn.smallbun.screw.core.constant.DefaultConstants.ZERO_DECIMAL_DIGITS; /** * 数据模型处理 @@ -61,6 +64,18 @@ public class DataModelProcess extends AbstractProcess { public DataModel process() { //获取query对象 DatabaseQuery query = new DatabaseQueryFactory(config.getDataSource()).newInstance(); + + return this.process(query); + } + + /** + * 处理 + * + * @return {@link DataModel} + */ + @Override + public DataModel process(DatabaseQuery query) { + //获取query对象 DataModel model = new DataModel(); //Title model.setTitle(config.getTitle()); diff --git a/screw-core/src/main/java/cn/smallbun/screw/core/process/Process.java b/screw-core/src/main/java/cn/smallbun/screw/core/process/Process.java index f98aac9..6d0a735 100644 --- a/screw-core/src/main/java/cn/smallbun/screw/core/process/Process.java +++ b/screw-core/src/main/java/cn/smallbun/screw/core/process/Process.java @@ -17,15 +17,15 @@ */ package cn.smallbun.screw.core.process; -import cn.smallbun.screw.core.metadata.model.DataModel; - import java.io.Serializable; +import cn.smallbun.screw.core.metadata.model.DataModel; +import cn.smallbun.screw.core.query.DatabaseQuery; + /** * 构建 * - * @author SanLi - * Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/3/22 21:08 + * @author SanLi Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/3/22 21:08 */ public interface Process extends Serializable { /** @@ -35,4 +35,12 @@ public interface Process extends Serializable { * @throws Exception Exception */ DataModel process() throws Exception; + + /** + * 自定义处理 + * @param query 自定义查询器 + * @return {@link DataModel} + * @throws Exception Exception + */ + DataModel process(DatabaseQuery query) throws Exception; } diff --git a/screw-extension/src/main/java/cn/smallbun/screw/extension/pojo/execute/PojoExecute.java b/screw-extension/src/main/java/cn/smallbun/screw/extension/pojo/execute/PojoExecute.java index 10a22c9..bc55adf 100644 --- a/screw-extension/src/main/java/cn/smallbun/screw/extension/pojo/execute/PojoExecute.java +++ b/screw-extension/src/main/java/cn/smallbun/screw/extension/pojo/execute/PojoExecute.java @@ -19,6 +19,7 @@ package cn.smallbun.screw.extension.pojo.execute; import cn.smallbun.screw.core.exception.ScrewException; import cn.smallbun.screw.core.execute.Execute; +import cn.smallbun.screw.core.query.DatabaseQuery; import cn.smallbun.screw.core.util.ExceptionUtils; import cn.smallbun.screw.core.util.StringUtils; import cn.smallbun.screw.extension.pojo.PojoConfiguration; @@ -89,6 +90,11 @@ public class PojoExecute implements Execute { } } + @Override + public void execute(DatabaseQuery query) { + + } + private String validate(PojoConfiguration config) { StringBuilder error = new StringBuilder(); String separator = System.lineSeparator();