yangdamao 1 년 전
부모
커밋
7e1b23f513
1개의 변경된 파일53개의 추가작업 그리고 3개의 파일을 삭제
  1. 53 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

+ 53 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -1797,9 +1797,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         //退款金额
         BigDecimal refundPrice = orderRefundList.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
         if (order.getOrderFrom() == 3 && bo.getPayType() != 1) {
-            if (Validator.isEmpty(bo.getToBankAcount()) || Validator.isEmpty(bo.getToBankName()) || Validator.isEmpty(bo.getToBankTypeName())) {
-                throw new CustomException("支付参数错误");
-            }
             //旧系统B端网银退款处理
             Integer sign = handleEnterpriseRefund(refundPrice, order, bo, orderRefundList.get(0).getType(), orderRefundList);
             orderRefundList.forEach(x -> {
@@ -1861,6 +1858,37 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return true;
     }
 
+    private void refundPost(OrderRefundPayBo bo){
+        //退款详情
+        RefundOrderBo refundOrderBo = new RefundOrderBo();
+        refundOrderBo.setOrderSn(bo.getOrderSn());
+        refundOrderBo.setPeriodStatus(2);//待退款
+        List<TopOldOrderRefundVo> orderRefundList = baseMapper.getRefundOrderByBo(refundOrderBo);
+        orderRefundList.forEach(item -> item.setRealRefundFee(item.getRefundFee()));
+        TopOldOrder order = baseMapper.getOrderBySn(bo.getOrderSn());
+        if (Validator.isEmpty(order)) {
+            throw new CustomException("订单数据错误无法支付");
+        }
+        //退款金额
+        BigDecimal refundPrice = orderRefundList.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+        if (order.getOrderFrom() == 3 && bo.getPayType() != 1) {
+            //旧系统B端网银退款处理
+            Integer sign = handleEnterpriseRefund(refundPrice, order, bo, orderRefundList.get(0).getType(), orderRefundList);
+            orderRefundList.forEach(x -> {
+                x.setPeriodStatus(sign == 2 ? 4 : 3);//支付中
+                //待扣分成
+                TopOldOrderGoods orderGoods = topOrderGoodsService.getById(x.getOrderGoodsId());
+                x.setDivideModel(orderGoods.getDivideModel());
+                x.setDivideMoney(orderGoods.getDivideMoney());
+                x.setPayCheckTime(DateUtils.getNowTime());
+            });
+            topOldOrderRefundService.updateBatchById(orderRefundList.stream().map(x -> BeanUtil.toBean(x, TopOldOrderRefund.class)).collect(Collectors.toList()));
+            update(new LambdaUpdateWrapper<TopOldOrder>()
+                    .set(TopOldOrder::getRefundStatus, sign == 2 ? 5 : 3) // 支付中
+                    .eq(TopOldOrder::getOrderSn, bo.getOrderSn()));
+        }
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void orderInvoice(String invoiceSn) {
@@ -1944,6 +1972,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             updateById(order);
         }
         if (refundPrice.compareTo(BigDecimal.ZERO) > 0) {
+            if (Validator.isEmpty(bo.getToBankAcount()) || Validator.isEmpty(bo.getToBankName()) || Validator.isEmpty(bo.getToBankTypeName())) {
+                throw new CustomException("支付账号为空!");
+            }
             bo.setTrainOrgId(order.getTenantId().toString());//旧机构ID
             String paySn = DateUtils.getTagOrderSn("CP");
             TopOrderBankPay add = BeanUtil.toBean(bo, TopOrderBankPay.class);
@@ -5040,6 +5071,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         Integer maxSort = checkLogList.stream().mapToInt(TopOldOrderCheckLog::getCheckSort).max().getAsInt();
         Integer periodStatus = 0;
         Integer refundStatus = 0;
+        Boolean flag = false;
         if (checkLog.getCheckSort() < maxSort) {
             //下个审核进入默认
             topOldOrderCheckLogService.update(new LambdaUpdateWrapper<TopOldOrderCheckLog>()
@@ -5065,6 +5097,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 check.setCheckSign(1);//开启当前流程
                 topOldOrderCheckLogService.updateById(check);
             }
+            flag = true;
         }
         TopOldOrder oldOrder = baseMapper.getOrderBySn(bo.getOrderSn());
         if (oldOrder.getOrderFrom() != 1) {
@@ -5112,6 +5145,23 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         .eq(Order::getOrderSn, refundList.get(0).getOrderSn()));
             }
         }
+
+        if (flag){
+            //存在未收款金额
+            BigDecimal orderUncollected = oldOrder.getOrderUncollected();
+            //退款金额
+            RefundOrderBo refundOrderBo = new RefundOrderBo();
+            refundOrderBo.setOrderSn(bo.getOrderSn());
+            refundOrderBo.setPeriodStatus(2);//待退款
+            List<TopOldOrderRefundVo> orderRefundList = baseMapper.getRefundOrderByBo(refundOrderBo);
+            BigDecimal refundPrice = orderRefundList.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+            if (refundPrice.compareTo(orderUncollected) <= 0){
+                OrderRefundPayBo payBo = new OrderRefundPayBo();
+                payBo.setOrderSn(bo.getOrderSn());
+                payBo.setPayType(oldOrder.getPayType());
+                refundPost(payBo);
+            }
+        }
     }
 
     @Override