砍价购买问题兼容处理

This commit is contained in:
Chopper 2021-08-27 15:35:03 +08:00
parent 603c1d6935
commit 771f9668ce
3 changed files with 50 additions and 24 deletions

View File

@ -1,13 +1,17 @@
package cn.lili.modules.order.cart.render.impl; package cn.lili.modules.order.cart.render.impl;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.CurrencyUtil; import cn.lili.common.utils.CurrencyUtil;
import cn.lili.modules.order.cart.entity.dto.TradeDTO; 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.enums.RenderStepEnums;
import cn.lili.modules.order.cart.entity.vo.CartSkuVO; import cn.lili.modules.order.cart.entity.vo.CartSkuVO;
import cn.lili.modules.order.cart.entity.vo.CartVO; import cn.lili.modules.order.cart.entity.vo.CartVO;
import cn.lili.modules.order.cart.render.CartRenderStep; import cn.lili.modules.order.cart.render.CartRenderStep;
import cn.lili.modules.order.order.entity.dto.PriceDetailDTO; 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 cn.lili.modules.promotion.service.PromotionGoodsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -28,6 +32,9 @@ public class SkuPromotionRender implements CartRenderStep {
@Autowired @Autowired
private PromotionGoodsService promotionGoodsService; private PromotionGoodsService promotionGoodsService;
@Autowired
private KanjiaActivityService kanjiaActivityService;
@Override @Override
public RenderStepEnums step() { public RenderStepEnums step() {
return RenderStepEnums.SKU_PROMOTION; return RenderStepEnums.SKU_PROMOTION;
@ -70,11 +77,35 @@ public class SkuPromotionRender implements CartRenderStep {
switch (tradeDTO.getCartTypeEnum()) { switch (tradeDTO.getCartTypeEnum()) {
case POINTS: case POINTS:
//处理积分商品购买
for (CartVO cartVO : tradeDTO.getCartList()) { for (CartVO cartVO : tradeDTO.getCartList()) {
for (CartSkuVO cartSkuVO : cartVO.getSkuList()) { for (CartSkuVO cartSkuVO : cartVO.getSkuList()) {
cartSkuVO.getPriceDetailDTO().setPayPoint(cartSkuVO.getPoint()); 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 CART:
case BUY_NOW: case BUY_NOW:
case VIRTUAL: case VIRTUAL:
@ -86,14 +117,6 @@ public class SkuPromotionRender implements CartRenderStep {
return; return;
default: default:
} }
//非积分商品拼团砍价商品可渲染满优惠活动
//这里普通购物车也只渲染满优惠其他优惠都是商品级别的都写在商品属性里
if (!tradeDTO.getCartTypeEnum().equals(CartTypeEnum.POINTS)
&& !tradeDTO.getCartTypeEnum().equals(CartTypeEnum.PINTUAN)
&& !tradeDTO.getCartTypeEnum().equals(CartTypeEnum.KANJIA)) {
}
} }

View File

@ -29,14 +29,19 @@ public class KanjiaActivitySearchParams {
@ApiModelProperty(value = "邀请活动ID有值说明是被邀请人") @ApiModelProperty(value = "邀请活动ID有值说明是被邀请人")
private String kanjiaActivityId; private String kanjiaActivityId;
@ApiModelProperty(value = "规格商品ID" ,hidden = true)
private String goodsSkuId;
public <T> QueryWrapper<T> wrapper() { public <T> QueryWrapper<T> wrapper() {
QueryWrapper<T> queryWrapper = new QueryWrapper<>(); QueryWrapper<T> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(StrUtil.isNotEmpty(id), "id", id);
queryWrapper.eq(StrUtil.isNotEmpty(kanjiaActivityId), "id", kanjiaActivityId); queryWrapper.eq(StrUtil.isNotEmpty(kanjiaActivityId), "id", kanjiaActivityId);
queryWrapper.eq(StrUtil.isNotEmpty(kanjiaActivityGoodsId), "kanjia_activity_goods_id", kanjiaActivityGoodsId); 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(memberId), "member_id", memberId);
queryWrapper.eq(StrUtil.isNotEmpty(status), "status", status); queryWrapper.eq(StrUtil.isNotEmpty(status), "status", status);
return queryWrapper; return queryWrapper;
} }
} }

View File

@ -73,20 +73,18 @@ public class KanjiaActivityServiceImpl extends ServiceImpl<KanJiaActivityMapper,
BeanUtil.copyProperties(kanjiaActivity, kanjiaActivityVO); BeanUtil.copyProperties(kanjiaActivity, kanjiaActivityVO);
//判断是否发起了砍价活动,如果发起可参与活动 //判断是否发起了砍价活动,如果发起可参与活动
if (kanjiaActivity != null) { kanjiaActivityVO.setLaunch(true);
kanjiaActivityVO.setLaunch(true); //如果已发起砍价判断用户是否可以砍价
//如果已发起砍价判断用户是否可以砍价 KanjiaActivityLog kanjiaActivityLog = kanjiaActivityLogService.getOne(new LambdaQueryWrapper<KanjiaActivityLog>()
KanjiaActivityLog kanjiaActivityLog = kanjiaActivityLogService.getOne(new LambdaQueryWrapper<KanjiaActivityLog>() .eq(KanjiaActivityLog::getKanjiaActivityId, kanjiaActivity.getId())
.eq(KanjiaActivityLog::getKanjiaActivityId, kanjiaActivity.getId()) .eq(KanjiaActivityLog::getKanjiaMemberId, UserContext.getCurrentUser().getId()));
.eq(KanjiaActivityLog::getKanjiaMemberId, UserContext.getCurrentUser().getId())); if (kanjiaActivityLog == null) {
if (kanjiaActivityLog == null) { kanjiaActivityVO.setHelp(true);
kanjiaActivityVO.setHelp(true); }
} //判断活动已通过并且是当前用户发起的砍价则可以进行购买
//判断活动已通过并且是当前用户发起的砍价则可以进行购买 if (kanjiaActivity.getStatus().equals(KanJiaStatusEnum.SUCCESS.name()) &&
if (kanjiaActivity.getStatus().equals(KanJiaStatusEnum.SUCCESS.name()) && kanjiaActivity.getMemberId().equals(UserContext.getCurrentUser().getId())) {
kanjiaActivity.getMemberId().equals(UserContext.getCurrentUser().getId())) { kanjiaActivityVO.setPass(true);
kanjiaActivityVO.setPass(true);
}
} }
return kanjiaActivityVO; return kanjiaActivityVO;
} }