Commit c8104261 by yu.sun

Merge branch 'feature/20210111_P5V2菜单购买月享卡_yu.sun'

# Conflicts:
#	assortment-shoppingcart-sdk/pom.xml
#	assortment-shoppingcart-sdk/readme.md
#	shopping-cart-application-service/pom.xml
parents d44a1ba8 7ca170dc
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>assortment-shoppingcart-sdk</artifactId> <artifactId>assortment-shoppingcart-sdk</artifactId>
<version>1.2.0.RELEASE</version> <version>2.0.20-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
...@@ -10,4 +10,5 @@ ...@@ -10,4 +10,5 @@
| 1.1.7.RELEASE| 标识套餐类型| 孙昱 | 2020-12-01 | | 1.1.7.RELEASE| 标识套餐类型| 孙昱 | 2020-12-01 |
| 1.1.8.RELEASE| 拼单| 缪晖 | 2020-12-10 | | 1.1.8.RELEASE| 拼单| 缪晖 | 2020-12-10 |
| 1.1.9.RELEASE| 清除代金券缓存| 缪晖 | 2020-12-17 | | 1.1.9.RELEASE| 清除代金券缓存| 缪晖 | 2020-12-17 |
| 1.2.0.RELEASE| 清除代金券缓存| 李小二 | 2021-01-19 | | 1.2.0.RELEASE| 清除代金券缓存| 李小二 | 2021-01-19 |
\ No newline at end of file | 2.0.20-SNAPSHOT| 更新cartGoods字段 | 孙昱 | 2021-01-15 |
...@@ -79,6 +79,18 @@ public class CartGoods { ...@@ -79,6 +79,18 @@ public class CartGoods {
*/ */
private String couponCode; private String couponCode;
/** /**
* 是否是月享卡商品
*/
private int isMonthCard;
/**
* 是否为种子券商品 1:是;0:否
*/
private int isSeedCouponGoods;
/**
* 月享卡信息
*/
private MonthCardVo monthCardInfo;
/**
* 商品券名称 * 商品券名称
*/ */
private String couponName; private String couponName;
...@@ -253,6 +265,23 @@ public class CartGoods { ...@@ -253,6 +265,23 @@ public class CartGoods {
} }
@Data @Data
@NoArgsConstructor
public class MonthCardVo {
/**
* 卡号
*/
private String cardNo;
/**
* 券号
*/
private String cardCode;
/**
* 月享卡类型:1.月享卡(单商品购买);2.月享卡(多商品购买);3.普通月卡
*/
private Integer type;
}
@Data
public final static class ComboxGoods{ public final static class ComboxGoods{
/** /**
* 单规格spuId,多规格skuId * 单规格spuId,多规格skuId
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-shoppingcart-sdk</artifactId> <artifactId>assortment-shoppingcart-sdk</artifactId>
<version>1.2.0.RELEASE</version> <version>2.0.21-SNAPSHOT</version>
</dependency> </dependency>
<!-- 再来一单查询订单信息 --> <!-- 再来一单查询订单信息 -->
<dependency> <dependency>
......
...@@ -169,9 +169,14 @@ public class ShoppingCartMccafeAdapter { ...@@ -169,9 +169,14 @@ public class ShoppingCartMccafeAdapter {
cartGoodsDetailDto.setSpecialExtra(cartGoods.getSpecialExtra()); cartGoodsDetailDto.setSpecialExtra(cartGoods.getSpecialExtra());
cartGoodsDetailDto.setClassificationId(cartGoods.getClassificationId()); cartGoodsDetailDto.setClassificationId(cartGoods.getClassificationId());
cartGoodsDetailDto.setClassificationName(cartGoods.getClassificationName()); cartGoodsDetailDto.setClassificationName(cartGoods.getClassificationName());
//菜单购月享卡信息
cartGoodsDetailDto.setIsMonthCard(cartGoods.getIsMonthCard());
cartGoodsDetailDto.setMonthCardInfo(cartGoods.getMonthCardInfo());
if (GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) { if (GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) {
cartGoodsDetailDto.setProductType(ProductType.SETMEAL.getCode()); cartGoodsDetailDto.setProductType(ProductType.SETMEAL.getCode());
} else if (cartGoods.isWeightType()) { } else if(GoodsTypeEnum.VIRTUAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())){
cartGoodsDetailDto.setProductType(ProductType.VIRTUAL_PRODUCT.getCode());
}else if (cartGoods.isWeightType()) {
cartGoodsDetailDto.setProductType(ProductType.WEIGHT_PRODUCT.getCode()); cartGoodsDetailDto.setProductType(ProductType.WEIGHT_PRODUCT.getCode());
} }
......
...@@ -4,6 +4,7 @@ import cn.freemud.entities.dto.OrderProductAddInfo; ...@@ -4,6 +4,7 @@ import cn.freemud.entities.dto.OrderProductAddInfo;
import cn.freemud.entities.dto.activity.ActivityDiscountsDto; import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
import cn.freemud.entities.dto.activity.ShareDiscountActivityDto; import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.vo.CartGoods; import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.MonthCardVo;
import cn.freemud.entities.vo.SubtractStockVO; import cn.freemud.entities.vo.SubtractStockVO;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import lombok.Builder; import lombok.Builder;
...@@ -254,6 +255,18 @@ public class ShoppingCartGoodsDto { ...@@ -254,6 +255,18 @@ public class ShoppingCartGoodsDto {
*/ */
private Integer isTableware = 0; private Integer isTableware = 0;
/** /**
* 是否是月享卡商品
*/
private int isMonthCard;
/**
* 是否为种子券商品 1:是;0:否
*/
private int isSeedCouponGoods;
/**
* 月享卡信息
*/
private MonthCardVo monthCardInfo;
/**
* 商品货号 * 商品货号
*/ */
private String productCode; private String productCode;
......
...@@ -200,6 +200,18 @@ public class CartGoods { ...@@ -200,6 +200,18 @@ public class CartGoods {
*/ */
private Boolean isTableware = false; private Boolean isTableware = false;
/** /**
* 是否是月享卡商品
*/
private int isMonthCard;
/**
* 是否为种子券商品 1:是;0:否
*/
private int isSeedCouponGoods;
/**
* 月享卡信息
*/
private MonthCardVo monthCardInfo;
/**
* 第三方商品编码 * 第三方商品编码
*/ */
private String customerCode; private String customerCode;
......
package cn.freemud.entities.vo;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* All rights Reserved, Designed By sunary.site
*
* @version v1.0
* @Title: IntelliJ IDEA
* @Package cn.freemud.entities.vo
* @Description: 请简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2021-01-11 15:18:36
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
*/
@Data
@NoArgsConstructor
public class MonthCardVo {
/**
* 卡号
*/
private String cardNo;
/**
* 券号
*/
private String cardCode;
/**
* 月享卡类型:1.月享卡(单商品购买);2.月享卡(多商品购买);3.普通月卡
*/
private Integer type;
}
...@@ -23,6 +23,7 @@ public enum GoodsTypeEnum { ...@@ -23,6 +23,7 @@ public enum GoodsTypeEnum {
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,"虚拟商品"),
MATERIAL(88, "有加料的商品"), MATERIAL(88, "有加料的商品"),
EXCEPTION_GOODS(99, "异常商品:商品菜单变化导致和购物车不商品匹配"); EXCEPTION_GOODS(99, "异常商品:商品菜单变化导致和购物车不商品匹配");
private Integer goodsType; private Integer goodsType;
......
...@@ -101,6 +101,7 @@ public enum ResponseResult { ...@@ -101,6 +101,7 @@ public enum ResponseResult {
SHOPPING_CART_BUY_ONE_SEND_GOODS_NOT_EMPTY("44032", "未查询到寄件活动商品"), SHOPPING_CART_BUY_ONE_SEND_GOODS_NOT_EMPTY("44032", "未查询到寄件活动商品"),
SHOPPING_CART_BUY_ONE_SEND_GOODS_ERR("44033", "寄件活动商品错误"), SHOPPING_CART_BUY_ONE_SEND_GOODS_ERR("44033", "寄件活动商品错误"),
SHOPPING_CART_COUPON_MIX_NOT_EXIST("44034", "券商品不存在"), SHOPPING_CART_COUPON_MIX_NOT_EXIST("44034", "券商品不存在"),
SHOPPING_CART_QTY_LIMIT_ERR("44035", "该商品单次购买数量限制为10,请知晓"),
/** /**
* 订单状态码 * 订单状态码
...@@ -178,7 +179,8 @@ public enum ResponseResult { ...@@ -178,7 +179,8 @@ public enum ResponseResult {
/** /**
* coco验证券错误 * coco验证券错误
*/ */
COCO_COUPON_VALIDATOR_FAIL("49000", "优惠券验证错误") COCO_COUPON_VALIDATOR_FAIL("49000", "优惠券验证错误"),
NEW_PURCHASE("49001", "超过限购数量了")
; ;
......
...@@ -170,49 +170,62 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -170,49 +170,62 @@ public class ShoppingCartMCoffeeServiceImpl {
if (CollectionUtils.isEmpty(oldCartGoodsList)) { if (CollectionUtils.isEmpty(oldCartGoodsList)) {
oldCartGoodsList = new ArrayList<>(); oldCartGoodsList = new ArrayList<>();
} }
if(mcCafeTablewareSkuId.equals(skuId)) { //加锁,防止重复请求导致的加购数量错误
for(CartGoods cartGoods : oldCartGoodsList) { synchronized (oldCartGoodsList) {
if(mcCafeTablewareSkuId.equals(cartGoods.getSkuId())) { //餐具和月享卡数量限制
return ResponseUtil.error(ResponseResult.SHOPPING_CART_ADD_ERROR.getCode(), "不能重复添加餐具商品"); if (mcCafeTablewareSkuId.equals(skuId) || Objects.equals(addShoppingCartGoodsRequestVo.getIsMonthCard(), 1)) {
for (CartGoods cartGoods : oldCartGoodsList) {
if (mcCafeTablewareSkuId.equals(cartGoods.getSkuId())) {
return ResponseUtil.error(ResponseResult.SHOPPING_CART_ADD_ERROR.getCode(), "不能重复添加餐具商品");
}
if (Objects.equals(addShoppingCartGoodsRequestVo.getIsMonthCard(), 1) && cartGoods.getQty() >= 10) {
shoppingCartGoodsResponseVo.setChanged(true);
shoppingCartGoodsResponseVo.setToastMsg("该商品单次购买数量限制为10,请知晓");
// 返回购物车数据
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, oldCartGoodsList,
ResponseResult.SHOPPING_CART_ADD_ERROR.getMessage(), ShoppingCartConstant.ADD_AND_UPDATE
, null);
return ResponseUtil.success(shoppingCartGoodsResponseVo);
}
} }
} }
}
//商品券已添加情况校验
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = checkGoodsCoupon(oldCartGoodsList, operationType, couponCode,goodsId, addShoppingCartGoodsRequestVo);
CartGoods addCartGoods = convent2CartGoods(addShoppingCartGoodsRequestVo, goodsId ,vo);
setClassificationAndPrice(addCartGoods, productBeanListSpuClass);
if(StringUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getGroupName())) {
addCartGoods.setSkuName(addShoppingCartGoodsRequestVo.getGroupName());
addCartGoods.setSpuName(addShoppingCartGoodsRequestVo.getGroupName());
addCartGoods.setName(addShoppingCartGoodsRequestVo.getGroupName());
}
//根据券号获取券名称
String couponName = "";
if (StringUtils.isNotEmpty(couponCode)){
CustomerInfoVo userLoginInfoDto = getCustomerInfoVo(sessionId);
couponName = getCouponNameByCode(couponCode,userLoginInfoDto,
BusinessTypeEnum.getByType(addShoppingCartGoodsRequestVo.getMenuType()).getCode(),storeId);
addCartGoods.setCouponName(couponName);
}
// 如果购物车中有商品券,则当前添加的商品是特价商品时,需要提示“已选商品券,与其他优惠商品不同享,商品将恢复原价” //商品券已添加情况校验
boolean haveCouponProduct = oldCartGoodsList.parallelStream().anyMatch(k -> k.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX)); List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = checkGoodsCoupon(oldCartGoodsList, operationType, couponCode, goodsId, addShoppingCartGoodsRequestVo);
if (haveCouponProduct && isSpecialGoods(partnerId, storeId, userId, appId, goodsId, orderType)) { CartGoods addCartGoods = convent2CartGoods(addShoppingCartGoodsRequestVo, goodsId, vo);
// 如果购物车先加入商品券,再加入促销商品,toast提示“已选商品券,与其他优惠商品不同享,商品将恢复原价” setClassificationAndPrice(addCartGoods, productBeanListSpuClass);
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, ShoppingCartConstant.HAS_GOODS_COUPON_WHEN_ADD_SPECIAL_GOODS); if (StringUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getGroupName())) {
} addCartGoods.setSkuName(addShoppingCartGoodsRequestVo.getGroupName());
addCartGoods.setSpuName(addShoppingCartGoodsRequestVo.getGroupName());
addCartGoods.setName(addShoppingCartGoodsRequestVo.getGroupName());
}
//根据券号获取券名称
String couponName = "";
if (StringUtils.isNotEmpty(couponCode)) {
CustomerInfoVo userLoginInfoDto = getCustomerInfoVo(sessionId);
couponName = getCouponNameByCode(couponCode, userLoginInfoDto,
BusinessTypeEnum.getByType(addShoppingCartGoodsRequestVo.getMenuType()).getCode(), storeId);
addCartGoods.setCouponName(couponName);
}
// 购物车数据更新(保存商品原价) // 如果购物车中有商品券,则当前添加的商品是特价商品时,需要提示“已选商品券,与其他优惠商品不同享,商品将恢复原价”
List<CartGoods> newCartGoods = updateCartGoodsLegal(partnerId, storeId, orderType, tableNumber, menuType, userId, addCartGoods, shoppingCartGoodsResponseVo, oldCartGoodsList); boolean haveCouponProduct = oldCartGoodsList.parallelStream().anyMatch(k -> k.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX));
if (haveCouponProduct && isSpecialGoods(partnerId, storeId, userId, appId, goodsId, orderType)) {
// 如果购物车先加入商品券,再加入促销商品,toast提示“已选商品券,与其他优惠商品不同享,商品将恢复原价”
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, ShoppingCartConstant.HAS_GOODS_COUPON_WHEN_ADD_SPECIAL_GOODS);
}
// 促销活动等价格计算 // 购物车数据更新(保存商品原价)
calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, null, List<CartGoods> newCartGoods = updateCartGoodsLegal(partnerId, storeId, orderType, tableNumber, menuType, userId, addCartGoods, shoppingCartGoodsResponseVo, oldCartGoodsList);
newCartGoods, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo, null);
// 返回购物车数据 // 促销活动等价格计算
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, newCartGoods, null, ShoppingCartConstant.ADD_AND_UPDATE, null); calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, null,
newCartGoods, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo, null);
// 返回购物车数据
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, newCartGoods, null, ShoppingCartConstant.ADD_AND_UPDATE, null);
}
return ResponseUtil.success(shoppingCartGoodsResponseVo); return ResponseUtil.success(shoppingCartGoodsResponseVo);
} }
...@@ -331,6 +344,24 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -331,6 +344,24 @@ public class ShoppingCartMCoffeeServiceImpl {
String skuId = ""; String skuId = "";
Integer finalQty = qty; Integer finalQty = qty;
for (CartGoods cartGoods_ : cartGoodsList) { for (CartGoods cartGoods_ : cartGoodsList) {
//如果菜单购月卡数量大于10,则不作数量修改,直接算价并返回之前购物车信息
if (Objects.equals(1,cartGoods_.getIsMonthCard())
&& cartGoods_.getCartGoodsUid().equals(updateShoppingCartGoodsQtyRequestVo.getCartGoodsUid())
&& updateShoppingCartGoodsQtyRequestVo.getQty()>10) {
shoppingCartGoodsResponseVo.setChanged(true);
shoppingCartGoodsResponseVo.setToastMsg(ResponseResult.SHOPPING_CART_QTY_LIMIT_ERR.getMessage());
setAddAndUpdateResponse(shoppingCartGoodsResponseVo,cartGoodsList,
ResponseResult.SHOPPING_CART_QTY_LIMIT_ERR.getMessage(),
ShoppingCartConstant.ADD_AND_UPDATE,null);
String freightCouponCode = assortmentSdkService.getShoppingCartCoupon(partnerId, storeId, userId, shoppingCartBaseService, SaveCouponType.FREIGHT_COUPON.getCode());
String couponCode = assortmentSdkService.getShoppingCartCoupon(partnerId, storeId, userId, shoppingCartBaseService, SaveCouponType.COUPON.getCode());
// 当couponCode不为空时,需参与价格计算
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = getCoupon(couponCode, null, cartGoodsList,freightCouponCode,null);
// 促销活动的优惠金额计算
calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, couponCode,
cartGoodsList, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo,null);
return ResponseUtil.success(shoppingCartGoodsResponseVo);
}
if (cartGoodsUid.equals(cartGoods_.getCartGoodsUid())) { if (cartGoodsUid.equals(cartGoods_.getCartGoodsUid())) {
cartGoods = cartGoods_; cartGoods = cartGoods_;
cartGoods_.setQty(qty); cartGoods_.setQty(qty);
...@@ -348,6 +379,28 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -348,6 +379,28 @@ public class ShoppingCartMCoffeeServiceImpl {
} }
} }
for (CartGoods goods : cartGoodsList) {
if (Objects.equals(1,goods.getIsMonthCard())
&& goods.getCartGoodsUid().equals(updateShoppingCartGoodsQtyRequestVo.getCartGoodsUid())){
if (updateShoppingCartGoodsQtyRequestVo.getQty() == 0){
if (cartGoodsList.size()>1) {
Iterator<CartGoods> cartGoodsIterator = cartGoodsList.iterator();
while (cartGoodsIterator.hasNext()) {
String couponCode = null != cartGoodsIterator.next() ?
cartGoodsIterator.next().getCouponCode() : "";
if (StringUtils.isNotEmpty(couponCode) && couponCode.equals(goods.getMonthCardInfo().getCardCode()))
{
cartGoodsIterator.remove();
break;
}
}
}else{
cartGoodsList = new ArrayList<>();
}
}
}
}
if (cartGoods == null) { if (cartGoods == null) {
throw new ServiceException(ResponseResult.SHOPPING_CART_UPDATE_ERROR); throw new ServiceException(ResponseResult.SHOPPING_CART_UPDATE_ERROR);
} }
...@@ -380,6 +433,21 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -380,6 +433,21 @@ public class ShoppingCartMCoffeeServiceImpl {
// 促销活动的优惠金额计算 // 促销活动的优惠金额计算
calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, couponCode, calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, couponCode,
cartGoodsList, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo,null); cartGoodsList, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo,null);
//把月卡放到最后
if (CollectionUtils.isNotEmpty(cartGoodsList)) {
int size = cartGoodsList.size();
for(int i=0;i<size;i++) {
if(Objects.equals(1,cartGoodsList.get(i).getIsMonthCard())) {
CartGoods montCardGoods = cartGoodsList.get(i);
if(i != size-1) {
cartGoodsList.remove(i);
cartGoodsList.add(montCardGoods);
break;
}
}
}
}
//设置更新响应信息 //设置更新响应信息
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), ShoppingCartConstant.ADD_AND_UPDATE, null); setAddAndUpdateResponse(shoppingCartGoodsResponseVo, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), ShoppingCartConstant.ADD_AND_UPDATE, null);
return ResponseUtil.success(shoppingCartGoodsResponseVo); return ResponseUtil.success(shoppingCartGoodsResponseVo);
...@@ -423,10 +491,21 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -423,10 +491,21 @@ public class ShoppingCartMCoffeeServiceImpl {
temList.addAll(checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, Arrays.asList(goods))); temList.addAll(checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, Arrays.asList(goods)));
} }
cartGoodsList = temList; cartGoodsList = temList;
//如果是餐具商品,则放到最后
if (CollectionUtils.isNotEmpty(cartGoodsList)) { if (CollectionUtils.isNotEmpty(cartGoodsList)) {
int size = cartGoodsList.size(); int size = cartGoodsList.size();
for(int i=0;i<size;i++) { for(int i=0;i<size;i++) {
//先把月卡放到最后
if(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(cartGoodsList.get(i).getSkuId().equals(mcCafeTablewareSkuId)) { if(cartGoodsList.get(i).getSkuId().equals(mcCafeTablewareSkuId)) {
CartGoods cartGoods = cartGoodsList.get(i); CartGoods cartGoods = cartGoodsList.get(i);
cartGoods.setIsTableware(true); cartGoods.setIsTableware(true);
...@@ -723,6 +802,15 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -723,6 +802,15 @@ public class ShoppingCartMCoffeeServiceImpl {
if (CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getProducts())) { if (CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getProducts())) {
int size = shoppingCartGoodsDto.getProducts().size(); int size = shoppingCartGoodsDto.getProducts().size();
for(int i=0;i<size;i++) { for(int i=0;i<size;i++) {
//先把月卡放到最后
if(Objects.equals(1,shoppingCartGoodsDto.getProducts().get(i).getIsMonthCard())) {
ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = shoppingCartGoodsDto.getProducts().get(i);
if(i != size-1) {
shoppingCartGoodsDto.getProducts().remove(i);
shoppingCartGoodsDto.getProducts().add(cartGoodsDetailDto);
break;
}
}
if(shoppingCartGoodsDto.getProducts().get(i).getSkuId().equals(mcCafeTablewareSkuId)) { if(shoppingCartGoodsDto.getProducts().get(i).getSkuId().equals(mcCafeTablewareSkuId)) {
ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = shoppingCartGoodsDto.getProducts().get(i); ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = shoppingCartGoodsDto.getProducts().get(i);
cartGoodsDetailDto.setIsTableware(1); cartGoodsDetailDto.setIsTableware(1);
...@@ -1410,6 +1498,8 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -1410,6 +1498,8 @@ public class ShoppingCartMCoffeeServiceImpl {
cartGoods.setSpuId(spuId); cartGoods.setSpuId(spuId);
cartGoods.setSkuId(skuId); cartGoods.setSkuId(skuId);
cartGoods.setQty(qty); cartGoods.setQty(qty);
cartGoods.setIsMonthCard(addShoppingCartGoodsRequestVo.getIsMonthCard());
cartGoods.setIsSeedCouponGoods(addShoppingCartGoodsRequestVo.getIsSeedCouponGoods());
cartGoods.setCouponCode(addShoppingCartGoodsRequestVo.getCouponCode()); cartGoods.setCouponCode(addShoppingCartGoodsRequestVo.getCouponCode());
Integer goodsType = StringUtils.isEmpty(skuId) || ObjectUtils.equals(spuId, skuId) ? GoodsTypeEnum.SPU_GOODS.getGoodsType() : GoodsTypeEnum.SKU_GOODS.getGoodsType(); Integer goodsType = StringUtils.isEmpty(skuId) || ObjectUtils.equals(spuId, skuId) ? GoodsTypeEnum.SPU_GOODS.getGoodsType() : GoodsTypeEnum.SKU_GOODS.getGoodsType();
if (spuId.startsWith(CommonsConstant.COUPON_PREFIX)) { if (spuId.startsWith(CommonsConstant.COUPON_PREFIX)) {
...@@ -1420,12 +1510,19 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -1420,12 +1510,19 @@ public class ShoppingCartMCoffeeServiceImpl {
// cartGoods.setCartGoodsUid(spuId); // cartGoods.setCartGoodsUid(spuId);
} else if (CollectionUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getProductComboList()) || CollectionUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getProductGroupList())) { } else if (CollectionUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getProductComboList()) || CollectionUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getProductGroupList())) {
goodsType = GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType(); goodsType = GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType();
} else if (CommonsConstant.COUPON_TYPE == addShoppingCartGoodsRequestVo.getCouponType()){ } else if (CommonsConstant.COUPON_TYPE.equals(addShoppingCartGoodsRequestVo.getCouponType())){
goodsType = GoodsTypeEnum.ALL_COUPON_GOODS.getGoodsType(); goodsType = GoodsTypeEnum.ALL_COUPON_GOODS.getGoodsType();
}else if (Objects.equals(1,addShoppingCartGoodsRequestVo.getIsMonthCard())){
goodsType = GoodsTypeEnum.VIRTUAL_GOODS.getGoodsType();
} }
if (addShoppingCartGoodsRequestVo.getOperationType() != null && addShoppingCartGoodsRequestVo.getOperationType() == 2) { if (addShoppingCartGoodsRequestVo.getOperationType() != null && addShoppingCartGoodsRequestVo.getOperationType() == 2) {
goodsType = GoodsTypeEnum.REDUCE_PRICE_GOODS.getGoodsType(); goodsType = GoodsTypeEnum.REDUCE_PRICE_GOODS.getGoodsType();
} }
//月享卡信息
if (null != addShoppingCartGoodsRequestVo.getMonthCardInfo()){
cartGoods.setMonthCardInfo(addShoppingCartGoodsRequestVo.getMonthCardInfo());
}
cartGoods.setGoodsType(goodsType); cartGoods.setGoodsType(goodsType);
cartGoods.setExtra(addShoppingCartGoodsRequestVo.getExtra()); cartGoods.setExtra(addShoppingCartGoodsRequestVo.getExtra());
cartGoods.setSpecialExtra(addShoppingCartGoodsRequestVo.getSpecialExtra()); cartGoods.setSpecialExtra(addShoppingCartGoodsRequestVo.getSpecialExtra());
...@@ -1546,10 +1643,23 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -1546,10 +1643,23 @@ public class ShoppingCartMCoffeeServiceImpl {
allCartGoodsList.addAll(reduceGoods); allCartGoodsList.addAll(reduceGoods);
} }
//如果是餐具商品,则放到最后
if (CollectionUtils.isNotEmpty(allCartGoodsList)) { if (CollectionUtils.isNotEmpty(allCartGoodsList)) {
int size = allCartGoodsList.size(); int size = allCartGoodsList.size();
for(int i=0;i<size;i++) {
//如果是先把月享卡放到最后
if(Objects.equals(1,allCartGoodsList.get(i).getIsMonthCard())) {
CartGoods cartGoods = allCartGoodsList.get(i);
if(i != size-1) {
allCartGoodsList.remove(i);
allCartGoodsList.add(cartGoods);
break;
}
}
}
for(int i=0;i<size;i++) { for(int i=0;i<size;i++) {
//如果是餐具商品,则放到最后
if(allCartGoodsList.get(i).getSkuId().equals(mcCafeTablewareSkuId)) { if(allCartGoodsList.get(i).getSkuId().equals(mcCafeTablewareSkuId)) {
CartGoods cartGoods = allCartGoodsList.get(i); CartGoods cartGoods = allCartGoodsList.get(i);
cartGoods.setIsTableware(true); cartGoods.setIsTableware(true);
......
...@@ -128,6 +128,10 @@ public class CouponDiscountCalculation { ...@@ -128,6 +128,10 @@ public class CouponDiscountCalculation {
if (CollectionUtils.isNotEmpty(discountsNew)) { if (CollectionUtils.isNotEmpty(discountsNew)) {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = discountsNew.stream().filter(t -> ActivityTypeEnum.TYPE_32.getCode().equals(t.getType())).findFirst().get(); ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = discountsNew.stream().filter(t -> ActivityTypeEnum.TYPE_32.getCode().equals(t.getType())).findFirst().get();
cartGoods.setCouponName(goodsDiscount.getActivityName()); cartGoods.setCouponName(goodsDiscount.getActivityName());
}else{
//若没有商品优惠,清空当前商品的券缓存信息
cartGoods.setCouponCode("");
cartGoods.setCouponName("");
} }
} }
} }
......
package cn.freemud.service.impl.mcoffee.entity; package cn.freemud.service.impl.mcoffee.entity;
import cn.freemud.entities.vo.CartGoods; import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.ComboxGoodsRequestVo;
import cn.freemud.entities.vo.MaterialRequestVo;
import cn.freemud.entities.vo.ShoppingCartInfoRequestVo;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty; import org.hibernate.validator.constraints.NotEmpty;
...@@ -133,4 +130,17 @@ public class MCoffeeAddGoodsRequestVo { ...@@ -133,4 +130,17 @@ public class MCoffeeAddGoodsRequestVo {
*/ */
private String groupName; private String groupName;
/**
* 当前商品是否为月享卡,0:否,1:是
*/
private int isMonthCard;
/**
* 是否为种子券商品 1:是;0:否
*/
private int isSeedCouponGoods;
/**
* 月享卡加购信息
*/
private MonthCardVo monthCardInfo;
} }
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