From d3eecf89f2261ff6c508b8fa93853afaaea0a85e Mon Sep 17 00:00:00 2001 From: jiangw <39796328+b6688c@users.noreply.github.com> Date: Fri, 23 Feb 2024 15:35:04 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E9=A2=86=E5=9F=9F?= =?UTF-8?q?=E5=88=87=E9=9D=A2=E5=91=BD=E5=90=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/uno/interceptor/TenantInterceptor.java | 16 ++++- .../turbo/common/web/TurboCrudController.java | 12 ---- .../controller/BoDomainController.java | 4 +- .../developer/service/IBoDomainService.java | 60 +++++++++---------- .../service/impl/BoDomainServiceImpl.java | 26 ++++---- src/main/resources/application.yml | 4 ++ 6 files changed, 64 insertions(+), 58 deletions(-) diff --git a/src/main/java/cc/allio/turbo/common/db/uno/interceptor/TenantInterceptor.java b/src/main/java/cc/allio/turbo/common/db/uno/interceptor/TenantInterceptor.java index 1b97446..9467b7d 100644 --- a/src/main/java/cc/allio/turbo/common/db/uno/interceptor/TenantInterceptor.java +++ b/src/main/java/cc/allio/turbo/common/db/uno/interceptor/TenantInterceptor.java @@ -3,6 +3,7 @@ import cc.allio.uno.core.function.lambda.MethodBiConsumer; import cc.allio.uno.data.orm.dsl.Operator; import cc.allio.uno.data.orm.dsl.Table; +import cc.allio.uno.data.orm.dsl.dml.InsertOperator; import cc.allio.uno.data.orm.dsl.dml.QueryOperator; import cc.allio.uno.data.orm.dsl.dml.UpdateOperator; import cc.allio.uno.data.orm.executor.CommandExecutor; @@ -32,6 +33,19 @@ public class TenantInterceptor implements Interceptor { public void onQueryBefore(CommandExecutor commandExecutor, Operator operator) { if (operator instanceof QueryOperator queryOperator) { Table table = queryOperator.getTable(); + allowTenant(table, queryOperator::eq); + } + } + + /** + * @param commandExecutor commandExecutor + * @param operator operator + */ + @Override + public void onSaveBefore(CommandExecutor commandExecutor, Operator operator) { + if (operator instanceof InsertOperator insertOperator) { + Table table = insertOperator.getTable(); + allowTenant(table, insertOperator::strictFill); } } @@ -43,7 +57,7 @@ public void onQueryBefore(CommandExecutor commandExecutor, Operator operator) public void onUpdateBefore(CommandExecutor commandExecutor, Operator operator) { if (operator instanceof UpdateOperator updateOperator) { Table table = updateOperator.getTable(); - allowTenant(table, updateOperator::eq); + allowTenant(table, updateOperator::strictFill); } } diff --git a/src/main/java/cc/allio/turbo/common/web/TurboCrudController.java b/src/main/java/cc/allio/turbo/common/web/TurboCrudController.java index 434a56c..ab0ad54 100644 --- a/src/main/java/cc/allio/turbo/common/web/TurboCrudController.java +++ b/src/main/java/cc/allio/turbo/common/web/TurboCrudController.java @@ -166,18 +166,6 @@ public void export(@RequestBody QueryParam params, HttpServletResponse respon interceptor.onExportAfter(service, response, ds); } - /** - * 导出 - */ - @Operation(summary = "导出") - @PostMapping("/export") - public void export(HttpServletResponse response, @RequestBody QueryParam params) { - Class clazz = getEntityType(); - QueryWrapper queryWrapper = Conditions.entityQuery(params, clazz); - List list = service.list(queryWrapper); - ExcelUtil.export(response, list, clazz); - } - /** * 导入 */ diff --git a/src/main/java/cc/allio/turbo/modules/developer/controller/BoDomainController.java b/src/main/java/cc/allio/turbo/modules/developer/controller/BoDomainController.java index 1d4edf3..cec1892 100644 --- a/src/main/java/cc/allio/turbo/modules/developer/controller/BoDomainController.java +++ b/src/main/java/cc/allio/turbo/modules/developer/controller/BoDomainController.java @@ -84,7 +84,7 @@ public R details(@PathVariable("boId") Long boId, @PathVariable("i public R> list(@PathVariable("boId") Long boId, @RequestBody QueryParam params) throws BizException { QueryWrapper wrapper = Wrappers.query(); domainService.getBoRepositoryOrThrow(boId) - .inspectOn("list", context -> + .aspectOn("list", context -> Optionals.withBoth(context.getTypeFirst(QueryWrapper.class), context.getTypeFirst(BoSchema.class)) .ifPresent(pair -> { QueryWrapper queryWrapper = pair.getFirst(); @@ -101,7 +101,7 @@ public R> list(@PathVariable("boId") Long boId, @RequestBody public R> page(@PathVariable("boId") Long boId, @RequestBody QueryParam params) throws BizException { QueryWrapper wrapper = Wrappers.query(); domainService.getBoRepositoryOrThrow(boId) - .inspectOn("page", context -> + .aspectOn("page", context -> Optionals.withBoth(context.getTypeFirst(QueryWrapper.class), context.getTypeFirst(BoSchema.class)) .ifPresent(pair -> { QueryWrapper queryWrapper = pair.getFirst(); diff --git a/src/main/java/cc/allio/turbo/modules/developer/service/IBoDomainService.java b/src/main/java/cc/allio/turbo/modules/developer/service/IBoDomainService.java index 34b107a..4aece3e 100644 --- a/src/main/java/cc/allio/turbo/modules/developer/service/IBoDomainService.java +++ b/src/main/java/cc/allio/turbo/modules/developer/service/IBoDomainService.java @@ -580,75 +580,75 @@ default > List tree(Long boId, Wrapper< interface IDomainCrudTreeRepositoryService extends ITurboCrudTreeRepositoryService { /** - * @see #inspectOn(String, ThrowingMethodConsumer) + * @see #aspectOn(String, ThrowingMethodConsumer) */ - default void inspectOn(ThrowingMethodConsumer domainMethod, ThrowingMethodConsumer callback) { + default void aspectOn(ThrowingMethodConsumer domainMethod, ThrowingMethodConsumer callback) { String domainMethodName = domainMethod.getMethodName(); - inspectOn(domainMethodName, callback); + aspectOn(domainMethodName, callback); } /** - * @see #inspectOn(String, ThrowingMethodConsumer) + * @see #aspectOn(String, ThrowingMethodConsumer) */ - default void inspectOn(ThrowingMethodSupplier domainMethod, ThrowingMethodConsumer callback) { + default void aspectOn(ThrowingMethodSupplier domainMethod, ThrowingMethodConsumer callback) { String domainMethodName = domainMethod.getMethodName(); - inspectOn(domainMethodName, callback); + aspectOn(domainMethodName, callback); } /** - * @see #inspectOn(String, ThrowingMethodConsumer) + * @see #aspectOn(String, ThrowingMethodConsumer) */ - default void inspectOn(ThrowingMethodFunction domainMethod, ThrowingMethodConsumer callback) { + default void aspectOn(ThrowingMethodFunction domainMethod, ThrowingMethodConsumer callback) { String domainMethodName = domainMethod.getMethodName(); - inspectOn(domainMethodName, callback); + aspectOn(domainMethodName, callback); } /** - * @see #inspectOn(String, ThrowingMethodConsumer) + * @see #aspectOn(String, ThrowingMethodConsumer) */ - default void inspectOn(ThrowingMethodBiConsumer domainMethod, ThrowingMethodConsumer callback) { + default void aspectOn(ThrowingMethodBiConsumer domainMethod, ThrowingMethodConsumer callback) { String domainMethodName = domainMethod.getMethodName(); - inspectOn(domainMethodName, callback); + aspectOn(domainMethodName, callback); } /** - * @see #inspectOn(String, ThrowingMethodConsumer) + * @see #aspectOn(String, ThrowingMethodConsumer) */ - default void inspectOn(ThrowingMethodBiFunction domainMethod, ThrowingMethodConsumer callback) { + default void aspectOn(ThrowingMethodBiFunction domainMethod, ThrowingMethodConsumer callback) { String domainMethodName = domainMethod.getMethodName(); - inspectOn(domainMethodName, callback); + aspectOn(domainMethodName, callback); } /** - * @see #inspectOn(String, ThrowingMethodConsumer) + * @see #aspectOn(String, ThrowingMethodConsumer) */ - default void inspectOn(ThrowingMethodTerConsumer domainMethod, ThrowingMethodConsumer callback) { + default void aspectOn(ThrowingMethodTerConsumer domainMethod, ThrowingMethodConsumer callback) { String domainMethodName = domainMethod.getMethodName(); - inspectOn(domainMethodName, callback); + aspectOn(domainMethodName, callback); } /** - * @see #inspectOn(String, ThrowingMethodConsumer) + * @see #aspectOn(String, ThrowingMethodConsumer) */ - default void inspectOn(ThrowingMethodTerFunction domainMethod, ThrowingMethodConsumer callback) { + default void aspectOn(ThrowingMethodTerFunction domainMethod, ThrowingMethodConsumer callback) { String domainMethodName = domainMethod.getMethodName(); - inspectOn(domainMethodName, callback); + aspectOn(domainMethodName, callback); } /** - * @see #inspectOn(String, ThrowingMethodConsumer) + * @see #aspectOn(String, ThrowingMethodConsumer) */ - default void inspectOn(ThrowingMethodQueConsumer domainMethod, ThrowingMethodConsumer callback) { + default void aspectOn(ThrowingMethodQueConsumer domainMethod, ThrowingMethodConsumer callback) { String domainMethodName = domainMethod.getMethodName(); - inspectOn(domainMethodName, callback); + aspectOn(domainMethodName, callback); } /** - * @see #inspectOn(String, ThrowingMethodConsumer) + * @see #aspectOn(String, ThrowingMethodConsumer) */ - default void inspectOn(ThrowingMethodQueFunction domainMethod, ThrowingMethodConsumer callback) { + default void aspectOn(ThrowingMethodQueFunction domainMethod, ThrowingMethodConsumer callback) { String domainMethodName = domainMethod.getMethodName(); - inspectOn(domainMethodName, callback); + aspectOn(domainMethodName, callback); } /** @@ -663,18 +663,18 @@ default void inspectOn(ThrowingMethodQueFunction callback); + void aspectOn(String domainMethod, ThrowingMethodConsumer callback); /** * 获取领域切面的队列 */ - Queue getDomainInspects(); + Queue getDomainAspects(); } /** * 领域对象切面 */ - interface DomainInspect { + interface DomainAspect { /** * 获取领域行为 diff --git a/src/main/java/cc/allio/turbo/modules/developer/service/impl/BoDomainServiceImpl.java b/src/main/java/cc/allio/turbo/modules/developer/service/impl/BoDomainServiceImpl.java index 9fdbafe..f1e4dda 100644 --- a/src/main/java/cc/allio/turbo/modules/developer/service/impl/BoDomainServiceImpl.java +++ b/src/main/java/cc/allio/turbo/modules/developer/service/impl/BoDomainServiceImpl.java @@ -133,27 +133,27 @@ IDomainCrudTreeRepositoryService createAopRepository(CommandExecutor commandExec public static class BoDomainCrudTreeRepositoryServiceImpl extends SimpleTurboCrudTreeRepositoryServiceImpl implements IDomainCrudTreeRepositoryService { - private final Queue domainInspects; + private final Queue domainAspects; public BoDomainCrudTreeRepositoryServiceImpl(CommandExecutor commandExecutor) { super(commandExecutor, DomainEntity.class); - this.domainInspects = Queues.newConcurrentLinkedQueue(); + this.domainAspects = Queues.newConcurrentLinkedQueue(); } @Override - public void inspectOn(String domainMethod, ThrowingMethodConsumer callback) { - this.domainInspects.offer(new DomainInspectImpl(domainMethod, callback)); + public void aspectOn(String domainMethod, ThrowingMethodConsumer callback) { + this.domainAspects.offer(new DomainInspectImpl(domainMethod, callback)); } @Override - public Queue getDomainInspects() { - return domainInspects; + public Queue getDomainAspects() { + return domainAspects; } } @AllArgsConstructor @Getter - public static class DomainInspectImpl implements DomainInspect { + public static class DomainInspectImpl implements DomainAspect { private final String domainMethod; private final ThrowingMethodConsumer callback; @@ -164,8 +164,8 @@ public static class BoDomainLockRepositoryMethodInterceptor extends LockReposito public BoDomainLockRepositoryMethodInterceptor(BoSchema schema) { this.schema = schema; - addIgnoreMethod("inspectOn"); - addIgnoreMethod("getDomainInspects"); + addIgnoreMethod("aspectOn"); + addIgnoreMethod("getDomainAspects"); } @Override @@ -175,11 +175,11 @@ protected Object doInvoke(MethodInvocation invocation, OptionalContext lockConte Object theThis = invocation.getThis(); Method method = invocation.getMethod(); if (theThis instanceof IDomainCrudTreeRepositoryService domainCrudTreeRepositoryService) { - Queue domainInspects = domainCrudTreeRepositoryService.getDomainInspects(); - DomainInspect domainInspect = domainInspects.poll(); + Queue domainAspects = domainCrudTreeRepositoryService.getDomainAspects(); + DomainAspect domainInspect = domainAspects.poll(); if (domainInspect != null && isMatch(domainInspect.getDomainMethod(), method)) { if (log.isDebugEnabled()) { - log.debug("domain object [{}] inspect domain method [{}]", schema.getName(), domainInspect.getDomainMethod()); + log.debug("domain object [{}] aspect domain method [{}]", schema.getName(), domainInspect.getDomainMethod()); } // 存入参数 Object[] arguments = invocation.getArguments(); @@ -189,7 +189,7 @@ protected Object doInvoke(MethodInvocation invocation, OptionalContext lockConte callback.accept(immutableContext); } catch (Throwable ex) { // ignore - log.warn("domain object [{}] inspect domain method {} encounter error, now just log error and ignore", schema.getName(), domainInspect.getDomainMethod(), ex); + log.warn("domain object [{}] aspect domain method {} encounter error, now just log error and ignore", schema.getName(), domainInspect.getDomainMethod(), ex); } } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3b66e6f..28bc97c 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,5 +1,9 @@ server: port: 8600 + undertow: + threads: + io: 100 + worker: 10 spring: application: From 4513b0786072388bfaa24b80f4ab7b8aff255b7b Mon Sep 17 00:00:00 2001 From: jiangw Date: Fri, 23 Feb 2024 15:54:17 +0800 Subject: [PATCH 2/2] release:0.1.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 59d6e12..f8711d3 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ cc.allio Turbo - 0.1.0-beta.1.RELEASE + 0.1.0 Turbo Turbo快速开发平台 https://github.com/ClearXs/Turbo.git @@ -25,7 +25,7 @@ 21 - 1.1.6-beta.1 + 1.1.6 3.3.0 3.11.0 4.3.0