935090232@qq.com
2022-02-22 bbe0a2fd03063316e50cf141986bda984599bbda
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -519,7 +519,12 @@
     * @param pageOrder
     */
    private void updateOrderInfo(SysOrder pageOrder) {
        SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        pageOrder.setCashierId(user.getSuId());
        pageOrder.setPayTime(new Date());
        pageOrder.setStatu(Dictionary.ORDER_STATU_YFK);
        List<SysOrderFlow> flows = pageOrder.getFlows();
@@ -528,13 +533,20 @@
                .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
        BigDecimal cardPayAmount = flows.stream()
                .filter(item -> item.getPayMethod().equals("储值卡") && item.getIsGift().equals("N"))
                .filter(item -> item.getPayMethod().equals("储值卡"))
                .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
        pageOrder.setCardPay(cardPayAmount.doubleValue());
        pageOrder.setCashPay(cashPayAmount.doubleValue());
        //欠款金额在流水处理中处理了
        double sum = flows.stream().mapToDouble(item -> item.getAmount().doubleValue()).sum();
        if(sum>0 && cardPayAmount.doubleValue()==0 && cashPayAmount.doubleValue()==0 ){
            throw new GlobleException("订单更新失败,支付金额计算错误,请联系管理员");
        }
        sysOrderDao.update(pageOrder);
    }