he2802 2 жил өмнө
parent
commit
384c26a48b

+ 14 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsRefundServiceImpl.java

@@ -819,7 +819,13 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
                 throw new CustomException("退款错误"+ JSON.toJSONString(payResult));
             }
         });
-        return true;
+        String orderSn = refundBos.get(0).getOrderSn();
+        Order order = iOrderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, orderSn));
+        //实际账款 = 已收 - 已退
+        BigDecimal subtract = order.getOrderReceived().subtract(order.getOrderRefunded());
+        BigDecimal profitTotal = subtract.subtract(order.getOrderCost());
+        order.setOrderProfit(profitTotal);
+        return iOrderService.updateById(order);
     }
 
     @Override
@@ -837,7 +843,13 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
             //关闭C端用户的分销返利
             shareClientCancelOldSys(order,orderGoods,bo.getGoodsRealPrice());
         });
-        return true;
+        String orderSn = orderGoodsVos.get(0).getOrderSn();
+        Order order = iOrderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, orderSn));
+        //实际账款 = 已收 - 已退
+        BigDecimal subtract = order.getOrderReceived().subtract(order.getOrderRefunded());
+        BigDecimal profitTotal = subtract.subtract(order.getOrderCost());
+        order.setOrderProfit(profitTotal);
+        return iOrderService.updateById(order);
     }
 
 //    public Boolean topOrderRefund(){

+ 3 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -1088,7 +1088,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 costTotal = costTotal.add(cost);
                 divideTotal = divideTotal.add(divideMoney);
             }
-            profitTotal = add.getOrderPrice().subtract(costTotal);
             List<TopCostTpItem> costTpItemList = topCostTpItemService
                     .list(new LambdaQueryWrapper<TopCostTpItem>()
                             .eq(TopCostTpItem::getTpId, costTp.getTpId())
@@ -1097,6 +1096,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 List<TopCostTpItemVo> itemVoList = costTpItemList.stream().map(x -> BeanUtil.toBean(x, TopCostTpItemVo.class)).collect(Collectors.toList());
                 topCostTpVo.setItemList(itemVoList);
             }
+            //实际账款 = 已收 - 已退
+            BigDecimal subtract = add.getOrderReceived().subtract(add.getOrderRefunded());
+            profitTotal = subtract.subtract(costTotal);
             add.setOrderCost(costTotal);
             add.setOrderProfit(profitTotal);
             add.setCostJson(JSONObject.toJSONString(topCostTpVo));

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

@@ -439,7 +439,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 }
                 costTotal = costTotal.add(cost);
             }
-            profitTotal = bo.getOrderPrice().subtract(costTotal);
+
             List<TopCostTpItem> costTpItemList = topCostTpItemService
                     .list(new LambdaQueryWrapper<TopCostTpItem>()
                             .eq(TopCostTpItem::getTpId, costTp.getTpId())
@@ -448,8 +448,12 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 List<TopCostTpItemVo> itemVoList = costTpItemList.stream().map(x -> BeanUtil.toBean(x, TopCostTpItemVo.class)).collect(Collectors.toList());
                 topCostTpVo.setItemList(itemVoList);
             }
-            add.setOrderCost(costTotal.add(brokerage));
-            add.setOrderProfit(profitTotal.subtract(brokerage));
+            BigDecimal cost = costTotal.add(brokerage);
+            add.setOrderCost(cost);
+            //实际账款 = 已收 - 已退
+            BigDecimal subtract = add.getOrderReceived().subtract(add.getOrderRefunded());
+            profitTotal = subtract.subtract(cost);
+            add.setOrderProfit(profitTotal);
             add.setCostJson(JSONObject.toJSONString(topCostTpVo));
         }
         if (bo.getOrderFrom() == 3){
@@ -465,33 +469,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         } else {
             add.setOrderUncollected(bo.getPayPrice().subtract(bo.getOrderReceived()));
         }
-        if (add.getOrderBase() == 1){
-            //底单在新系统 查询新系统订单号
-            Map<String, String> params = new HashMap<>();
-            Long nowTime = DateUtils.getNowTime();
-            String sign = ToolsUtils.EncoderByMd5(nowTime.toString() + "pubilc2022");
-            params.put("stamp", nowTime.toString());
-            params.put("sign", sign);
-            params.put("orderSn", add.getOrderSn());
-            String respone = "";
-            try {
-                respone = HttpUtils.postFormBody(INPUT_ORDER, params);
-                if (!respone.contains("\"Status\":true")) {
-                    throw new CustomException("旧系统查询新系统订单号接口请求错误");
-                }
-                JSONObject jsonObject = JSONObject.parseObject(respone);
-                Object data = jsonObject.get("Data");
-                if (ObjectUtils.isNull(data)) {
-                    //data 为空
-                    throw new CustomException("旧系统查询新系统订单号接口请求错误");
-                }else {
-                    add.setInputOrderSn(data.toString());
-                }
-            } catch (IOException e) {
-                log.error("旧系统查询新系统订单号接口请求错误" + respone);
-                throw new CustomException("旧系统查询新系统订单号接口请求错误");
-            }
-        }
         this.save(add);
         //订单商品
         if (CollectionUtils.isNotEmpty(bo.getOrderGoodsList())) {
@@ -709,9 +686,12 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }
             costTotal = costTotal.add(cost);
         }
-        profitTotal = order.getOrderPrice().subtract(costTotal);
-        order.setOrderCost(costTotal.add(brokerage));
-        order.setOrderProfit(profitTotal.subtract(brokerage));
+        BigDecimal cost = costTotal.add(brokerage);
+        order.setOrderCost(cost);
+        //实际账款 = 已收 - 已退
+        BigDecimal subtract = order.getOrderReceived().subtract(order.getOrderRefunded());
+        profitTotal = subtract.subtract(cost);
+        order.setOrderProfit(profitTotal);
     }
 
     @Override
@@ -1084,6 +1064,36 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 log.error("旧系统订单审核接口请求错误" + respone);
                 throw new CustomException("旧系统订单审核接口请求错误");
             }
+
+            if (bo.getCheckStatus() == 1 && oldOrder.getOrderBase() == 1){
+                //审核通过
+                //底单在新系统 查询新系统订单号
+                Map<String, String> params1 = new HashMap<>();
+                Long nowTime1 = DateUtils.getNowTime();
+                String sign1 = ToolsUtils.EncoderByMd5(nowTime.toString() + "pubilc2022");
+                params1.put("stamp", nowTime1.toString());
+                params1.put("sign", sign1);
+                params1.put("orderSn", oldOrder.getOrderSn());
+                String respone1 = "";
+                try {
+                    respone1 = HttpUtils.postFormBody(INPUT_ORDER, params);
+                    if (!respone.contains("\"Status\":true")) {
+                        throw new CustomException("旧系统查询新系统订单号接口请求错误");
+                    }
+                    JSONObject jsonObject = JSONObject.parseObject(respone);
+                    Object data = jsonObject.get("Data");
+                    if (ObjectUtils.isNull(data)) {
+                        //data 为空
+                        throw new CustomException("旧系统查询新系统订单号接口请求错误");
+                    }else {
+                        oldOrder.setInputOrderSn(data.toString());
+                        updateById(oldOrder);
+                    }
+                } catch (IOException e) {
+                    log.error("旧系统查询新系统订单号接口请求错误" + respone);
+                    throw new CustomException("旧系统查询新系统订单号接口请求错误");
+                }
+            }
         }
 
         return true;
@@ -1266,7 +1276,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 throw new CustomException("支付参数错误");
             }
             //旧系统B端网银退款处理
-            Integer sign = handleEnterpriseRefund(refundPrice, order, bo);
+            Integer sign = handleEnterpriseRefund(refundPrice, order, bo,orderRefundList.get(0).getType());
             orderRefundList.forEach(x -> x.setPeriodStatus(sign==2?4:3));//支付中
             topOldOrderRefundService.updateBatchById(orderRefundList.stream().map(x -> BeanUtil.toBean(x,TopOldOrderRefund.class)).collect(Collectors.toList()));
             update(new LambdaUpdateWrapper<TopOldOrder>()
@@ -1348,7 +1358,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     }
 
 
-    private Integer handleEnterpriseRefund(BigDecimal refundPrice,TopOldOrder order,OrderRefundPayBo bo) {
+    private Integer handleEnterpriseRefund(BigDecimal refundPrice,TopOldOrder order,OrderRefundPayBo bo,Integer type) {
         if (ObjectUtils.isNotNull(order.getOrderUncollected()) && order.getOrderUncollected().compareTo(BigDecimal.ZERO) !=0){
             //存在未收款金额
             BigDecimal orderUncollected = order.getOrderUncollected();
@@ -1404,6 +1414,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             topOrderBankPayService.save(add);
             return 2;
         }
+
+        //未收金额大于退款金额
+        checkInform(order.getOrderSn(),type,"",1,1,"已支付");
         return 1;
     }
 
@@ -2784,7 +2797,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     }
                     costTotal = costTotal.add(cost);
                 }
-                profitTotal = order.getOrderPrice().subtract(costTotal);
+
+                //实际账款 = 已收 - 已退
+                BigDecimal subtract = order.getOrderReceived().subtract(order.getOrderRefunded());
+                profitTotal = subtract.subtract(costTotal);
                 //修改订单成本和盈亏
                 orderService.update(new LambdaUpdateWrapper<Order>()
                         .set(Order::getOrderCost, costTotal)
@@ -2901,11 +2917,15 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     }
                     costTotal = costTotal.add(cost);
                 }
-                profitTotal = order.getOrderPrice().subtract(costTotal);
+                BigDecimal cost = costTotal.add(brokerage);
+                //实际账款 = 已收 - 已退
+                BigDecimal subtract = order.getOrderReceived().subtract(order.getOrderRefunded());
+                profitTotal = subtract.subtract(cost);
+
                 //修改订单成本和盈亏
                 update(new LambdaUpdateWrapper<TopOldOrder>()
-                        .set(TopOldOrder::getOrderCost, costTotal.add(brokerage))
-                        .set(TopOldOrder::getOrderProfit, profitTotal.subtract(brokerage))
+                        .set(TopOldOrder::getOrderCost, cost)
+                        .set(TopOldOrder::getOrderProfit, profitTotal)
                         .set(TopOldOrder::getCostJson, JSONObject.toJSONString(bo.getCostTpVo()))
                         .eq(TopOldOrder::getOrderSn, orderSn));
             }
@@ -2987,6 +3007,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                    topOldOrderRefundService.updateBatchById(list);
                    topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
                            .set(TopOldOrderGoods::getRefundStatus,2) //支付成功
+                           .set(TopOldOrderGoods::getCheckStatus,-1) //已退学
                            .in(TopOldOrderGoods::getOrderGoodsId,list.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList())));
                    order.setRefundStatus(3);//支付成功
                    //已退金额
@@ -2998,6 +3019,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                        add = reduce;
                    }
                    order.setOrderRefunded(add);//已退金额
+                   //实际账款 = 已收 - 已退
+                   BigDecimal subtract = order.getOrderReceived().subtract(order.getOrderRefunded());
+                   BigDecimal profitTotal = subtract.subtract(order.getOrderCost());
+                   order.setOrderProfit(profitTotal);
                    break;
                default:
                    break;
@@ -3063,6 +3088,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             payStatus = 3;//完全付款
         }
         order.setPayStatus(payStatus);
+        //实际账款 = 已收 - 已退
+        BigDecimal subtract = order.getOrderReceived().subtract(order.getOrderRefunded());
+        BigDecimal profitTotal = subtract.subtract(order.getOrderCost());
+        order.setOrderProfit(profitTotal);
         topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
         .set(TopOldOrderGoods::getPayStatus,payStatus)
         .eq(TopOldOrderGoods::getOrderSn,order.getOrderSn())

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -490,6 +490,10 @@ public class WxPayServiceImpl implements IWxPayService {
             if (StringUtils.isNotBlank(order.getCostJson())){
                 handleDivide(order);
             }
+            //实际账款 = 已收 - 已退
+            BigDecimal subtract = order.getOrderReceived().subtract(order.getOrderRefunded());
+            BigDecimal profitTotal = subtract.subtract(order.getOrderCost());
+            order.setOrderProfit(profitTotal);
             if (iOrderService.updateById(order)) {
                 Map<String, Object> map = new HashMap<>();
                 map.put("order_sn", out_trade_no);