Browse Source

优化日志输出;订单下单时新增异常回滚

codingliang 1 year atrás
parent
commit
895f6aa2d2

+ 2 - 2
src/main/java/com/sqx/modules/errand/service/impl/TbIndentServiceImpl.java

@@ -1123,7 +1123,7 @@ public class TbIndentServiceImpl extends ServiceImpl<TbIndentDao, TbIndent> impl
         }
         if ("4".equals(indentByNumber.getIndentState())) {
             if ("5".equals(indentByNumber.getIndentType())) {
-                log.info("操作完成订单1:" + indentByNumber.getOrderId());
+                log.info("骑手完成订单1:" + indentByNumber.getOrderId());
                 appOrderService.accomplishOrder(indentByNumber.getOrderId());
             } else {
                 tbIndentDao.riderDelivery(indentByNumber.getIndentId(), date);
@@ -1315,7 +1315,7 @@ public class TbIndentServiceImpl extends ServiceImpl<TbIndentDao, TbIndent> impl
         }
         if ("4".equals(indentByNumber.getIndentState())) {
             if ("5".equals(indentByNumber.getIndentType())) {
-                log.info("操作完成订单1:" + indentByNumber.getOrderId());
+                log.info("骑手完成订单2:" + indentByNumber.getOrderId());
                 appOrderService.accomplishOrder(indentByNumber.getOrderId());
             } else {
                 if (indentByNumber.getItemCodeFlag() != null && indentByNumber.getItemCodeFlag() == 0) {

+ 6 - 1
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -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();
         }