Ver código fonte

修复满减优惠异常问题

codingliang 1 ano atrás
pai
commit
b400222b76

+ 9 - 4
src/main/java/com/sqx/modules/activity/service/impl/ActivityServiceImpl.java

@@ -383,15 +383,20 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityDao, Activity> impl
         // 满减优惠
         if (ActivityTypeEnum.FULL.getTypeCode().equals(type)) {
             // 查询符合条件的商品
-            applyGoodsIds = activityGoodsService.getByActivityShopId(shopActivityBO.getActivityShopId());
+            List<Long> curShopActivityGoodsIds = activityGoodsService.getByActivityShopId(shopActivityBO.getActivityShopId());
 
-            orderGoodsList.stream()
-                    .filter(orderGoods -> applyGoodsIds.contains(orderGoods.getGoodsId()))
+            applyGoodsIds = orderGoodsList.stream()
+                    .filter(orderGoods -> curShopActivityGoodsIds.contains(orderGoods.getGoodsId()))
+                    .map(OrderGoods::getId)
+                    .collect(Collectors.toList());
+
+            curSuitGoodsTotalPrice = orderGoodsList.stream()
+                    .filter(orderGoods -> curShopActivityGoodsIds.contains(orderGoods.getGoodsId()))
                     .mapToDouble(orderGoods -> orderGoods.getGoodsPrice().multiply(new BigDecimal(orderGoods.getGoodsNum().toString())).doubleValue())
                     .sum();
 
             applyGoodsNames = orderGoodsList.stream()
-                    .filter(orderGoods -> applyGoodsIds.contains(orderGoods.getGoodsId()))
+                    .filter(orderGoods -> curShopActivityGoodsIds.contains(orderGoods.getGoodsId()))
                     .map(OrderGoods::getGoodsName)
                     .collect(Collectors.toList());
         }

+ 2 - 1
src/main/java/com/sqx/modules/activity/service/impl/ActivityShopServiceImpl.java

@@ -58,6 +58,7 @@ public class ActivityShopServiceImpl extends ServiceImpl<ActivityShopDao, Activi
     private final SysUserShopService sysUserShopService;
 
     @Override
+    @Transactional
     public List<Long> joinActivity(JoinActivityDTO dto) {
         Long activityId = dto.getActivityId();
 
@@ -107,7 +108,7 @@ public class ActivityShopServiceImpl extends ServiceImpl<ActivityShopDao, Activi
                 List<Long> goodsIds = goodsService.getByAllGoodsIdByShopId(activityShop.getShopId());
 
                 ActivityGoodsDTO activityGoodsDTO = new ActivityGoodsDTO();
-                activityGoodsDTO.setActivityShopId(activityShop.getShopId());
+                activityGoodsDTO.setActivityShopId(activityShop.getId());
                 activityGoodsDTO.setGoodsIds(goodsIds);
 
                 activityGoodsService.updateActivityGoods(activityGoodsDTO);