Helius
2021-11-01 110a99baa82a748bee993ad01ca03370c9dc0cf2
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -36,7 +36,6 @@
import com.matrix.system.wechart.templateMsg.UniformMsgParam;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -483,9 +482,7 @@
        // 更新收款时间
        pageOrder.setPayTime(new Date());
        pageOrder.setStatu(Dictionary.ORDER_STATU_YFK);
        sysOrderDao.update(pageOrder);
        updateOrderInfo(pageOrder);
        // 获取用户信息
        SysVipInfo vipInfo = sysVipInfoDao.selectById(pageOrder.getVipId());
@@ -515,6 +512,30 @@
        //设置会员积分
        addVipScore(pageOrder);
    }
    /**
     * 付款后更新订单信息
     * @param pageOrder
     */
    private void updateOrderInfo(SysOrder pageOrder) {
        pageOrder.setPayTime(new Date());
        pageOrder.setStatu(Dictionary.ORDER_STATU_YFK);
        List<SysOrderFlow> flows = pageOrder.getFlows();
        BigDecimal cashPayAmount = flows.stream()
                .filter(item -> (!item.getPayMethod().equals("储值卡")) && (!item.getPayMethod().equals("欠款")))
                .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
        BigDecimal cardPayAmount = flows.stream()
                .filter(item -> item.getPayMethod().equals("储值卡") && item.getIsGift().equals("N"))
                .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
        pageOrder.setCardPay(cardPayAmount.doubleValue());
        pageOrder.setCashPay(cashPayAmount.doubleValue());
        //欠款金额在流水处理中处理了
        sysOrderDao.update(pageOrder);
    }
    private void checkOrder(SysOrder pageOrder) {
@@ -1380,17 +1401,20 @@
            //赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
            boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE);
            if (zsConsumeAchieve) {
                puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
                //赠送情况下,如果收款金额大于0,就是赠送金额划扣的情况,金额即为划扣的折扣金额
                if(sysOrderItem.getZkPrice()>0){
                    puse.setPrice(sysOrderItem.getZkPrice());
                }else{
                    puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
                }
            } else {
                puse.setPrice(0D);
            }
        }
        // 设置失效时间
        Date invalidTime = shoppingGoodsService.calInvalidTime(sysOrderItem.getShoppingGoods(), 1, null);
        puse.setFailTime(invalidTime);
        puse.setBalance(sysOrderItem.getShoppingGoods().getSealPice() * puse.getSurplusCount());
        puse.setBalance(puse.getPrice() * puse.getSurplusCount());
        sysProjUseDao.insert(puse);
    }
@@ -1829,4 +1853,9 @@
        sysInstoreInfoService.check(instoreInfo);
    }
    @Override
    public BigDecimal findVipArrearsByVipId(Long vipId) {
        return sysOrderDao.selectArrearsByVipId(vipId);
    }
}