Commit 85b2fc29 by 周晓航

购物车兼并 配送券

Signed-off-by: 周晓航 <xiaohang.zhou@freemud.com>
parent 91b6c184
...@@ -552,7 +552,21 @@ public class CouponAdapter { ...@@ -552,7 +552,21 @@ public class CouponAdapter {
couponPromotionVO.setPartnerId(shoppingCartInfoRequestVo.getPartnerId()); couponPromotionVO.setPartnerId(shoppingCartInfoRequestVo.getPartnerId());
couponPromotionVO.setUserId(userLoginInfoDto.getMemberId()); couponPromotionVO.setUserId(userLoginInfoDto.getMemberId());
couponPromotionVO.setStoreId(shoppingCartInfoRequestVo.getShopId()); couponPromotionVO.setStoreId(shoppingCartInfoRequestVo.getShopId());
couponPromotionVO.setCouponCode(shoppingCartInfoRequestVo.getCouponCode()); // 删除配送券-> 商品券使用逻辑组装
List<ShoppingCartInfoRequestVo.couponCode> couponCodes = shoppingCartInfoRequestVo.getCouponCodes();
if (CollectionUtils.isEmpty(couponCodes)) {
couponPromotionVO.setCouponCode("");
}else {
ShoppingCartInfoRequestVo.couponCode otherCouponCode = couponCodes.stream()
.filter(couponCode -> !couponCode.getCouponType().equals(CouponTypeEnum.TYPE_5.getCode()))
// 只能使用一张券 排除配送券情况下
.findFirst().orElse(null);
if (otherCouponCode !=null) {
couponPromotionVO.setCouponCode(otherCouponCode.getCouponCode());
}else {
couponPromotionVO.setCouponCode("");
}
}
couponPromotionVO.setOrderType(shoppingCartInfoRequestVo.getOrderType()); couponPromotionVO.setOrderType(shoppingCartInfoRequestVo.getOrderType());
couponPromotionVO.setFlg(shoppingCartInfoRequestVo.getFlag()); couponPromotionVO.setFlg(shoppingCartInfoRequestVo.getFlag());
couponPromotionVO.setUnChooseCouponCode(shoppingCartInfoRequestVo.getUnChooseCouponCode()); couponPromotionVO.setUnChooseCouponCode(shoppingCartInfoRequestVo.getUnChooseCouponCode());
......
...@@ -207,6 +207,18 @@ public class ShoppingCartDemoController { ...@@ -207,6 +207,18 @@ public class ShoppingCartDemoController {
premiumRequest.setSessionId(listCartGoodsBO.getSessionId()); premiumRequest.setSessionId(listCartGoodsBO.getSessionId());
premiumRequest.setShopId(listCartGoodsBO.getShopId()); premiumRequest.setShopId(listCartGoodsBO.getShopId());
premiumRequest.setVersion(listCartGoodsBO.getVersion()); premiumRequest.setVersion(listCartGoodsBO.getVersion());
if (!CollectionUtils.isEmpty(baseRequestDTO.getCouponCodes())) {
List<PremiumExchangeRequestVo.couponCode> list = new ArrayList<>();
baseRequestDTO.getCouponCodes().forEach(couponCode -> {
PremiumExchangeRequestVo.couponCode vo = new PremiumExchangeRequestVo.couponCode();
vo.setActivityCode(couponCode.getActivityCode());
vo.setCouponCode(couponCode.getCouponCode());
vo.setCouponType(couponCode.getCouponType());
vo.setIndex(couponCode.getIndex());
list.add(vo);
});
premiumRequest.setCouponCodes(list);
}
BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).premiumExchange(premiumRequest); BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).premiumExchange(premiumRequest);
List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = null; List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = null;
if (premiumExchangeResponseVoBaseResponse != null && ResponseResult.SUCCESS.getCode().equals(premiumExchangeResponseVoBaseResponse.getCode()) if (premiumExchangeResponseVoBaseResponse != null && ResponseResult.SUCCESS.getCode().equals(premiumExchangeResponseVoBaseResponse.getCode())
......
...@@ -176,6 +176,11 @@ public class ListCartGoodsRequestDTO extends BaseRequestDTO { ...@@ -176,6 +176,11 @@ public class ListCartGoodsRequestDTO extends BaseRequestDTO {
* 顺序 * 顺序
*/ */
private Integer index; private Integer index;
/**
* 优惠券类型
*/
private Integer couponType;
} }
} }
...@@ -91,6 +91,10 @@ public class ActivityCalculationDiscountRequestDto { ...@@ -91,6 +91,10 @@ public class ActivityCalculationDiscountRequestDto {
* 购物车商品行uid(种子券商品才传) * 购物车商品行uid(种子券商品才传)
*/ */
private String cartGoodsUid; private String cartGoodsUid;
/**
* 优惠券类型
*/
private Integer couponType;
} }
@Data @Data
......
...@@ -94,6 +94,11 @@ public class CalculationSharingDiscountRequestDto { ...@@ -94,6 +94,11 @@ public class CalculationSharingDiscountRequestDto {
* 下标 * 下标
*/ */
private Integer useIndex; private Integer useIndex;
/**
* 优惠券类型
*/
private Integer couponType;
} }
@Data @Data
......
...@@ -5,6 +5,7 @@ import lombok.Data; ...@@ -5,6 +5,7 @@ import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty; import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
@Data @Data
public class PremiumExchangeRequestVo { public class PremiumExchangeRequestVo {
...@@ -46,4 +47,31 @@ public class PremiumExchangeRequestVo { ...@@ -46,4 +47,31 @@ public class PremiumExchangeRequestVo {
@NotNull(message = "menuType 不能为空") @NotNull(message = "menuType 不能为空")
private String menuType; private String menuType;
/**
* 优惠券code列表
*/
private List<couponCode> couponCodes;
@Data
public final static class couponCode {
/**
* 优惠券
*/
private String couponCode;
/**
* 活动号
*/
private String activityCode;
/**
* 顺序
*/
private Integer index;
/**
* 优惠券类型
*/
private Integer couponType;
}
} }
...@@ -230,6 +230,11 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo { ...@@ -230,6 +230,11 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
* 顺序 * 顺序
*/ */
private Integer index; private Integer index;
/**
* 优惠券类型
*/
private Integer couponType;
} }
/** /**
* 购买类型 0=普通购买 1=立即购买 ,默认值为普通购买 * 购买类型 0=普通购买 1=立即购买 ,默认值为普通购买
......
...@@ -5,7 +5,8 @@ public enum CouponTypeEnum { ...@@ -5,7 +5,8 @@ public enum CouponTypeEnum {
TYPE_0(0, "商品券"), TYPE_0(0, "商品券"),
TYPE_1(1, "代金券"), TYPE_1(1, "代金券"),
TYPE_3(3, "折扣券"), TYPE_3(3, "折扣券"),
TYPE_4(4, "换购券"); TYPE_4(4, "换购券"),
TYPE_5(5, "配送券");
private Integer code; private Integer code;
......
...@@ -12,6 +12,7 @@ import cn.freemud.entities.dto.activity.ActivityQueryDto; ...@@ -12,6 +12,7 @@ import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.ActivityChannelEnum; import cn.freemud.enums.ActivityChannelEnum;
import cn.freemud.enums.CouponTypeEnum;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.factory.AbstractShoppingCartImpl; import cn.freemud.factory.AbstractShoppingCartImpl;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
...@@ -433,8 +434,17 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -433,8 +434,17 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
String partnerId = shoppingCartInfoRequestVo.getPartnerId(); String partnerId = shoppingCartInfoRequestVo.getPartnerId();
String storeId = shoppingCartInfoRequestVo.getShopId(); String storeId = shoppingCartInfoRequestVo.getShopId();
String appId = shoppingCartInfoRequestVo.getAppId(); String appId = shoppingCartInfoRequestVo.getAppId();
String couponCode = shoppingCartInfoRequestVo.getCouponCode(); List<ShoppingCartInfoRequestVo.couponCode> couponCodes = shoppingCartInfoRequestVo.getCouponCodes();
String activityCode = shoppingCartInfoRequestVo.getActivityCode(); if (!CollectionUtils.isEmpty(couponCodes)) {
ShoppingCartInfoRequestVo.couponCode otherCouponCode = couponCodes.stream()
.filter(couponCode -> !couponCode.getCouponType().equals(CouponTypeEnum.TYPE_5.getCode()))
.findFirst().orElse(null);
if (otherCouponCode !=null) {
// 由于对下面逻辑 不是很清楚 并且修改了 优惠券传参规则 所以直接设置一遍 防止出错
shoppingCartInfoRequestVo.setCouponCode(otherCouponCode.getCouponCode());
shoppingCartInfoRequestVo.setActivityCode(otherCouponCode.getActivityCode());
}
}
String menuType = shoppingCartInfoRequestVo.getMenuType(); String menuType = shoppingCartInfoRequestVo.getMenuType();
Integer orderType = shoppingCartInfoRequestVo.getOrderType(); Integer orderType = shoppingCartInfoRequestVo.getOrderType();
String receiveId = shoppingCartInfoRequestVo.getReceiveId(); String receiveId = shoppingCartInfoRequestVo.getReceiveId();
...@@ -483,14 +493,26 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -483,14 +493,26 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
return ResponseUtil.error(ResponseResult.SHOPPING_CART_VERSION_ERROR, "购物车商品有变动,请手动刷新再修改"); return ResponseUtil.error(ResponseResult.SHOPPING_CART_VERSION_ERROR, "购物车商品有变动,请手动刷新再修改");
} }
// 下面代码 由于接口改动 已经不适用 begin
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>(); List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>();
// 当couponCode不为空时,需参与价格计算 // 当couponCode不为空时,需参与价格计算
if (StringUtils.isNotEmpty(couponCode)) { // if (StringUtils.isNotEmpty(couponCode)) {
ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon coupon = new ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon(); // ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon coupon = new ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon();
coupon.setCode(couponCode); // coupon.setCode(couponCode);
coupon.setActivityCode(activityCode); // coupon.setActivityCode(activityCode);
coupons.add(coupon); // coupons.add(coupon);
// }
// 上面代码 由于接口改动 已经不适用 end
if (!CollectionUtils.isEmpty(couponCodes)) {
couponCodes.forEach(shoppingCouponCode -> {
ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon coupon = new ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon();
coupon.setCode(shoppingCouponCode.getCouponCode());
coupon.setActivityCode(shoppingCouponCode.getActivityCode());
coupon.setCouponType(shoppingCouponCode.getCouponType());
coupons.add(coupon);
});
} }
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo); Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo);
// 获取优惠信息 // 获取优惠信息
......
...@@ -364,8 +364,17 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -364,8 +364,17 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
String storeId = this.getBindMallShopId(appId); String storeId = this.getBindMallShopId(appId);
shoppingCartInfoRequestVo.setShopId(storeId); shoppingCartInfoRequestVo.setShopId(storeId);
List<CartGoods> cartGoodsList = new ArrayList<>(); List<CartGoods> cartGoodsList = new ArrayList<>();
String couponCode = shoppingCartInfoRequestVo.getCouponCode(); List<ShoppingCartInfoRequestVo.couponCode> couponCodes = shoppingCartInfoRequestVo.getCouponCodes();
String activityCode = shoppingCartInfoRequestVo.getActivityCode(); if (!CollectionUtils.isEmpty(couponCodes)) {
ShoppingCartInfoRequestVo.couponCode otherCouponCode = couponCodes.stream()
.filter(couponCode -> !couponCode.getCouponType().equals(CouponTypeEnum.TYPE_5.getCode()))
.findFirst().orElse(null);
if (otherCouponCode !=null) {
// 由于对下面逻辑 不是很清楚 并且修改了 优惠券传参规则 所以直接设置一遍 防止出错
shoppingCartInfoRequestVo.setCouponCode(otherCouponCode.getCouponCode());
shoppingCartInfoRequestVo.setActivityCode(otherCouponCode.getActivityCode());
}
}
String menuType = shoppingCartInfoRequestVo.getMenuType(); String menuType = shoppingCartInfoRequestVo.getMenuType();
Integer orderType = shoppingCartInfoRequestVo.getOrderType(); Integer orderType = shoppingCartInfoRequestVo.getOrderType();
// 获取购物车商品 // 获取购物车商品
...@@ -392,13 +401,15 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -392,13 +401,15 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, assortmentCustomerInfoVo.getSessionId(), "", this.shoppingCartBaseService); assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, assortmentCustomerInfoVo.getSessionId(), "", this.shoppingCartBaseService);
} }
ArrayList<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>(); ArrayList<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>();
if (StringUtils.isNotEmpty(couponCode)) { if (!CollectionUtils.isEmpty(couponCodes)) {
CalculationSharingDiscountRequestDto.CalculationDiscountCoupon coupon = new CalculationSharingDiscountRequestDto.CalculationDiscountCoupon(); couponCodes.forEach(shoppingCouponCode -> {
coupon.setCode(couponCode); CalculationSharingDiscountRequestDto.CalculationDiscountCoupon coupon = new CalculationSharingDiscountRequestDto.CalculationDiscountCoupon();
coupon.setActivityCode(activityCode); coupon.setCode(shoppingCouponCode.getCouponCode());
coupons.add(coupon); coupon.setActivityCode(shoppingCouponCode.getActivityCode());
coupon.setCouponType(shoppingCouponCode.getCouponType());
coupons.add(coupon);
});
} }
buildCoupons(coupons,shoppingCartInfoRequestVo.getCouponCodes()); buildCoupons(coupons,shoppingCartInfoRequestVo.getCouponCodes());
...@@ -928,6 +939,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -928,6 +939,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
coupon.setCode(cp.getCouponCode()); coupon.setCode(cp.getCouponCode());
coupon.setActivityCode(cp.getActivityCode()); coupon.setActivityCode(cp.getActivityCode());
coupon.setUseIndex(cp.getIndex() == null ? x + oldCoupons.size(): cp.getIndex() + oldCoupons.size()); coupon.setUseIndex(cp.getIndex() == null ? x + oldCoupons.size(): cp.getIndex() + oldCoupons.size());
coupon.setCouponType(cp.getCouponType());
oldCoupons.add(coupon); oldCoupons.add(coupon);
} }
} }
......
...@@ -222,6 +222,7 @@ public class CalculationSharingDiscountService { ...@@ -222,6 +222,7 @@ public class CalculationSharingDiscountService {
result.setValidCouponMap(validCouponMap); result.setValidCouponMap(validCouponMap);
result.setSpqIdToCartUuid(spqIdToCartUuid); result.setSpqIdToCartUuid(spqIdToCartUuid);
// fisherman 这里传递过来的 配送费 是否要计算一下 配送券的逻辑
result.setDeliveryAmount(deliveryAmount); result.setDeliveryAmount(deliveryAmount);
result.setDistributionFee(result.getDistributionFee()); result.setDistributionFee(result.getDistributionFee());
return result; return result;
......
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