| 
					
				 | 
			
			
				@@ -8,10 +8,8 @@ import com.google.common.collect.ImmutableBiMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.common.collect.Maps; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.gson.Gson; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.gson.internal.LinkedTreeMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.kmall.admin.biz.CustomsClearanceTimeliness; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.dao.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.dao.alarm.Mall2LowPriceWarningDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.kmall.admin.dao.haikong.HaiKongMemberScoreChangeRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.dao.mk.Mk2GoodsTopicPriceDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.dao.mk.Mk2MemberBirthdayDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.dao.mk.store.MkStorePromOrderRealDao; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -37,6 +35,7 @@ import com.kmall.admin.haikong.constant.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.haikong.dto.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.haikong.utils.ListUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.haikong.vo.CalculateOrderDiscountPriceResponseVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.kmall.admin.haikong.vo.PointsRulesAndDetailVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.haikong.vo.QueryGoodsVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.haikong.client.HaiKongMemberTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.haikong.client.HaiKongWarehouseTemplate; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -46,7 +45,6 @@ import com.kmall.admin.haikong.utils.Response; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.service.haikong.HaiKongMemberOrderSyncResendService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.service.haikong.HaiKongMemberScoreChangeRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.kmall.admin.service.kmall2eccs.KtoEccsService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.service.mk.MkActivitiesService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.service.mk.store.MkStoreCampMinusService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.service.mk.store.MkStoreTicketDiscountService; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -97,7 +95,6 @@ import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.util.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.awt.image.LookupOp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.RoundingMode; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2748,36 +2745,87 @@ public class OrderServiceImpl implements OrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 saleRecordDao.save(saleRecordEntity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // TODO 查询当前时间积分规则,根据积分生成规则进行增加会员积分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 查询当前时间积分规则以及明细,根据积分生成规则进行增加会员积分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Integer userEntityId = userEntity.getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Integer memberScore = order.getActual_price().intValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //List<Mall2PointsRulesEntity> mall2PointsRulesEntities = mall2PointsRulesService.queryListByTime(new Date()).stream().sorted().collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            /*mall2PointsRulesEntities.forEach(mall2PointsRulesEntity -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 查询明细 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 总的积分:基础积分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            AtomicReference<Integer> memberScore = new AtomicReference<>(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<PointsRulesAndDetailVO> pointsRulesAndDetailVOList = mall2PointsRulesService.queryListByTime(new Date()).stream().sorted().collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 商品map,key===>sku value===>金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String, BigDecimal> goodsMap = goodsEntities.stream().collect(Collectors.toMap(GoodsEntity::getSku, GoodsEntity::getActualPaymentAmount, (k1, k2) -> k2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 订单全部的sku 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Set<String> goodsSkuList = goodsMap.keySet(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 保存不在按商品计算积分的sku 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<String> nonGoodsSkuList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 保存不在按分类计算积分的sku,剩下的就按门店计算,如果门店积分规则没有设置。。。。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<String> nonCategorySkuList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pointsRulesAndDetailVOList.forEach(pointsRulesAndDetailVO -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Mall2PointsRulesEntity mall2PointsRulesEntity = pointsRulesAndDetailVO.getMall2PointsRulesEntity(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<Mall2RulesDto> mall2PointsRulesDetailList = pointsRulesAndDetailVO.getMall2PointsRulesDetailList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<String> skuList = mall2PointsRulesDetailList.stream().map(Mall2RulesDto::getPointsRulesName).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Integer pointsType = mall2PointsRulesEntity.getPointsType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 积分比例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal ratio = mall2PointsRulesEntity.getRatio(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (pointsType.equals(Constants.MemberScoreRulesEnum.TWO.getCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 商品,优先级最高,查询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    goodsSkuList.forEach(sku -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (skuList.contains(sku)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // 商品积分生成规则包含这个sku 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // 订单中该sku的总金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            BigDecimal money = goodsMap.get(sku); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (ratio.compareTo(BigDecimal.ZERO) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // 算出所积的分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                memberScore.set(money.multiply(ratio).add(new BigDecimal(memberScore.get())).intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // 积分比例设置为0,该商品不记积分。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                LOGGER.info("商品SKU:【{}】,积分生成规则设置积分比例为:{},故不产生积分!", sku, ratio); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // 不包含sku,则需要判断是否有其他规则 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            nonGoodsSkuList.add(sku); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else if (pointsType.equals(Constants.MemberScoreRulesEnum.ONE.getCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (pointsType.equals(Constants.MemberScoreRulesEnum.ONE.getCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 商品类别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else if (pointsType.equals(Constants.MemberScoreRulesEnum.ZERO.getCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    nonGoodsSkuList.forEach(sku -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (nonGoodsSkuList.contains(sku)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // 订单中该sku的总金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            BigDecimal money = goodsMap.get(sku); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (ratio.compareTo(BigDecimal.ZERO) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // 算出所积的分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                memberScore.set(money.multiply(ratio).add(new BigDecimal(memberScore.get())).intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            nonCategorySkuList.add(sku); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (pointsType.equals(Constants.MemberScoreRulesEnum.ZERO.getCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 门店 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    LOGGER.error("未知的积分生成规则类型:{}", pointsType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    nonCategorySkuList.forEach(sku -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (nonCategorySkuList.contains(sku)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // 订单中该sku的总金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            BigDecimal money = goodsMap.get(sku); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (ratio.compareTo(BigDecimal.ZERO) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // 算出所积的分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                memberScore.set(money.multiply(ratio).multiply(new BigDecimal(memberScore.get())).intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            });*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 增加该会员的积分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Mall2MemberPointsEntity memberPointsEntity = memberPointsDao.queryByUserId(userEntityId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (memberPointsEntity == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 memberPointsEntity = new Mall2MemberPointsEntity(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 memberPointsEntity.setUserId(userEntityId + ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                memberPointsEntity.setPoints(memberScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                memberPointsEntity.setPoints(memberScore.get()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 memberPointsEntity.setCreaterSn(userId + ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 memberPointsEntity.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 memberPointsDao.save(memberPointsEntity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                memberPointsEntity.setPoints(memberScore + memberPointsEntity.getPoints()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                memberPointsEntity.setPoints(memberScore.get() + memberPointsEntity.getPoints()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 memberPointsEntity.setModerSn(userId + ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 memberPointsEntity.setModTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 memberPointsDao.update(memberPointsEntity); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2802,10 +2850,9 @@ public class OrderServiceImpl implements OrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             int deductionScore = org.springframework.util.StringUtils.isEmpty(deductionScoreStr) ? 0 : Integer.parseInt(deductionScoreStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String memberPhone = String.valueOf(param.get("memberPhone")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BigDecimal scoreDeductionPrice = org.springframework.util.StringUtils.isEmpty(scoreDeductionPriceStr) ? BigDecimal.ZERO : new BigDecimal(scoreDeductionPriceStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Integer beforeScore = beforeScoreInteger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Integer afterScore = afterScoreStrInteger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            consumptionRecords.setBeforeScore(beforeScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            consumptionRecords.setAfterScore(afterScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            consumptionRecords.setBeforeScore(beforeScoreInteger); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            consumptionRecords.setAfterScore(afterScoreStrInteger); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // TODO 需要新增字段:订单赠送积分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             consumptionRecords.setOrderTotalPrice(order.getActual_price()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             consumptionRecords.setScoreDeductionPrice(scoreDeductionPrice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             consumptionRecords.setMemberCode(memberCode); 
			 |