Commit 5afb50c3 by 徐康

买3赠1券

parent 71c0bcd5
...@@ -86,8 +86,8 @@ public class MCoffeeShoppingCartController { ...@@ -86,8 +86,8 @@ public class MCoffeeShoppingCartController {
*/ */
@ApiAnnotation(logMessage = "removeB3S1Coupon") @ApiAnnotation(logMessage = "removeB3S1Coupon")
@PostMapping(value = "/removeB3S1Coupon") @PostMapping(value = "/removeB3S1Coupon")
public BaseResponse deleteB3S1Coupon(@Validated @LogParams @RequestBody MCoffeeAddGoodsRequestVo request) { public BaseResponse removeB3S1Coupon(@Validated @LogParams @RequestBody MCoffeeAddGoodsRequestVo request) {
return shoppingCartMCoffeeService.addGoods(request); return shoppingCartMCoffeeService.removeB3S1Coupon(request);
} }
......
...@@ -49,6 +49,11 @@ public class BatchOperateCartGoodsRequestVo extends BaseRequestVo{ ...@@ -49,6 +49,11 @@ public class BatchOperateCartGoodsRequestVo extends BaseRequestVo{
private String redundancyCouponCode; private String redundancyCouponCode;
/** /**
* 根据券号清除当前购物车中月卡及商品信息
*/
private String redundancyB3S1CouponCode;
/**
* 是否使用月享卡2.0 * 是否使用月享卡2.0
* 1 是 * 1 是
* 0 否 * 0 否
......
...@@ -244,6 +244,10 @@ public class CartGoods { ...@@ -244,6 +244,10 @@ public class CartGoods {
*/ */
private int isB3S1Coupon = 0; private int isB3S1Coupon = 0;
/** /**
* 是否使用了买3赠1券
*/
private int isB3S1CouponGoods = 0;
/**
* 是否是太阳蛋商品 * 是否是太阳蛋商品
*/ */
private int isSunnyCoupon=0; private int isSunnyCoupon=0;
......
...@@ -82,7 +82,7 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo { ...@@ -82,7 +82,7 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
* 1 是 * 1 是
* 0 否 * 0 否
*/ */
private Integer isUseB3S3Coupon = 1; private Integer isUseB3S1Coupon = 1;
/** /**
* 优惠券对应的活动号 * 优惠券对应的活动号
*/ */
......
...@@ -428,6 +428,16 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -428,6 +428,16 @@ public class ShoppingCartMCoffeeServiceImpl {
clearCouponCodeRequestVo.setIsUseMonthCard(requestVo.getIsUseMonthCard()); clearCouponCodeRequestVo.setIsUseMonthCard(requestVo.getIsUseMonthCard());
baseResponse = clearCouponInfoByCode(clearCouponCodeRequestVo); baseResponse = clearCouponInfoByCode(clearCouponCodeRequestVo);
} }
if (StringUtils.isNotEmpty(requestVo.getRedundancyB3S1CouponCode())){
MCoffeeAddGoodsRequestVo clearCouponCodeRequestVo = new MCoffeeAddGoodsRequestVo();
clearCouponCodeRequestVo.setCouponCode(requestVo.getRedundancyB3S1CouponCode());
clearCouponCodeRequestVo.setSessionId(requestVo.getSessionId());
clearCouponCodeRequestVo.setPartnerId(requestVo.getPartnerId());
clearCouponCodeRequestVo.setShopId(requestVo.getShopId());
clearCouponCodeRequestVo.setOrderType(requestVo.getOrderType());
clearCouponCodeRequestVo.setChannelType(requestVo.getChannelType());
baseResponse = removeB3S1Coupon(clearCouponCodeRequestVo);
}
if (CollectionUtils.isNotEmpty(requestVo.getQtyInfoList())) { if (CollectionUtils.isNotEmpty(requestVo.getQtyInfoList())) {
BatchUpdateGoodsQtyRequestVo updateGoodsQtyRequestVo = new BatchUpdateGoodsQtyRequestVo(); BatchUpdateGoodsQtyRequestVo updateGoodsQtyRequestVo = new BatchUpdateGoodsQtyRequestVo();
...@@ -498,6 +508,132 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -498,6 +508,132 @@ public class ShoppingCartMCoffeeServiceImpl {
} }
/** /**
* 批量更新购物车商品数量
* @param addShoppingCartGoodsRequestVo
* @return
*/
public BaseResponse removeB3S1Coupon(MCoffeeAddGoodsRequestVo addShoppingCartGoodsRequestVo){
if (StringUtils.isEmpty(addShoppingCartGoodsRequestVo.getShopId())) {
throw new ServiceException(ResponseResult.SHOPPING_CART_SHOP_ID_NOT_EMPTY);
}
if (StringUtils.isEmpty(addShoppingCartGoodsRequestVo.getCouponCode())){
return ResponseUtil.error(ResponseResult.SHOPPING_CART_UPDATE_ERROR, "买3赠1券号不能为空");
}
String sessionId = addShoppingCartGoodsRequestVo.getSessionId();
// 获取用户信息
CustomerInfoVo assortmentCustomerInfoVo = getCustomerInfoVo(sessionId);
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = new ShoppingCartGoodsResponseVo();
String userId = assortmentCustomerInfoVo.getMemberId();
String partnerId = addShoppingCartGoodsRequestVo.getPartnerId();
String storeId = addShoppingCartGoodsRequestVo.getShopId();
String appId = addShoppingCartGoodsRequestVo.getAppId();
String spuId = addShoppingCartGoodsRequestVo.getSpuId();
String skuId = StringUtils.isNotBlank(addShoppingCartGoodsRequestVo.getSkuId()) ? addShoppingCartGoodsRequestVo.getSkuId() : "";
String goodsId = StringUtils.isEmpty(skuId) ? spuId : skuId;
String tableNumber = addShoppingCartGoodsRequestVo.getTableNumber();
String menuType = addShoppingCartGoodsRequestVo.getMenuType();
Integer orderType = addShoppingCartGoodsRequestVo.getOrderType();
String receiveId = addShoppingCartGoodsRequestVo.getReceiveId();
Integer operationType = addShoppingCartGoodsRequestVo.getOperationType();
String couponCode = addShoppingCartGoodsRequestVo.getCouponCode();
// 查询购物车缓存
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, null, shoppingCartBaseService);
if (CollectionUtils.isEmpty(cartGoodsList)) {
cartGoodsList = new ArrayList<>();
}
cartGoodsList = clearB3S1CouponInfo(cartGoodsList, couponCode);
Optional<CartGoods> cartGoods9998 = cartGoodsList.stream().filter(o -> "9998".equals(skuId) && o.getIsB3S1Coupon() == 1).findFirst();
if(cartGoods9998.isPresent()) {
cartGoods9998.get().getB3S1CouponGoodsInfo().getCardCodeSet().remove(couponCode);
}
CartGoods monthCardProduct = null;
CartGoods B3S1CouponProduct = null;
// 如果购物车商品不为空, 则check购物车中所有商品
if (CollectionUtils.isNotEmpty(cartGoodsList)) {
// check购物车中所有商品
List<CartGoods> temList = new ArrayList<>();
for (CartGoods goods : cartGoodsList) {
if (StringUtils.equals(goods.getSkuId(),"9999")){
monthCardProduct = goods;
continue;
}
if (StringUtils.equals(goods.getSkuId(),"9998")){
B3S1CouponProduct = goods;
continue;
}
temList.add(goods);
}
cartGoodsList = checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, temList, sessionId);
if (null != monthCardProduct) {
cartGoodsList.add(monthCardProduct);
}
if (null != B3S1CouponProduct) {
cartGoodsList.add(B3S1CouponProduct);
}
if (CollectionUtils.isNotEmpty(cartGoodsList)) {
int size = cartGoodsList.size();
for(int i=0;i<size;i++) {
//先把月卡放到最后
if(null != cartGoodsList.get(i) && Objects.equals(1,cartGoodsList.get(i).getIsB3S1Coupon())) {
CartGoods cartGoods = cartGoodsList.get(i);
if(i != size-1) {
cartGoodsList.remove(i);
cartGoodsList.add(cartGoods);
break;
}
}
}
for(int i=0;i<size;i++) {
//先把月卡放到最后
if(null != cartGoodsList.get(i) && Objects.equals(1,cartGoodsList.get(i).getIsMonthCard())) {
CartGoods cartGoods = cartGoodsList.get(i);
if(i != size-1) {
cartGoodsList.remove(i);
cartGoodsList.add(cartGoods);
break;
}
}
}
for(int i=0;i<size;i++) {
//如果是餐具商品,则放到最后
if(null != cartGoodsList.get(i) && cartGoodsList.get(i).getSkuId().equals(mcCafeTablewareSkuId)) {
CartGoods cartGoods = cartGoodsList.get(i);
cartGoods.setIsTableware(true);
if(i != size-1) {
cartGoodsList.remove(i);
cartGoodsList.add(cartGoods);
break;
}
}
}
}
}
String productCouponCode = assortmentSdkService.getShoppingCartCoupon(partnerId, storeId, userId, shoppingCartBaseService, SaveCouponType.COUPON.getCode());
String freightCouponCode = assortmentSdkService.getShoppingCartCoupon(partnerId, storeId, userId, shoppingCartBaseService, SaveCouponType.FREIGHT_COUPON.getCode());
// 当couponCode不为空时,需参与价格计算
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = getCoupon(productCouponCode, null, cartGoodsList,freightCouponCode,null);
// 促销活动的优惠金额计算
calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, couponCode,
cartGoodsList, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo,null);
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, null, tableNumber, this.shoppingCartBaseService);
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, cartGoodsList, null, ShoppingCartConstant.ADD_AND_UPDATE, null);
return ResponseUtil.success(shoppingCartGoodsResponseVo);
}
/**
* 根据券号清除券信息 * 根据券号清除券信息
* @param requestVo * @param requestVo
* @return * @return
...@@ -564,10 +700,14 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -564,10 +700,14 @@ public class ShoppingCartMCoffeeServiceImpl {
CartGoods cartGoods = null; CartGoods cartGoods = null;
String skuId = ""; String skuId = "";
Integer finalQty = qty; Integer finalQty = qty;
boolean isB3S1Coupon = false;
String b3S1CouponCode = "";
List<CartGoods> temList = new ArrayList<>();
CartGoods b3S1CartGoods = new CartGoods();
for (CartGoods cartGoods_ : cartGoodsList) { for (CartGoods cartGoods_ : cartGoodsList) {
//如果菜单购月卡数量大于10,则不作数量修改,直接算价并返回之前购物车信息 //如果菜单购月卡数量大于10,则不作数量修改,直接算价并返回之前购物车信息
if (Objects.equals(1,cartGoods_.getIsMonthCard()) if (Objects.equals(1,cartGoods_.getIsMonthCard())
&& cartGoods_.getCartGoodsUid().equals(updateShoppingCartGoodsQtyRequestVo.getCartGoodsUid()) && cartGoods_.getCartGoodsUid().equals(cartGoodsUid)
&& updateShoppingCartGoodsQtyRequestVo.getQty()>10) { && updateShoppingCartGoodsQtyRequestVo.getQty()>10) {
shoppingCartGoodsResponseVo.setChanged(true); shoppingCartGoodsResponseVo.setChanged(true);
shoppingCartGoodsResponseVo.setToastMsg(ResponseResult.SHOPPING_CART_QTY_LIMIT_ERR.getMessage()); shoppingCartGoodsResponseVo.setToastMsg(ResponseResult.SHOPPING_CART_QTY_LIMIT_ERR.getMessage());
...@@ -587,12 +727,24 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -587,12 +727,24 @@ public class ShoppingCartMCoffeeServiceImpl {
if (cartGoods_.getIsMonthCard() == 1 && cartGoods_.getMonthCardInfo() != null && qty != null && qty == 0){ if (cartGoods_.getIsMonthCard() == 1 && cartGoods_.getMonthCardInfo() != null && qty != null && qty == 0){
cartGoodsList = clearMonthCouponInfo(cartGoodsList,cartGoods_.getMonthCardInfo().getCardCode(),cartGoodsUid); cartGoodsList = clearMonthCouponInfo(cartGoodsList,cartGoods_.getMonthCardInfo().getCardCode(),cartGoodsUid);
} }
if (cartGoods_.getIsB3S1Coupon() == 1 && cartGoods_.getB3S1CouponGoodsInfo() != null && qty != null && qty == 0){
isB3S1Coupon = true;
b3S1CouponCode = cartGoods_.getB3S1CouponGoodsInfo().getCardCode();
}
cartGoods = cartGoods_; cartGoods = cartGoods_;
cartGoods_.setQty(qty); cartGoods_.setQty(qty);
skuId = cartGoods_.getSkuId(); skuId = cartGoods_.getSkuId();
finalQty = cartGoods_.getQty(); finalQty = cartGoods_.getQty();
break; break;
} }
if("9998".equals(cartGoods_.getSkuId())) {
b3S1CartGoods = cartGoods_;
} else {
temList.add(cartGoods_);
}
}
if(isB3S1Coupon) {
cartGoodsList = clearB3S1CouponInfo(cartGoodsList,b3S1CouponCode);
} }
if(!mcCafeTablewareSkuId.equals(skuId) && finalQty == 0 && CollectionUtils.isNotEmpty(cartGoodsList) && cartGoodsList.size() == 2) { if(!mcCafeTablewareSkuId.equals(skuId) && finalQty == 0 && CollectionUtils.isNotEmpty(cartGoodsList) && cartGoodsList.size() == 2) {
...@@ -612,16 +764,14 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -612,16 +764,14 @@ public class ShoppingCartMCoffeeServiceImpl {
throw new ServiceException(ResponseResult.NOT_SUPPORTED); throw new ServiceException(ResponseResult.NOT_SUPPORTED);
} }
// 检查购物车商品库存数量
// checkUpdateStock(partnerId, storeId, menuType, qty, cartGoods);
// check购物车中所有商品 // check购物车中所有商品
// cartGoodsList = checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, cartGoodsList); cartGoodsList = checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, temList, sessionId);
List<CartGoods> temList = new ArrayList<>(); cartGoodsList.add(b3S1CartGoods);
for (CartGoods goods : cartGoodsList) { // List<CartGoods> temList = new ArrayList<>();
temList.addAll(checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, Arrays.asList(goods), sessionId)); // for (CartGoods goods : cartGoodsList) {
} // temList.addAll(checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, Arrays.asList(goods), sessionId));
cartGoodsList = temList; // }
// cartGoodsList = temList;
// 重新存储最新购物车 // 重新存储最新购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService); assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService);
...@@ -695,8 +845,8 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -695,8 +845,8 @@ public class ShoppingCartMCoffeeServiceImpl {
if(shoppingCartInfoRequestVo.getIsUseMonthCard() != null && goods.getMonthCardInfo() != null) { if(shoppingCartInfoRequestVo.getIsUseMonthCard() != null && goods.getMonthCardInfo() != null) {
goods.getMonthCardInfo().setIsUseMonthCard(shoppingCartInfoRequestVo.getIsUseMonthCard()); goods.getMonthCardInfo().setIsUseMonthCard(shoppingCartInfoRequestVo.getIsUseMonthCard());
} }
if(shoppingCartInfoRequestVo.getIsUseB3S3Coupon() != null && goods.getB3S1CouponGoodsInfo() != null) { if(shoppingCartInfoRequestVo.getIsUseB3S1Coupon() != null && goods.getB3S1CouponGoodsInfo() != null) {
goods.getMonthCardInfo().setIsUseMonthCard(shoppingCartInfoRequestVo.getIsUseMonthCard()); goods.getB3S1CouponGoodsInfo().setIsUseB3S1Coupon(shoppingCartInfoRequestVo.getIsUseB3S1Coupon());
} }
if (StringUtils.equals(goods.getSkuId(),"9999")){ if (StringUtils.equals(goods.getSkuId(),"9999")){
monthCardProduct = goods; monthCardProduct = goods;
...@@ -2439,4 +2589,13 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -2439,4 +2589,13 @@ public class ShoppingCartMCoffeeServiceImpl {
} }
return cartGoods.stream().filter(t-> !StringUtils.equals("9999",t.getSkuId()) && !t.getCartGoodsUid().equals(cartGoodsUid)).collect(Collectors.toList()); return cartGoods.stream().filter(t-> !StringUtils.equals("9999",t.getSkuId()) && !t.getCartGoodsUid().equals(cartGoodsUid)).collect(Collectors.toList());
} }
/**
* 清除购物车商品使用买3赠1券信息
* @param couponCode
*/
private List<CartGoods> clearB3S1CouponInfo(List<CartGoods> cartGoodsList,String couponCode){
cartGoodsList.removeIf(o -> couponCode.equals(o.getCouponCode()));
return cartGoodsList;
}
} }
...@@ -167,6 +167,7 @@ public class CouponDiscountCalculation { ...@@ -167,6 +167,7 @@ public class CouponDiscountCalculation {
List<CartGoods> newCartGoodsList = new ArrayList<>(); List<CartGoods> newCartGoodsList = new ArrayList<>();
for (int i = 0; i < cartGoodsList.size(); i++) { for (int i = 0; i < cartGoodsList.size(); i++) {
CartGoods cartGoods = cartGoodsList.get(i); CartGoods cartGoods = cartGoodsList.get(i);
cartGoods.setIsB3S1CouponGoods(0);
if("9998".equals(cartGoods.getSkuId())) { if("9998".equals(cartGoods.getSkuId())) {
continue; continue;
} }
...@@ -204,6 +205,7 @@ public class CouponDiscountCalculation { ...@@ -204,6 +205,7 @@ public class CouponDiscountCalculation {
cartGoods.setQty(b3S1DiscountOptional.get().getActualGoodsNumber()); cartGoods.setQty(b3S1DiscountOptional.get().getActualGoodsNumber());
cartGoods.setCouponName(b3S1DiscountOptional.get().getActivityName()); cartGoods.setCouponName(b3S1DiscountOptional.get().getActivityName());
cartGoods.setCouponCode(b3S1DiscountOptional.get().getActivityCode()); cartGoods.setCouponCode(b3S1DiscountOptional.get().getActivityCode());
cartGoods.setIsB3S1Coupon(1);
CartGoods cartGoodsNew = new CartGoods(); CartGoods cartGoodsNew = new CartGoods();
BeanUtils.copyProperties(cartGoods, cartGoodsNew); BeanUtils.copyProperties(cartGoods, cartGoodsNew);
cartGoodsNew.setCartGoodsUid(UUID.randomUUID().toString()); cartGoodsNew.setCartGoodsUid(UUID.randomUUID().toString());
......
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