diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuPromotionRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuPromotionRender.java index 69c25d01..96e243e0 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuPromotionRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuPromotionRender.java @@ -1,13 +1,17 @@ package cn.lili.modules.order.cart.render.impl; +import cn.lili.common.security.context.UserContext; import cn.lili.common.utils.CurrencyUtil; import cn.lili.modules.order.cart.entity.dto.TradeDTO; -import cn.lili.modules.order.cart.entity.enums.CartTypeEnum; import cn.lili.modules.order.cart.entity.enums.RenderStepEnums; import cn.lili.modules.order.cart.entity.vo.CartSkuVO; import cn.lili.modules.order.cart.entity.vo.CartVO; import cn.lili.modules.order.cart.render.CartRenderStep; import cn.lili.modules.order.order.entity.dto.PriceDetailDTO; +import cn.lili.modules.promotion.entity.enums.KanJiaStatusEnum; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivitySearchParams; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityVO; +import cn.lili.modules.promotion.service.KanjiaActivityService; import cn.lili.modules.promotion.service.PromotionGoodsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -28,6 +32,9 @@ public class SkuPromotionRender implements CartRenderStep { @Autowired private PromotionGoodsService promotionGoodsService; + @Autowired + private KanjiaActivityService kanjiaActivityService; + @Override public RenderStepEnums step() { return RenderStepEnums.SKU_PROMOTION; @@ -70,11 +77,35 @@ public class SkuPromotionRender implements CartRenderStep { switch (tradeDTO.getCartTypeEnum()) { case POINTS: + //处理积分商品购买 for (CartVO cartVO : tradeDTO.getCartList()) { for (CartSkuVO cartSkuVO : cartVO.getSkuList()) { cartSkuVO.getPriceDetailDTO().setPayPoint(cartSkuVO.getPoint()); } } + return; + + + case KANJIA: + for (CartVO cartVO : tradeDTO.getCartList()) { + for (CartSkuVO cartSkuVO : cartVO.getSkuList()) { + KanjiaActivitySearchParams kanjiaActivitySearchParams = new KanjiaActivitySearchParams(); + kanjiaActivitySearchParams.setGoodsSkuId(cartSkuVO.getGoodsSku().getId()); + kanjiaActivitySearchParams.setMemberId(UserContext.getCurrentUser().getId()); + kanjiaActivitySearchParams.setStatus(KanJiaStatusEnum.SUCCESS.name()); + KanjiaActivityVO kanjiaActivityVO = kanjiaActivityService.getKanjiaActivityVO(kanjiaActivitySearchParams); + //可以砍价金额购买,则处理信息 + if (kanjiaActivityVO.getPass()) { + cartSkuVO.setKanjiaId(kanjiaActivityVO.getId()); + cartSkuVO.setPurchasePrice(kanjiaActivityVO.getPurchasePrice()); + cartSkuVO.setSubTotal(kanjiaActivityVO.getPurchasePrice()); + cartSkuVO.getPriceDetailDTO().setGoodsPrice(kanjiaActivityVO.getPurchasePrice()); + } + } + } + return; + + case PINTUAN: case CART: case BUY_NOW: case VIRTUAL: @@ -86,14 +117,6 @@ public class SkuPromotionRender implements CartRenderStep { return; default: } - - //非积分商品、拼团、砍价商品可渲染满优惠活动 - //这里普通购物车也只渲染满优惠,其他优惠都是商品级别的,都写在商品属性里 - if (!tradeDTO.getCartTypeEnum().equals(CartTypeEnum.POINTS) - && !tradeDTO.getCartTypeEnum().equals(CartTypeEnum.PINTUAN) - && !tradeDTO.getCartTypeEnum().equals(CartTypeEnum.KANJIA)) { - - } } diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivitySearchParams.java b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivitySearchParams.java index 0b2bceb2..0bb6b2b2 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivitySearchParams.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivitySearchParams.java @@ -29,14 +29,19 @@ public class KanjiaActivitySearchParams { @ApiModelProperty(value = "邀请活动ID,有值说明是被邀请人") private String kanjiaActivityId; + @ApiModelProperty(value = "规格商品ID" ,hidden = true) + private String goodsSkuId; + public QueryWrapper wrapper() { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(StrUtil.isNotEmpty(id), "id", id); + queryWrapper.eq(StrUtil.isNotEmpty(kanjiaActivityId), "id", kanjiaActivityId); queryWrapper.eq(StrUtil.isNotEmpty(kanjiaActivityGoodsId), "kanjia_activity_goods_id", kanjiaActivityGoodsId); + queryWrapper.eq(StrUtil.isNotEmpty(goodsSkuId), "sku_id", goodsSkuId); queryWrapper.eq(StrUtil.isNotEmpty(memberId), "member_id", memberId); queryWrapper.eq(StrUtil.isNotEmpty(status), "status", status); return queryWrapper; } } + diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityServiceImpl.java index 8a74fd8d..718a515f 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityServiceImpl.java @@ -73,20 +73,18 @@ public class KanjiaActivityServiceImpl extends ServiceImpl() - .eq(KanjiaActivityLog::getKanjiaActivityId, kanjiaActivity.getId()) - .eq(KanjiaActivityLog::getKanjiaMemberId, UserContext.getCurrentUser().getId())); - if (kanjiaActivityLog == null) { - kanjiaActivityVO.setHelp(true); - } - //判断活动已通过并且是当前用户发起的砍价则可以进行购买 - if (kanjiaActivity.getStatus().equals(KanJiaStatusEnum.SUCCESS.name()) && - kanjiaActivity.getMemberId().equals(UserContext.getCurrentUser().getId())) { - kanjiaActivityVO.setPass(true); - } + kanjiaActivityVO.setLaunch(true); + //如果已发起砍价判断用户是否可以砍价 + KanjiaActivityLog kanjiaActivityLog = kanjiaActivityLogService.getOne(new LambdaQueryWrapper() + .eq(KanjiaActivityLog::getKanjiaActivityId, kanjiaActivity.getId()) + .eq(KanjiaActivityLog::getKanjiaMemberId, UserContext.getCurrentUser().getId())); + if (kanjiaActivityLog == null) { + kanjiaActivityVO.setHelp(true); + } + //判断活动已通过并且是当前用户发起的砍价则可以进行购买 + if (kanjiaActivity.getStatus().equals(KanJiaStatusEnum.SUCCESS.name()) && + kanjiaActivity.getMemberId().equals(UserContext.getCurrentUser().getId())) { + kanjiaActivityVO.setPass(true); } return kanjiaActivityVO; }