Helius
2021-01-07 d58a5eecbbf9db6a9469801273e537a55bc8e794
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -93,6 +93,9 @@
    @Autowired
    private ShoppingGoodsService shoppingGoodsService;
    @Autowired
    private SysOrderFlowDao sysOrderFlowDao;
    @Override
    public int add(SysOrder sysOrder) {
        return sysOrderDao.insert(sysOrder);
@@ -180,10 +183,10 @@
            // 如果支付方式是非现金则记录现金支付金额
            if (!item.getPayMethod().equals(PayMethodEnum.VIP_CARD.getCode())) {
                xjMoney = MoneyUtil.add(xjMoney, item.getPayMoney());
                item.setCashPay(item.getPayMoney());
//                item.setCashPay(item.getPayMoney());
            } else {
                cardMoney = MoneyUtil.add(cardMoney, item.getPayMoney());
                item.setCardPay(item.getPayMoney());
//                item.setCardPay(item.getPayMoney());
            }
@@ -191,27 +194,28 @@
            // 订单欠款减去支付金额 设置实际欠款
            Double itemZkTotal = MoneyUtil.mul(item.getZkPrice(), Double.valueOf(item.getCount()));
            zkTotal=MoneyUtil.add(zkTotal, itemZkTotal);
            item.setArrears(MoneyUtil.sub(itemZkTotal, item.getPayMoney()));
//            item.setArrears(MoneyUtil.sub(itemZkTotal, item.getPayMoney()));
            // 如果存在欠款,将条目状态设置为欠款
            if (item.getArrears() > 0) {
                item.setStatus(Dictionary.ORDER_STATU_QK);
            } else if (item.getArrears() < 0) {
                item.setPayMoney(item.getZkPrice());
                item.setStatus(Dictionary.ORDER_STATU_DFK);
            } else {
                item.setStatus(Dictionary.ORDER_STATU_DFK);
            }
//            if (item.getArrears() > 0) {
//                item.setStatus(Dictionary.ORDER_STATU_QK);
//            } else if (item.getArrears() < 0) {
//                item.setPayMoney(item.getZkPrice());
//                item.setStatus(Dictionary.ORDER_STATU_DFK);
//            } else {
//                item.setStatus(Dictionary.ORDER_STATU_DFK);
//            }
            item.setStatus(Dictionary.ORDER_STATU_DFK);
        }
        double arrears;
        SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        // 如果是收款,收款可以改变订单价格,所以需要求和出 订单折后价来计算本次欠款
        arrears = MoneyUtil.sub(zkTotal, MoneyUtil.add(cardMoney, xjMoney));
        sysOrder.setZkTotal(zkTotal);
        sysOrder.setArrears(arrears);
        sysOrder.setCardPay(cardMoney);
        sysOrder.setCashPay(xjMoney);
//        sysOrder.setArrears(arrears);
//        sysOrder.setCardPay(cardMoney);
//        sysOrder.setCashPay(xjMoney);
        sysOrder.setStatu(Dictionary.ORDER_STATU_DFK);
        sysOrder.setStaffId(user.getSuId());
        sysOrder.setCompanyId(user.getCompanyId());
@@ -499,40 +503,43 @@
     */
    private void changeOrderStatu(SysOrder sourceOrder) {
      boolean haQk=false;
        for (SysOrderFlow flow : sourceOrder.getFlows()) {
            // 若使用储值卡付款
            if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
        for(SysOrderItem sysOrderItem:sourceOrder.getItems()){
            if(!sysOrderItem.getStatus().equals(Dictionary.ORDER_STATU_QK)){
                SysOrderItem updateItem=new SysOrderItem();
                updateItem.setId(sysOrderItem.getId());
                updateItem.setStatus(Dictionary.ORDER_STATU_YFK);
                if (sysOrderItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY_CARD )  ) {
                    if(sysOrderItem.getPayMethodDetail()!=null){
                        // 查询要支付的充值卡
                        MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(sysOrderItem.getPayMethodDetail()));
                        // 扣除付款卡金额并添加流水
                        cardPaySk(moneyCardUse, sourceOrder,  sysOrderItem);
                    }else{
                        throw  new GlobleException("请选择支付的会员卡");
                    }
                }
                orderItemDao.update(updateItem);
            }else {
                haQk=true;
            }
        }
        //更新收款状态
        if(haQk){
            sourceOrder.setStatu(Dictionary.ORDER_STATU_QK);
        }else{
            sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK);
        }
//      boolean haQk=false;
//
//        for(SysOrderItem sysOrderItem:sourceOrder.getItems()){
//
//            if(!sysOrderItem.getStatus().equals(Dictionary.ORDER_STATU_QK)){
//                SysOrderItem updateItem=new SysOrderItem();
//                updateItem.setId(sysOrderItem.getId());
//                updateItem.setStatus(Dictionary.ORDER_STATU_YFK);
//
//                if (sysOrderItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY_CARD )  ) {
//
//                    if(sysOrderItem.getPayMethodDetail()!=null){
//                        // 查询要支付的充值卡
//                        MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(sysOrderItem.getPayMethodDetail()));
//                        // 扣除付款卡金额并添加流水
//                        cardPaySk(moneyCardUse, sourceOrder,  sysOrderItem);
//                    }else{
//                        throw  new GlobleException("请选择支付的会员卡");
//                    }
//
//
//                }
//                orderItemDao.update(updateItem);
//            }else {
//                haQk=true;
//            }
//        }
        // 更新收款状态
        sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK);
        sysOrderDao.update(sourceOrder);
@@ -1256,4 +1263,9 @@
    public List<RankingVo> findApiShopAchieveRanking(SysOrder sysOrder) {
        return sysOrderDao.selectShopAchieveRanking(sysOrder);
    }
    @Override
    public List<RankingVo> findStaffSaleAchieveRanking(SysOrder sysOrder) {
        return sysOrderDao.selectStaffSaleAchieveRanking(sysOrder);
    }
}