Jelajahi Sumber

修改订单完成时,如果没有骑手接单导致店铺收益不到账问题(骑手收益计算时,直接捕获所有异常,日志打印记录)

codingliang 1 tahun lalu
induk
melakukan
6da5109138

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

@@ -1061,33 +1061,39 @@ public class TbIndentServiceImpl extends ServiceImpl<TbIndentDao, TbIndent> impl
     @Override
     @Transactional
     public void finshIndent(Long userId, String indentNumber){
-
-        //用户确认送达以后,将配送费加到骑手余额账户
-        TbIndent tbIndent = tbIndentDao.selectIndentByIndentNumber(indentNumber);
-        UserEntity userMessage = userService.selectUserById(tbIndent.getRiderUserId());
-        BigDecimal balance = userMessage.getBalance().add(tbIndent.getRiderMoney());
-        tbIndentDao.updateRiderBalance(balance, tbIndent.getRiderUserId());
-        //将接单明细添加到钱包明细表里
-        UserMoneyDetails userMoneyDetails=new UserMoneyDetails();
-        userMoneyDetails.setMoney(tbIndent.getRiderMoney());
-        userMoneyDetails.setUserId(tbIndent.getRiderUserId());
-        userMoneyDetails.setTitle("[接单收入]接单ID:"+tbIndent.getIndentNumber());
-        userMoneyDetails.setContent("接单收入:"+tbIndent.getRiderMoney());
-        userMoneyDetails.setType(1);
-        userMoneyDetails.setClassify(3);
-        userMoneyDetails.setState(2);
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date()));
-        //tbIndentDao.insertUserMoneyDetails(userMoneyDetails.getUserId(), userMoneyDetails.getTitle(), userMoneyDetails.getType(), userMoneyDetails.getMoney(), userMoneyDetails.getContent(), userMoneyDetails.getCreateTime());
-        userMoneyDetailsService.save(userMoneyDetails);
-        String riderTemplate = commonInfoService.findOne(311).getValue();
-        List<String> msgList = new ArrayList<>();
-        msgList.add(indentNumber);
-        msgList.add(tbIndent.getCreateTime());
-        msgList.add("已完成");
-        msgList.add(DateUtils.format(new Date()));
-        UserEntity riderUser = userService.selectUserById(tbIndent.getRiderUserId());
-        SenInfoCheckUtil.sendRiderMsg(riderUser.getRiderOpenId(), riderTemplate, msgList, 2);
+        try {
+            //用户确认送达以后,将配送费加到骑手余额账户
+            TbIndent tbIndent = tbIndentDao.selectIndentByIndentNumber(indentNumber);
+            UserEntity userMessage = userService.selectUserById(tbIndent.getRiderUserId());
+            BigDecimal balance = userMessage.getBalance().add(tbIndent.getRiderMoney());
+            tbIndentDao.updateRiderBalance(balance, tbIndent.getRiderUserId());
+            //将接单明细添加到钱包明细表里
+            UserMoneyDetails userMoneyDetails=new UserMoneyDetails();
+            userMoneyDetails.setMoney(tbIndent.getRiderMoney());
+            userMoneyDetails.setUserId(tbIndent.getRiderUserId());
+            userMoneyDetails.setTitle("[接单收入]接单ID:"+tbIndent.getIndentNumber());
+            userMoneyDetails.setContent("接单收入:"+tbIndent.getRiderMoney());
+            userMoneyDetails.setType(1);
+            userMoneyDetails.setClassify(3);
+            userMoneyDetails.setState(2);
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date()));
+            //tbIndentDao.insertUserMoneyDetails(userMoneyDetails.getUserId(), userMoneyDetails.getTitle(), userMoneyDetails.getType(), userMoneyDetails.getMoney(), userMoneyDetails.getContent(), userMoneyDetails.getCreateTime());
+            userMoneyDetailsService.save(userMoneyDetails);
+
+            try {
+                String riderTemplate = commonInfoService.findOne(311).getValue();
+                List<String> msgList = new ArrayList<>();
+                msgList.add(indentNumber);
+                msgList.add(tbIndent.getCreateTime());
+                msgList.add("已完成");
+                msgList.add(DateUtils.format(new Date()));
+                UserEntity riderUser = userService.selectUserById(tbIndent.getRiderUserId());
+                SenInfoCheckUtil.sendRiderMsg(riderUser.getRiderOpenId(), riderTemplate, msgList, 2);
+            } catch (Exception e) {}
+        } catch (Exception e) {
+            log.error("骑手收益结算异常,跑腿订单号【{}】,异常原因【{}】:", indentNumber, e.getMessage());
+        }
     }
 
     @Override