jyy
2021-09-03 3868b706ee3ee115a400d77abc3b69b83ea448c7
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -1188,7 +1188,7 @@
            List<ShoppingGoodsAssemble> assembleList = shoppingGoodsAssembleDao.selectGoodsByShoppingGoodsIdAndType(sysOrderItem.getGoodsId(), ShoppingGoods.SHOPPING_GOODS_TYPE_XM);
            assembleList.forEach(item -> {
                //TODO 补综合卡逻辑
                createProjuseByAssemble(order, sysOrderItem, item, null, null,null);
                createProjuseByAssemble(order, sysOrderItem, item, null, null,null,0);
            });
            //处理综合卡中包含的套餐
@@ -1209,7 +1209,7 @@
     * 通过组合关系创建用户项目余次
     */
    private SysProjUse createProjuseByAssemble(SysOrder order, SysOrderItem sysOrderItem,
                                               ShoppingGoodsAssemble goodsAssemble, Long taocanId, Date failTime,String source) {
                                               ShoppingGoodsAssemble goodsAssemble, Long taocanId, Date failTime,String source,int maxCount) {
        //计算折扣
        Double zk = sysOrderItem.getZkPrice() / sysOrderItem.getPrice();
@@ -1217,7 +1217,7 @@
        puse.setIsOver(Dictionary.DELETED_N);
        puse.setOrderItemId(sysOrderItem.getId());
        puse.setProjId(goodsAssemble.getAssembleGoodId());
        puse.setSurplusCount(goodsAssemble.getTotal());
        puse.setSurplusCount(goodsAssemble.getTotal()==null?maxCount: goodsAssemble.getTotal());
        puse.setDeductionNum(goodsAssemble.getDeductionNum());
        puse.setProjName(goodsAssemble.getShoppingGoods().getName());
        puse.setVipId(order.getVipId());
@@ -1297,19 +1297,21 @@
        //创建套餐绑定的项目
        List<ShoppingGoodsAssemble> assembleList = shoppingGoodsAssembleDao.selectGoodsByShoppingGoodsIdAndType(projId, ShoppingGoods.SHOPPING_GOODS_TYPE_XM);
        for (ShoppingGoodsAssemble assemble : assembleList) {
            SysProjUse tempUse = createProjuseByAssemble(order, sysOrderItem, assemble, taocanProjUse.getId(),taocanProjUse.getFailTime(),taocanProjUse.getSource());
            SysProjUse tempUse = createProjuseByAssemble(order, sysOrderItem, assemble, taocanProjUse.getId(),taocanProjUse.getFailTime(),taocanProjUse.getSource(),taocanShoppingGoods.getCarUseCount());
            sumBanance += tempUse.getBalance();
            surplusCount += tempUse.getSurplusCount();
        }
        if (Dictionary.FLAG_NO_N.equals(taocanShoppingGoods.getIsCourse())) {
            //固定套餐,剩余次数等于绑定项目的次数
            taocanProjUse.setSurplusCount(surplusCount);
            //合计套餐余额
            taocanProjUse.setBalance(sumBanance);
        } else {
            //任选套餐剩余次数等于最大使用次数
            taocanProjUse.setSurplusCount(taocanShoppingGoods.getCarUseCount());
            taocanProjUse.setBalance(sysOrderItem.getZkPrice());
        }
        //合计套餐余额
        taocanProjUse.setBalance(sumBanance);
        sysProjUseDao.update(taocanProjUse);
    }