From 5503695fd8f8651f849e48a16a2cec8ca359da68 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 08 Jan 2025 15:27:21 +0800
Subject: [PATCH] refactor(mall): 优化订单服务中的优惠券和活动商品逻辑

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   37 ++++++++++---------------------------
 1 files changed, 10 insertions(+), 27 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 57034a7..cf964c3 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -87,6 +87,7 @@
     private final CouponGoodsMapper couponGoodsMapper;
 
     private final IMallVipConfigService mallVipConfigService;
+    private final MallActivityMapper mallActivityMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -294,17 +295,7 @@
             return couponAmountMap;
         }
 
-
-        Long couponId = mallMemberCoupon.getCouponId();//优惠卷ID
-        List<Long> goodsIdsAll = couponGoodsMapper.selectByCouponId(couponId);
-        List<MallGoodsSku> skusAll = mallGoodsSkuMapper.selectSkuIdsByGoodsId(goodsIdsAll);//获取该优惠卷绑定的全部商品sku
-        Set<Long> skuIdsAll = skusAll.stream().map(MallGoodsSku::getId).collect(Collectors.toSet());//获取该优惠卷绑定的全部商品skuIDS
-        Set<Long> skuIds = items.stream().map(AddOrderItemDto::getSkuId).collect(Collectors.toSet());//订单中的全部skuIds
-
-        // 获取交集
-        Set<Long> intersection = skuIds.stream()
-                .filter(skuIdsAll::contains)
-                .collect(Collectors.toSet());
+        Set<Long> intersection = items.stream().map(AddOrderItemDto::getSkuId).collect(Collectors.toSet());//订单中的全部skuIds
 
         if (intersection.isEmpty()) {
             return couponAmountMap;
@@ -1017,22 +1008,6 @@
             if (sku == null) {
                 return new FebsResponse().fail().message("购买商品或sku不存在");
             }
-//            if("样品".equals(sku.getSample())){
-//                List<MallOrderItem> mallOrderItems = mallOrderItemMapper.selectItemBySkuIdUnCancel(sku.getId(), member.getId());
-//                if (CollUtil.isNotEmpty(mallOrderItems)) {
-//                    return new FebsResponse().fail().message("样品只能购买一次");
-//                }
-//                Integer cnt = item.getCnt();
-//                if(1 < cnt){
-//                    return new FebsResponse().fail().message("样品只能购买一件");
-//                }
-//            }else{
-//                //验证用户的等级
-//                if(AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())){
-//                    return new FebsResponse().fail().message("请先申请成为合伙人");
-//                }
-//            }
-
             if (sku.getStock() < item.getCnt()) {
                 return new FebsResponse().fail().message(sku.getSkuName() + "库存不足");
             }
@@ -1041,6 +1016,14 @@
             if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
                 return new FebsResponse().fail().message(mallGoods.getGoodsName() + "已下架");
             }
+            if(GoodsTypeEnum.HUO_DONG.getValue() == mallGoods.getIsNormal()){
+                //活动商品判断是否在活动进行中
+                MallActivity mallActivity = mallActivityMapper.selectById(mallGoods.getActivityId());
+                if(mallActivity == null || mallActivity.getState() != 2){
+                    return new FebsResponse().fail().message("活动不在进行中");
+                }
+            }
+
         }
 
         return new FebsResponse().success();

--
Gitblit v1.9.1