Selaa lähdekoodia

修复订单没有骑手接单导致的订单不能正常完成异常

codingliang 1 vuosi sitten
vanhempi
commit
1725effa4e

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

@@ -1331,9 +1331,15 @@ public class TbIndentServiceImpl extends ServiceImpl<TbIndentDao, TbIndent> impl
     @Override
     @Transactional
     public void finshIndent(Long userId, String indentNumber) {
-
         //用户确认送达以后,将配送费加到骑手余额账户
         TbIndent tbIndent = tbIndentDao.selectIndentByIndentNumber(indentNumber);
+
+        // 骑手id为空表示当前订单没有骑手接单,这里直接记录日志后返回,防止后续订单完成逻辑不能正常完成
+        if (ObjectUtil.isNull(tbIndent.getRiderUserId())) {
+            log.error("订单编号:{}对应骑手id为空,跳过骑手收益计算逻辑...", indentNumber);
+            return;
+        }
+
         UserEntity userMessage = userService.selectUserById(tbIndent.getRiderUserId());
         BigDecimal balance = userMessage.getBalance().add(tbIndent.getRiderMoney());
         tbIndentDao.updateRiderBalance(balance, tbIndent.getRiderUserId());