diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java index 7c07b35..a6d4007 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1023,12 +1023,16 @@ public class PayService { orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); - // 提交当前事务 - transactionTemplate.execute((TransactionCallback) status -> { - status.flush(); // 提交 + // 创建一个新的事务定义 + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); + TransactionStatus status = transactionManager.getTransaction(def); + try { + // 提交当前事务 transactionManager.commit(status); - return null; - }); + } catch (Exception e) { + transactionManager.rollback(status); // 回滚 + throw e; // 重新抛出异常 + } log.info("已经手动提交事务"); ThreadUtil.sleep(10, TimeUnit.SECONDS);