he2802 2 лет назад
Родитель
Сommit
dea7d57b3b

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

@@ -2839,6 +2839,12 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     public boolean updateOrderCost(TopUpdateCostBo bo) {
         bo.getOrderSnList().forEach(orderSn -> {
             TopOldOrder order = baseMapper.getOrderBySn(orderSn);
+            if (order.getFinishStatus() == 1){
+                throw new CustomException("订单已完单!请勿修改成本项");
+            }
+            if (order.getRefundStatus() != 1){
+                throw new CustomException("订单已产生退款!请勿修改成本项");
+            }
             //重新匹配成本和盈亏
             if (order.getOrderFrom() == 1) {
                 //新系统订单
@@ -2989,6 +2995,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                                 .eq(TopOldOrderGoods::getOrderSn, orderSn)
                                 .in(TopOldOrderGoods::getCheckStatus,Arrays.asList(0,1))
                                 .eq(TopOldOrderGoods::getStatus, 1));
+                if (CollectionUtils.isEmpty(orderGoodsList)){
+                    throw new CustomException(String.format("订单商品信息获取未空!请检查【%s】",orderSn));
+                }
                 if (ObjectUtils.isNotNull(order.getPretaxBrokerage()) && order.getPretaxBrokerage().compareTo(BigDecimal.ZERO) != 0){
                     halveBrokerage = brokerage.divide(new BigDecimal(orderGoodsList.size()),4,BigDecimal.ROUND_DOWN);
                 }
@@ -3190,15 +3199,18 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                            .set(TopOldOrderGoods::getCheckStatus,-1) //已退学
                            .in(TopOldOrderGoods::getOrderGoodsId,list.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList())));
                    order.setRefundStatus(3);//支付成功
+
+//                   BigDecimal add = BigDecimal.ZERO;
+//                   BigDecimal reduce = list.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+//                   if (ObjectUtils.isNotNull(order.getOrderRefunded())){
+//                       add = order.getOrderRefunded().add(reduce);
+//                   }else {
+//                       add = reduce;
+//                   }
+//                   order.setOrderRefunded(add);//已退金额
                    //已退金额
-                   BigDecimal add = BigDecimal.ZERO;
-                   BigDecimal reduce = list.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
-                   if (ObjectUtils.isNotNull(order.getOrderRefunded())){
-                       add = order.getOrderRefunded().add(reduce);
-                   }else {
-                       add = reduce;
-                   }
-                   order.setOrderRefunded(add);//已退金额
+                   BigDecimal add = order.getOrderRefunded().add(bankPay.getMoney());
+                   order.setOrderRefunded(add);
                    //实际账款 = 已收 - 已退
                    BigDecimal subtract = order.getOrderReceived().subtract(order.getOrderRefunded());
                    BigDecimal profitTotal = subtract.subtract(order.getOrderCost());