From 41535d1b81863c18acf08aec118a804cf3e5acdd Mon Sep 17 00:00:00 2001 From: zhenggm Date: Mon, 5 Sep 2022 09:46:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=9F=E5=BC=83AbsDbWorker=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0IDbSimpleWorker=EF=BC=8C=E6=96=B9=E4=BE=BFlambda?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/flow/listcard/single/FlowSingleService.java | 2 +- .../model/flow/listcard/single/FlowTransHandler.java | 12 +++++------- .../cc/smtweb/framework/core/db/jdbc/IDbSimpleWorker.java | 8 ++++++++ .../java/cc/smtweb/framework/core/db/jdbc/JdbcEngine.java | 15 +++++++++++++-- 4 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/jdbc/IDbSimpleWorker.java diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleService.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleService.java index 8f84175..054efa5 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleService.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleService.java @@ -54,6 +54,6 @@ public class FlowSingleService extends LCSingleService { } public R retake(@SwBody SwMap params, UserSession us) { - return flowHandler(params, us, FlowTransHandler::submit); + return flowHandler(params, us, FlowTransHandler::retake); } } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowTransHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowTransHandler.java index e590922..bd5121a 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowTransHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowTransHandler.java @@ -4,6 +4,8 @@ import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.db.impl.DefaultEntity; +import cc.smtweb.framework.core.db.jdbc.AbsDbWorker; +import cc.smtweb.framework.core.db.jdbc.IDbSimpleWorker; import cc.smtweb.framework.core.db.jdbc.IDbWorker; import cc.smtweb.framework.core.mvc.service.SwListData; import cc.smtweb.system.bpm.web.design.form.define.PageDataset; @@ -53,19 +55,15 @@ public class FlowTransHandler extends AbstractDynPageHa public R submit() { load(); - DbEngine.getInstance().doTrans(new IDbWorker() { - @Override - public void work() { - flowInstance.submit(params.readString("comment")); - } - }); + DbEngine.getInstance().doTrans(() -> flowInstance.submit(params.readString("comment"))); return R.success(buildRetData()); } public R retake() { load(); - flowInstance.retake(); + DbEngine.getInstance().doTrans(() -> flowInstance.retake()); + return R.success(buildRetData()); } } diff --git a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/jdbc/IDbSimpleWorker.java b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/jdbc/IDbSimpleWorker.java new file mode 100644 index 0000000..6c8c0e2 --- /dev/null +++ b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/jdbc/IDbSimpleWorker.java @@ -0,0 +1,8 @@ +package cc.smtweb.framework.core.db.jdbc; + +/** + * Created by Akmm at 2022-09-05 09:42 + */ +public interface IDbSimpleWorker { + void work(); +} diff --git a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/jdbc/JdbcEngine.java b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/jdbc/JdbcEngine.java index ec46520..ecdd54c 100644 --- a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/jdbc/JdbcEngine.java +++ b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/jdbc/JdbcEngine.java @@ -281,7 +281,7 @@ public class JdbcEngine { * * @param extractor 回调方法 * @return 事务是否成功,如果异常会也会事务回滚后再抛出异常 - */ + *//* public boolean doTrans(Supplier extractor) { try (JdbcTrans jdbcTrans = openTrans()) { boolean result = extractor.get(); @@ -292,7 +292,7 @@ public class JdbcEngine { } return false; - } + }*/ public void beginTrans() { Thread t = Thread.currentThread(); @@ -346,6 +346,17 @@ public class JdbcEngine { dbWorker.doAfterDbCommit(); } + public void doTrans(IDbSimpleWorker dbWorker) throws SwException { + beginTrans(); + try { + dbWorker.work(); + commit(); + } catch (Exception e) { + rollback(e); + throw new SwException(e); + } + } + //独立事务 public void doTransSingle(IDbWorker worker) throws Exception { JdbcTrans jdbcTrans = openTrans();