From c448fbec7a77c2a7baf1cb8afef61723dcf69696 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Sun, 13 Mar 2022 23:12:16 +0800
Subject: [PATCH] 重构:套餐项目

---
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java |  279 -------------------------------------------------------
 1 files changed, 2 insertions(+), 277 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
index ed9cb4b..99bff37 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -42,7 +42,6 @@
 import com.matrix.system.score.service.ScoreVipDetailService;
 import com.matrix.system.shopXcx.mqTask.AsyncMessageRouting;
 import com.matrix.system.wechart.templateMsg.UniformMsgParam;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -144,9 +143,6 @@
 
     @Autowired
     private SysOrderServiceHelper sysOrderServiceHelper;
-
-    @Autowired
-    private SysProjServicesService projServicesService;
 
 
 
@@ -501,14 +497,13 @@
         sysOrderServiceHelper.addTaocanProj(pageOrder);
 
         // 新增出库单
-        addOutStore(pageOrder);
+        sysOrderServiceHelper.addOutStore(pageOrder);
 
         // 设置业绩
         achieveNewService.addAchaeveByOrder(pageOrder);
 
-
         //设置会员积分
-        addVipScore(pageOrder);
+        sysOrderServiceHelper.addVipScore(pageOrder);
 
         //保存订单收款日志
         saveOrderSkLog(pageOrder);
@@ -636,159 +631,6 @@
     }
 
 
-    /**
-     * 设置会员消费积分
-     * @param pageOrder
-     */
-    private void addVipScore(SysOrder pageOrder) {
-
-        SysVipInfo vipInfo = sysVipInfoDao.selectById(pageOrder.getVipId());
-
-        List<SysOrderFlow> flows = pageOrder.getFlows();
-        int[] cashScore = {0, 0, 0};
-        //现金支付金额
-        BigDecimal cashPayAmount = flows.stream()
-                .filter(item -> (!item.getPayMethod().equals("储值卡")) && (!item.getPayMethod().equals("欠款")))
-                .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-        BusParameterSettings cashConsumption = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.CASH_CONSUMPTION, vipInfo.getCompanyId());
-        if (cashPayAmount != null
-                && cashPayAmount.compareTo(BigDecimal.ZERO) > 0
-                && StringUtils.isNotBlank(cashConsumption.getParamValue())) {
-
-            BigDecimal scoreSetting0 = new BigDecimal(cashConsumption.getParamValue());
-            if (scoreSetting0.compareTo(BigDecimal.ZERO) > 0) {
-                cashScore[0] = cashPayAmount.divide(scoreSetting0).intValue();
-            }
-
-            if (StringUtils.isNotBlank(cashConsumption.getParamValue1())) {
-                BigDecimal scoreSetting1 = new BigDecimal(cashConsumption.getParamValue1());
-                if (scoreSetting1.compareTo(BigDecimal.ZERO) > 0) {
-                    cashScore[1] = cashPayAmount.divide(scoreSetting1).intValue();
-                }
-
-            }
-
-            if (StringUtils.isNotBlank(cashConsumption.getParamValue2())) {
-                BigDecimal scoreSetting2 = new BigDecimal(cashConsumption.getParamValue2());
-                if (scoreSetting2.compareTo(BigDecimal.ZERO) > 0) {
-                    cashScore[2] = cashPayAmount.divide(scoreSetting2).intValue();
-                }
-
-            }
-        }
-
-        int[] cardScore = {0, 0, 0};
-        //储值卡本金支付金额
-        BigDecimal cardPayAmount = flows.stream()
-                .filter(item -> item.getPayMethod().equals("储值卡") && item.getIsGift().equals("N"))
-                .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-
-        BusParameterSettings principalBalanceConsumption = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.PRINCIPAL_BALANCE_CONSUMPTION, vipInfo.getCompanyId());
-        if (cardPayAmount != null
-                && cardPayAmount.compareTo(BigDecimal.ZERO) > 0
-                && StringUtils.isNotBlank(principalBalanceConsumption.getParamValue())) {
-
-            BigDecimal scoreSetting0 = new BigDecimal(principalBalanceConsumption.getParamValue());
-            if (scoreSetting0.compareTo(BigDecimal.ZERO) > 0) {
-                cardScore[0] = cardPayAmount.divide(scoreSetting0).intValue();
-            }
-
-            if (StringUtils.isNotBlank(principalBalanceConsumption.getParamValue1())) {
-                BigDecimal scoreSetting1 = new BigDecimal(principalBalanceConsumption.getParamValue1());
-                if (scoreSetting1.compareTo(BigDecimal.ZERO) > 0) {
-                    cardScore[1] = cardPayAmount.divide(scoreSetting1).intValue();
-                }
-            }
-
-            if (StringUtils.isNotBlank(principalBalanceConsumption.getParamValue2())) {
-                BigDecimal scoreSetting2 = new BigDecimal(principalBalanceConsumption.getParamValue2());
-                if (scoreSetting2.compareTo(BigDecimal.ZERO) > 0) {
-                    cardScore[2] = cardPayAmount.divide(scoreSetting2).intValue();
-                }
-            }
-        }
-
-        int[] giftScore = {0, 0, 0};
-        //储值卡本赠送付金额
-        BigDecimal giftPayAmount = flows.stream()
-                .filter(item -> item.getPayMethod().equals("储值卡") && item.getIsGift().equals("Y"))
-                .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-        BusParameterSettings bonusBalanceConsumption = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.BONUS_BALANCE_CONSUMPTION, vipInfo.getCompanyId());
-        if (giftPayAmount != null
-                && giftPayAmount.compareTo(BigDecimal.ZERO) > 0
-                && StringUtils.isNotBlank(bonusBalanceConsumption.getParamValue())) {
-
-            BigDecimal scoreSetting0 = new BigDecimal(bonusBalanceConsumption.getParamValue());
-            if (scoreSetting0.compareTo(BigDecimal.ZERO) > 0) {
-                giftScore[0] = giftPayAmount.divide(scoreSetting0).intValue();
-            }
-
-            if (StringUtils.isNotBlank(bonusBalanceConsumption.getParamValue1())) {
-                BigDecimal scoreSetting1 = new BigDecimal(bonusBalanceConsumption.getParamValue1());
-                if (scoreSetting1.compareTo(BigDecimal.ZERO) > 0) {
-                    giftScore[1] = giftPayAmount.divide(scoreSetting1).intValue();
-                }
-            }
-
-            if (StringUtils.isNotBlank(bonusBalanceConsumption.getParamValue2())) {
-                BigDecimal scoreSetting2 = new BigDecimal(bonusBalanceConsumption.getParamValue2());
-                if (scoreSetting2.compareTo(BigDecimal.ZERO) > 0) {
-                    giftScore[2] = giftPayAmount.divide(scoreSetting2).intValue();
-                }
-            }
-        }
-
-        int selfScore = cashScore[0] + cardScore[0] + giftScore[0];
-        int parentScore = cashScore[1] + cardScore[1] + giftScore[1];
-        int topParentScore = cashScore[2] + cardScore[2] + giftScore[2];
-
-
-        //添加自己的积分
-        if (selfScore > 0) {
-            scoreVipDetailService.addScore(
-                    vipInfo.getId(),
-                    pageOrder.getStaffId(),
-                    pageOrder.getShopId(),
-                    selfScore,
-                    pageOrder.getId(),
-                    ScoreVipDetail.SCORE_VIP_TYPE_CASH,
-                    "消费奖励"
-            );
-        }
-
-        if (vipInfo.getRecommendId() != null) {
-            //推荐注册老带新积分奖励
-            SysVipInfo referrerVip = sysVipInfoDao.selectById(vipInfo.getRecommendId());
-            if (parentScore > 0) {
-                scoreVipDetailService.addScore(
-                        referrerVip.getId(),
-                        pageOrder.getStaffId(),
-                        pageOrder.getShopId(),
-                        parentScore,
-                        pageOrder.getId(),
-                        ScoreVipDetail.SCORE_VIP_TYPE_CASH,
-                        "推荐消费奖励"
-                );
-            }
-            //推荐注册二级带新积分奖励
-            if (referrerVip.getRecommendId() != null) {
-                SysVipInfo topVipInfo = sysVipInfoDao.selectById(referrerVip.getRecommendId());
-                if (topParentScore > 0) {
-                    scoreVipDetailService.addScore(
-                            topVipInfo.getId(),
-                            pageOrder.getStaffId(),
-                            pageOrder.getShopId(),
-                            topParentScore,
-                            pageOrder.getId(),
-                            ScoreVipDetail.SCORE_VIP_TYPE_CASH,
-                            "推荐消费奖励"
-                    );
-                }
-            }
-        }
-    }
-
-
 
 
 
@@ -802,7 +644,6 @@
     @Override
     public void updateAfterMoney(SysOrder pageOrder) {
         SysOrder sourceOrder = sysOrderDao.selectById(pageOrder.getId());
-
 
         //添加支付流水
         sysOrderServiceHelper.addOrderFlow(pageOrder,true);
@@ -836,122 +677,6 @@
     }
 
 
-    /**
-     * @param order 新增出库单并更新本店库存
-     * @author:姜友瑶
-     * @date 2016年9月2日
-     */
-    @Override
-    public void addOutStore(SysOrder order) {
-
-        BusParameterSettings manageStockSetting = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WAREHOUSE_MANAGE_STOCK, order.getCompanyId());
-        if (AppConstance.IS_Y.equals(manageStockSetting.getParamValue())) {
-
-            List<SysOutStoreItem> storeItemList = new ArrayList<>();
-
-            for (SysOrderItem sysOrderItem : order.getItems()) {
-
-                if (ShoppingGoods.SHOPPING_GOODS_TYPE_JJCP.equals(sysOrderItem.getType())) {
-
-                    SysOutStoreItem storeItem = new SysOutStoreItem();
-                    storeItem.setSkuId(sysOrderItem.getGoodsId());
-                    storeItem.setAmount(Double.valueOf(sysOrderItem.getCount()));
-                    storeItemList.add(storeItem);
-
-                } else if (ShoppingGoods.SHOPPING_GOODS_TYPE_TC.equals(sysOrderItem.getType())
-
-                        || ShoppingGoods.SHOPPING_GOODS_TYPE_ZHK.equals(sysOrderItem.getType())) {
-
-                    List<ShoppingGoodsAssemble> goodsList = new ArrayList<>();
-
-                    goodsList.addAll(shoppingGoodsAssembleDao.selectGoodsByShoppingGoodsIdAndType(sysOrderItem.getGoodsId(), ShoppingGoods.SHOPPING_GOODS_TYPE_JJCP));
-
-                    if (ShoppingGoods.SHOPPING_GOODS_TYPE_ZHK.equals(sysOrderItem.getType())) {
-                        //综合卡处理,中的套餐,中的家居产品
-                        List<ShoppingGoodsAssemble> zhkAssemble = shoppingGoodsAssembleDao.selectGoodsByShoppingGoodsIdAndType(sysOrderItem.getGoodsId(), ShoppingGoods.SHOPPING_GOODS_TYPE_TC);
-                        zhkAssemble.forEach(item -> {
-                            goodsList.addAll(shoppingGoodsAssembleDao.selectGoodsByShoppingGoodsIdAndType(item.getAssembleGoodId(), ShoppingGoods.SHOPPING_GOODS_TYPE_JJCP));
-                        });
-                    }
-
-                    goodsList.forEach(item -> {
-                        SysOutStoreItem storeItem = new SysOutStoreItem();
-                        storeItem.setSkuId(item.getAssembleGoodId());
-                        storeItem.setAmount(Double.valueOf(item.getTotal()));
-                        storeItemList.add(storeItem);
-                    });
-                }
-            }
-
-            if (CollectionUtils.isNotEmpty(storeItemList)) {
-                Long warehouseId = warehouseDao.findShopWarehouse(order.getShopId()).get(0).getId();
-                SysOutStore outStore = new SysOutStore();
-                outStore.setOutStoreNo(codeService.getOutStoreCode());
-                outStore.setOrderId(order.getId());
-                outStore.setShopId(order.getShopId());
-                outStore.setShopId(order.getShopId());
-                outStore.setStaffId(order.getStaffId());
-                outStore.setType(Dictionary.OUT_STORE_JJCPCK);
-                outStore.setServiceNo(order.getOrderNo());
-                outStore.setTime(new Date());
-                outStore.setCheckStatus(Dictionary.CHECK_STATUS_DSH);
-                outStore.setCompanyId(order.getCompanyId());
-                sysOutStoreDao.insert(outStore);
-
-                //出库明细,根据批次维度定义
-                List<SysOutStoreItem> realOutStoreItemList = new ArrayList<>();
-
-                storeItemList.forEach(outStoreItem -> {
-
-                    //设置出库主键
-                    outStoreItem.setOutStoreId(outStore.getId());
-
-                    //计算库存总数是否满足本次扣减的需求
-                    List<SysStoreInfo> stores = storeInfoDao.selectStoInfoBySku(outStoreItem.getSkuId(), warehouseId);
-                    double sum = stores.stream().mapToDouble(item -> item.getStoreTotal()).sum();
-                    if (sum < outStoreItem.getAmount()) {
-                        ShoppingGoods sysGoods = shoppingGoodsDao.selectById(outStoreItem.getSkuId());
-                        if (sysGoods != null) {
-                            throw new GlobleException("出库失败:【" + sysGoods.getName() + "库存不足】");
-
-                        } else {
-                            throw new GlobleException("出库失败没有找到出库产品");
-                        }
-                    }
-
-                    //循环获取所有批次产品,并扣减库存
-                    Double number = outStoreItem.getAmount();
-                    for (SysStoreInfo storeInfo : stores) {
-                        Double oldStoreTotal = storeInfo.getStoreTotal();
-                        Double surplus = storeInfo.getStoreTotal() - number;
-                        //更新库存
-                        storeInfo.setStoreTotal(surplus < 0 ? 0 : surplus);
-
-                        //每次扣减库存都创建一个出库记录
-                        SysOutStoreItem sysOutStoreItem = new SysOutStoreItem();
-                        BeanUtils.copyProperties(outStoreItem, sysOutStoreItem);
-                        sysOutStoreItem.setStoreId(storeInfo.getId());
-                        sysOutStoreItem.setAmount(oldStoreTotal - storeInfo.getStoreTotal());
-                        realOutStoreItemList.add(sysOutStoreItem);
-
-                        storeInfoDao.update(storeInfo);
-                        //扣除后剩余库存大于0则跳出扣除,否则剩余数量的负数的绝对值就是再次扣减的数量
-                        if (surplus > 0) {
-                            break;
-                        } else {
-                            number = Math.abs(surplus);
-                        }
-                    }
-                });
-                sysOutStoreItemDao.batchInsert(realOutStoreItemList);
-            }
-
-        } else {
-            LogUtil.debug("不管理库存");
-        }
-
-
-    }
 
 
 

--
Gitblit v1.9.1