Commit ef2565a0 by 周晓航

新增字段用于优惠券使用门槛

Signed-off-by: 周晓航 <xiaohang.zhou@freemud.com>
parent 8b9e5538
...@@ -220,6 +220,12 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV ...@@ -220,6 +220,12 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
*/ */
private CartGoodsStates cartGoodsStates; private CartGoodsStates cartGoodsStates;
/**
* fisherman 一单多券, 剔除购物车内券商品的使用门槛
*
*/
private Long useCouponThreshold ;
@Data @Data
public static class chooseGood { public static class chooseGood {
......
...@@ -13,6 +13,9 @@ ...@@ -13,6 +13,9 @@
package cn.freemud.enums; package cn.freemud.enums;
import java.util.Arrays;
import java.util.List;
public enum GoodsTypeEnum { public enum GoodsTypeEnum {
COMMON_GOODS(1, "正常商品"), COMMON_GOODS(1, "正常商品"),
...@@ -21,15 +24,19 @@ public enum GoodsTypeEnum { ...@@ -21,15 +24,19 @@ public enum GoodsTypeEnum {
SET_MEAL_GOODS(3, "套餐商品"), SET_MEAL_GOODS(3, "套餐商品"),
SKU_GOODS(4, "sku商品"), SKU_GOODS(4, "sku商品"),
SPU_GOODS(5, "spu商品"), SPU_GOODS(5, "spu商品"),
REDUCE_PRICE_GOODS(6,"超值加购商品"), REDUCE_PRICE_GOODS(6, "超值加购商品"),
ALL_COUPON_GOODS(8, "万能券商品"), ALL_COUPON_GOODS(8, "万能券商品"),
VIRTUAL_GOODS(9,"虚拟商品"), VIRTUAL_GOODS(9, "虚拟商品"),
BUY_M_SEND_N_COUPON(10, "买M送N券"), BUY_M_SEND_N_COUPON(10, "买M送N券"),
MATERIAL(88, "有加料的商品"), MATERIAL(88, "有加料的商品"),
EXCEPTION_GOODS(99, "异常商品:商品菜单变化导致和购物车不商品匹配"); EXCEPTION_GOODS(99, "异常商品:商品菜单变化导致和购物车不商品匹配");
private Integer goodsType; private Integer goodsType;
private String desc; private String desc;
public static List<Integer> couponTypeList = Arrays.asList(GoodsTypeEnum.COUPON_GOODS.getGoodsType(),
GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType(),
GoodsTypeEnum.BUY_M_SEND_N_COUPON.getGoodsType());
GoodsTypeEnum(Integer goodsType, String desc) { GoodsTypeEnum(Integer goodsType, String desc) {
this.goodsType = goodsType; this.goodsType = goodsType;
this.desc = desc; this.desc = desc;
......
...@@ -23,8 +23,6 @@ import cn.freemud.constant.ShoppingCartConstant; ...@@ -23,8 +23,6 @@ import cn.freemud.constant.ShoppingCartConstant;
import cn.freemud.demo.controller.ShoppingCartDemoController; import cn.freemud.demo.controller.ShoppingCartDemoController;
import cn.freemud.demo.entities.dto.goods.add.list.BaseListCartGoodsVO; import cn.freemud.demo.entities.dto.goods.add.list.BaseListCartGoodsVO;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean; import cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean;
import cn.freemud.entities.dto.activity.ActivityQueryDto; import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.activity.ActivityQueryResponseDto; import cn.freemud.entities.dto.activity.ActivityQueryResponseDto;
...@@ -869,7 +867,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -869,7 +867,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
updateForPopupWindow(shoppingCartGoodsResponseVo, premiumExchangeResponseVoBaseResponse.getResult().getShowType(), chooseSendGoodList, shoppingCartInfoRequestVo.getSendGoods()); updateForPopupWindow(shoppingCartGoodsResponseVo, premiumExchangeResponseVoBaseResponse.getResult().getShowType(), chooseSendGoodList, shoppingCartInfoRequestVo.getSendGoods());
} }
// 设置优惠券的使用门槛金额, 需要排除券的金额 // 设置优惠券的使用门槛金额, 需要排除券的金额
Long useCouponThreshold = this.getUseCouponThreshold(shoppingCartGoodsResponseVo.getProducts());
shoppingCartGoodsResponseVo.setUseCouponThreshold(useCouponThreshold);
// 校验入参券是否可用 // 校验入参券是否可用
if (!checkAvailableCoupon(shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo.getCouponCode())) { if (!checkAvailableCoupon(shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo.getCouponCode())) {
return ResponseUtil.error(ResponseResult.SHOPPING_CART_COUPON_NOT_USE); return ResponseUtil.error(ResponseResult.SHOPPING_CART_COUPON_NOT_USE);
...@@ -877,6 +876,22 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -877,6 +876,22 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return ResponseUtil.success(shoppingCartGoodsResponseVo); return ResponseUtil.success(shoppingCartGoodsResponseVo);
} }
/**
* 获取 券使用的门槛信息
* @param products
* @return
*/
private Long getUseCouponThreshold(List<CartGoods> products) {
Long useCouponThreshold = 0L;
if (CollectionUtils.isNotEmpty(products)) {
// 过滤出 活动商品 以及 优惠券商品 求和
return products.stream().filter(p -> !GoodsTypeEnum.couponTypeList.contains(p.getGoodsType()) && Objects.isNull(p.getActivityType()))
.mapToLong(CartGoods::getOriginalAmount)
.sum();
}
return useCouponThreshold;
}
public void updateForPopupWindow(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, Integer showType, List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList, public void updateForPopupWindow(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, Integer showType, List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList,
List<ShoppingCartInfoRequestVo.SendGoods> sendGoods) { List<ShoppingCartInfoRequestVo.SendGoods> sendGoods) {
if (Integer.valueOf("5").equals(showType) && !org.springframework.util.CollectionUtils.isEmpty(chooseSendGoodList)) { if (Integer.valueOf("5").equals(showType) && !org.springframework.util.CollectionUtils.isEmpty(chooseSendGoodList)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment