|
|
@@ -190,13 +190,14 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
RLock lock = redissonClient.getLock(String.format(RedisKey.INSERT_ORDER_LOCK, userId, shopId));
|
|
|
lock.lock();
|
|
|
+ TransactionStatus status = null;
|
|
|
try {
|
|
|
TbOrder order = appOrderDao.selectOne(new QueryWrapper<TbOrder>().eq("user_id", userId).eq("shop_id", shopId).eq("status", 1));
|
|
|
Goods goods = goodsDao.selectById(goodsId);
|
|
|
String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
|
|
|
|
|
// 开启编程式事务
|
|
|
- TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());
|
|
|
+ status = transactionManager.getTransaction(new DefaultTransactionDefinition());
|
|
|
if (order == null) {
|
|
|
UserEntity userEntity = userDao.selectById(userId);
|
|
|
TbOrder tbOrder = new TbOrder();
|
|
|
@@ -264,6 +265,10 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
// 在锁中提交事务
|
|
|
transactionManager.commit(status);
|
|
|
+ } catch (Exception e) {
|
|
|
+ if (ObjectUtil.isNotNull(status)) {
|
|
|
+ transactionManager.rollback(status);
|
|
|
+ }
|
|
|
} finally {
|
|
|
lock.unlock();
|
|
|
}
|