| 
					
				 | 
			
			
				@@ -1672,260 +1672,12 @@ public class GoodsServiceImpl implements GoodsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * 1.首先根据商品条码跟门店id查询是否有库存,没库存直接返回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         goods.setDiscountedPrice(new BigDecimal(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal retailPrice = goods.getRetailPrice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         goods.setActualPaymentAmount(retailPrice.setScale(2,RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String,Object> skuActivitiesMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 2.查询当前时间,该门店是否有活动,如果有活动,查询开启了哪些营销方式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 参数: 当前时间  门店id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<MkActivitiesEntity> mkActivitiesEntityList = mkActivitiesService.queryByNow(storeId,format.format(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(mkActivitiesEntityList == null || mkActivitiesEntityList.size() == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 计算税费 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            GoodsEntity goodsEntity = goodsDao.queryByBarcodeAndSku(prodBarcode, goods.getGoodsSn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            BigDecimal tax = CalculateTax.calculateFinalTax(goodsEntity,goods.getActualPaymentAmount(),this).setScale(3,RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            goods.setGoodstaxes(tax.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            skuActivitiesMap.put("goods",goods); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return skuActivitiesMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 遍历活动集合,查询有哪些活动是开启的 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        boolean daily = false,coupon = false,combinationPrice = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ,discount = false,fullGift = false,fullReduction = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ,getOneFree = false,promotion = false,halfPrice = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> topicList = new ArrayList<>(); // 记录有哪些营销活动的topic 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<String,String> mkaIdMap = new HashMap<>(); // 记录topic跟mkaId的关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 将所有的营销活动新增到list中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(MkActivitiesEntity mkActivitiesEntity : mkActivitiesEntityList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            topicList.add(mkActivitiesEntity.getMkaTopic()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String mkaId = mkaIdMap.putIfAbsent(mkActivitiesEntity.getMkaTopic(), mkActivitiesEntity.getMkaId()+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(StringUtils.isNotEmpty(mkaId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//                mkaId = "'"+mkaId + "','" + mkActivitiesEntity.getMkaId()+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                mkaId += String.format(",%s",mkActivitiesEntity.getMkaId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                mkaIdMap.put(mkActivitiesEntity.getMkaTopic(),mkaId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 判断有哪些营销活动 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(topicList.contains("zhjsp")) // 组合价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            combinationPrice = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(topicList.contains("dz")) // 打折 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            discount = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(topicList.contains("mz")) //满赠 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            fullGift = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(topicList.contains("mj"))  // 满减 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            fullReduction = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(topicList.contains("mysy")) // 买一送一 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            getOneFree = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(topicList.contains("rchd")) // 日常活动 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            daily = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(topicList.contains("yhq")) // 优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            coupon = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(topicList.contains("lscx")) // 临时促销 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            promotion = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(topicList.contains("drjbj")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            halfPrice = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 获取未优惠前的商品价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        retailPrice = goods.getRetailPrice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 根据条码查询商品品牌名称 mall_brand  mall_product_store_rela  mall_goods 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String brandName = goods.getBrand(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 优先级:临时促销 》买一送一=满赠 》 组合价=日常活动 》 打折=满减 》 优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 组合价的做法就是将参与组合的条码带到收银端 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 现根据营销活动id跟条形码,查询有哪些参与该条码组合的商品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * TODO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(combinationPrice){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String mkaId = mkaIdMap.get("zhjsp"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Map<String,Object> param = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            param.put("mkaId",mkaId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            param.put("prodBarcode",prodBarcode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<MkActivitiesCombinationPriceEntity> combinationPriceList = combinationPriceService.queryList(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(combinationPriceList != null && combinationPriceList.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map<String, List<MkActivitiesCombinationPriceEntity>> collect = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        combinationPriceList.stream().collect(Collectors.groupingBy(MkActivitiesCombinationPriceEntity::getCombinationType)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                skuActivitiesMap.put("zhjsp",collect); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        format = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String nowTime = format.format(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 满减可能是跟着条码,也可能跟着品牌 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 根据商品品牌跟商品条码去查询是否有优惠金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 满足金额   购买商品条码   赠品条码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<String,Object> fullReductionMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(fullReduction){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String mkaId = mkaIdMap.get("mj"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MkActivitiesFullReductionEntity fullReductionEntity = fullReductionService.queryByCodeOrBrand(mkaId,prodBarcode,brandName,nowTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(fullReductionEntity != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(!StringUtils.isNullOrEmpty(fullReductionEntity.getProductBrand())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // 跟着品牌走 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    fullReductionMap.put(brandName,fullReductionEntity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // 跟着条码走 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    fullReductionMap.put(fullReductionEntity.getBarcode(), fullReductionEntity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                skuActivitiesMap.put("mj",fullReductionMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 满赠可能是跟着条码,也可能跟着品牌 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 根据商品品牌跟商品条码去查询是否有满赠 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 1.先扫买的商品,然后查询出赠送的商品条码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 2.先扫赠的商品,然后查询出符合条件的商品条码或者品牌 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 满足的金额   购买的商品条码或者品牌   赠送的商品条码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * TODO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<String,Object> fullGiftMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(fullGift){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String mkaId = mkaIdMap.get("mz"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MkActivitiesFullGiftEntity giftEntity = fullGiftService.queryByCodeOrBrand(mkaId,prodBarcode,brandName,nowTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(giftEntity != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(giftEntity.getProductBrand() != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // 跟着品牌走 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    fullGiftMap.put(brandName,giftEntity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // 跟着条码走 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    fullGiftMap.put(giftEntity.getBarcode(), giftEntity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                skuActivitiesMap.put("mz",fullGiftMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 买一送一可能是跟着条码,也可能跟着品牌 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 根据商品品牌跟商品条码去查询是否有送的商品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 有两个场景 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 1.先扫买的商品,然后查询出赠送的商品条码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 2.先扫赠的商品,然后查询出符合条件的商品条码或者品牌 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 所以就需要一个map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * key为购买的商品条码或者商品品牌  value为赠送的商品条码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 但是品牌是根据条码查询的,所以最终map里面的结构是 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * key 商品条码 value 赠品条码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(getOneFree){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String mkaId = mkaIdMap.get("mysy"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MkActivitiesGetOneFreeGoodsEntity getOneFreeGoodsEntity = getOneFreeGoodsService.queryByCodeOrBrand(mkaId,prodBarcode,brandName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(getOneFreeGoodsEntity != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if("无".equals(getOneFreeGoodsEntity.getProductBrand())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    getOneFreeGoodsEntity.setBrand(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    skuActivitiesMap.put("mysy",getOneFreeGoodsEntity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    getOneFreeGoodsEntity.setBrand(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    skuActivitiesMap.put("mysy",getOneFreeGoodsEntity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 第二份半价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(halfPrice){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String mkaId = mkaIdMap.get("drjbj"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MkActivitiesHalfPriceEntity activitiesHalfPriceEntity = halfPriceService.queryByCodeOrBrand(mkaId,prodBarcode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(activitiesHalfPriceEntity != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                skuActivitiesMap.put("drjbj",activitiesHalfPriceEntity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // -------------------------------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 优惠券跟着条形码走,一般是设置一个标识,然后最后输入优惠券码后,减扣对应的标识,所以返回一个map数组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(coupon){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String mkaId = mkaIdMap.get("yhq"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MkActivitiesCouponEntity couponEntity =  couponService.queryByBarCode(mkaId,prodBarcode,nowTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(couponEntity != null){ // 优惠券码,优惠金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map<String,Object> returnMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                returnMap.put(couponEntity.getCouponSn() , couponEntity.getCouponPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                skuActivitiesMap.put("yhq",returnMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 打折的价格是与条形码对应的,所以需要根据条形码和营销方式id去查询活动价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(discount){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String mkaId = mkaIdMap.get("dz"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MkActivitiesDiscountEntity discountEntity =  discountService.queryByBarCode(mkaId,prodBarcode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // TODO 可能会直接替代产品价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (discountEntity != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goods.setActualPaymentAmount(discountEntity.getActivityPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goods.setRetailPrice(discountEntity.getActivityPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goods.setActivity("打折"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 日常活动跟着条形码走,优先级比临时促销低,但是高于正常价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(daily){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String mkaId = mkaIdMap.get("rchd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MkDailyActivitiesEntity dailyActivitiesEntity = dailyActivitiesService.queryByBarCode(mkaId,prodBarcode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(dailyActivitiesEntity != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goods.setActualPaymentAmount(dailyActivitiesEntity.getActivityPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goods.setRetailPrice(dailyActivitiesEntity.getActivityPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goods.setActivity("日常活动"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 临时促销跟着条形码走,优先级应该最高,所以排到了最下面 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(promotion){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String mkaId = mkaIdMap.get("lscx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MkActivitiesPromotionEntity promotionEntity = promotionService.queryByBarCode(mkaId,prodBarcode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 如果该商品存在临时促销,直接替换活动价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(promotionEntity != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goods.setActualPaymentAmount(promotionEntity.getActivityPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goods.setRetailPrice(promotionEntity.getActivityPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goods.setActivity("临时促销"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 计算税费 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         GoodsEntity goodsEntity = goodsDao.queryByBarcodeAndSku(prodBarcode, goods.getGoodsSn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal tax = CalculateTax.calculateFinalTax(goodsEntity,goods.getActualPaymentAmount(),this).setScale(3,RoundingMode.HALF_UP); 
			 |