Commit a1dd7e1f by huiyang.chen

Merge branch '2020/09/24-运费券-huiyang'

# Conflicts:
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
parents 6d98b081 7001aeeb
...@@ -18,4 +18,6 @@ public class CommonsConstant { ...@@ -18,4 +18,6 @@ public class CommonsConstant {
public final static Integer WEIGHT_PRODUCT = 1; public final static Integer WEIGHT_PRODUCT = 1;
public final static Integer COUPON_TYPE = 0;
} }
...@@ -158,6 +158,10 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -158,6 +158,10 @@ public class ActivityCalculationDiscountResponseDto {
* 运费月卡入机字段 * 运费月卡入机字段
*/ */
private String tenderId; private String tenderId;
/**
* 1-运费券 2-运费月卡券 3-月卡券 4-万能券 5-啡常月享卡 6-通用券
*/
private Integer extendType;
} }
@Data @Data
......
...@@ -22,6 +22,10 @@ public class ActivityDiscountsDto { ...@@ -22,6 +22,10 @@ public class ActivityDiscountsDto {
private Integer discountAmount; private Integer discountAmount;
private Integer activityType; private Integer activityType;
private String tenderId; private String tenderId;
/**
* 1-运费券 2-运费月卡券 3-月卡券 4-万能券 5-啡常月享卡 6-通用券
*/
private Integer extendType;
/** /**
* 实际参与活动商品数量 * 实际参与活动商品数量
......
...@@ -335,7 +335,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -335,7 +335,7 @@ public class ShoppingCartMCoffeeServiceImpl {
// 获取购物车商品 // 获取购物车商品
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, sessionId, "", shoppingCartBaseService); List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, sessionId, "", shoppingCartBaseService);
log.info("cartGoodsList: {}",JSONObject.toJSONString(cartGoodsList));
// 如果购物车商品不为空, 则check购物车中所有商品 // 如果购物车商品不为空, 则check购物车中所有商品
if (CollectionUtils.isNotEmpty(cartGoodsList)) { if (CollectionUtils.isNotEmpty(cartGoodsList)) {
// check购物车中所有商品 // check购物车中所有商品
...@@ -538,6 +538,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -538,6 +538,7 @@ public class ShoppingCartMCoffeeServiceImpl {
// 获取购物车商品 // 获取购物车商品
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, tableNumber, shoppingCartBaseService); List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, tableNumber, shoppingCartBaseService);
log.info("cartGoodsList: {}",JSONObject.toJSONString(cartGoodsList));
if (cartGoodsList == null || CollectionUtils.isEmpty(cartGoodsList)) { if (cartGoodsList == null || CollectionUtils.isEmpty(cartGoodsList)) {
throw new ServiceException(ResponseResult.SHOPPING_CART_GETINFO_INVAILD); throw new ServiceException(ResponseResult.SHOPPING_CART_GETINFO_INVAILD);
} }
...@@ -1111,6 +1112,8 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -1111,6 +1112,8 @@ 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()){
goodsType = GoodsTypeEnum.COUPON_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();
......
...@@ -200,6 +200,7 @@ public class CalculationServiceImpl { ...@@ -200,6 +200,7 @@ public class CalculationServiceImpl {
activityDiscountsDto.setActivityType(discountType); activityDiscountsDto.setActivityType(discountType);
activityDiscountsDto.setDiscountAmount(0 - discountAmount); activityDiscountsDto.setDiscountAmount(0 - discountAmount);
activityDiscountsDto.setTenderId(discount.getTenderId()); activityDiscountsDto.setTenderId(discount.getTenderId());
activityDiscountsDto.setExtendType(discount.getExtendType());
activityDiscountsDtos.add(activityDiscountsDto); activityDiscountsDtos.add(activityDiscountsDto);
} }
} }
...@@ -243,7 +244,7 @@ public class CalculationServiceImpl { ...@@ -243,7 +244,7 @@ public class CalculationServiceImpl {
// couponPromotionVO.setOrderType(orderType); // couponPromotionVO.setOrderType(orderType);
// couponPromotionVO.setFlg(CouponFlag.YES.getCode()); // couponPromotionVO.setFlg(CouponFlag.YES.getCode());
//优惠券 //优惠券
couponDiscountCalculation.updateShoppingCartGoodsApportion(calculationDiscountResult, shoppingCartGoodsDto); couponDiscountCalculation.updateShoppingCartGoodsApportion(calculationDiscountResult, shoppingCartGoodsDto, shoppingCartInfoRequestVo);
setMealCalculation.updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto); setMealCalculation.updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto);
......
package cn.freemud.service.impl.mcoffee.calculation; package cn.freemud.service.impl.mcoffee.calculation;
import cn.freemud.adapter.CouponAdapter; import cn.freemud.adapter.CouponAdapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ActivityDiscountsDto; import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
...@@ -9,6 +10,7 @@ import cn.freemud.entities.vo.*; ...@@ -9,6 +10,7 @@ import cn.freemud.entities.vo.*;
import cn.freemud.enums.*; import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.CommonService; import cn.freemud.service.CommonService;
import cn.freemud.service.impl.ItemServiceImpl;
import cn.freemud.service.impl.mcoffee.entity.CouponAvailableReq; import cn.freemud.service.impl.mcoffee.entity.CouponAvailableReq;
import cn.freemud.service.impl.mcoffee.entity.CouponAvailableResp; import cn.freemud.service.impl.mcoffee.entity.CouponAvailableResp;
import cn.freemud.service.impl.mcoffee.entity.CouponProductVo; import cn.freemud.service.impl.mcoffee.entity.CouponProductVo;
...@@ -49,7 +51,8 @@ public class CouponDiscountCalculation { ...@@ -49,7 +51,8 @@ public class CouponDiscountCalculation {
@Autowired @Autowired
private CustomerExtendClient customerExtendClient; private CustomerExtendClient customerExtendClient;
@Autowired
private ItemServiceImpl itemService;
@Autowired @Autowired
private CommonService commonService; private CommonService commonService;
...@@ -133,7 +136,7 @@ public class CouponDiscountCalculation { ...@@ -133,7 +136,7 @@ public class CouponDiscountCalculation {
/** /**
* 商品均摊 * 商品均摊
*/ */
public void updateShoppingCartGoodsApportion(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, ShoppingCartGoodsDto shoppingCartGoodsDto){ public void updateShoppingCartGoodsApportion(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, ShoppingCartGoodsDto shoppingCartGoodsDto, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo){
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getDiscounts()) if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getDiscounts())
|| !calculationDiscountResult.getDiscounts().stream().anyMatch(discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType()) || !calculationDiscountResult.getDiscounts().stream().anyMatch(discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType())
...@@ -159,6 +162,10 @@ public class CouponDiscountCalculation { ...@@ -159,6 +162,10 @@ public class CouponDiscountCalculation {
for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoods : shoppingCartGoodsDto.getProducts()) { for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoods : shoppingCartGoodsDto.getProducts()) {
//商品券商品 //商品券商品
if (StringUtils.isNotEmpty(cartGoods.getCouponCode())) { if (StringUtils.isNotEmpty(cartGoods.getCouponCode())) {
if (goodsMap.get(cartGoods.getCartGoodsUid()) == null) {
continue;
}
List<ActivityDiscountsDto> productActivityDiscountsDtos = new ArrayList<>(); List<ActivityDiscountsDto> productActivityDiscountsDtos = new ArrayList<>();
if (CollectionUtils.isNotEmpty(discounts)) { if (CollectionUtils.isNotEmpty(discounts)) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount couponDiscount : discounts) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount couponDiscount : discounts) {
...@@ -168,8 +175,24 @@ public class CouponDiscountCalculation { ...@@ -168,8 +175,24 @@ public class CouponDiscountCalculation {
activityDiscountsDto.setActivityName(couponDiscount.getActivityName()); activityDiscountsDto.setActivityName(couponDiscount.getActivityName());
activityDiscountsDto.setActivityType(couponDiscount.getType()); activityDiscountsDto.setActivityType(couponDiscount.getType());
activityDiscountsDto.setDiscountAmount(0 - couponDiscount.getDiscount()); activityDiscountsDto.setDiscountAmount(0 - couponDiscount.getDiscount());
Integer extendType = couponDiscount.getExtendType();
activityDiscountsDto.setExtendType(extendType);
activityDiscountsDto.setTenderId(goodsMap.get(cartGoods.getCartGoodsUid()).getArtNo());
productActivityDiscountsDtos.add(activityDiscountsDto); productActivityDiscountsDtos.add(activityDiscountsDto);
if (extendType != null && extendType == 4 ) {
//调用商品的接口获取商品键位
List<String> productIds=Arrays.asList(cartGoods.getSkuId());
BaseResponse<Map<String, GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean>> baseResponse = itemService.getProducts(shoppingCartInfoRequestVo.getPartnerId(),
shoppingCartInfoRequestVo.getShopId(), productIds, false, shoppingCartInfoRequestVo.getMenuType());
if (ResponseResult.SUCCESS.getCode().equals(baseResponse.getCode()) && baseResponse.getResult() != null){
GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean productBean = baseResponse.getResult().get(cartGoods.getSkuId());
cartGoods.setCustomerCode(productBean.getCustomerCode());
}
}else {
cartGoods.setCustomerCode(goodsMap.get(cartGoods.getCartGoodsUid()).getArtNo());
}
cartGoods.setTotalDiscountAmount(-activityDiscountsDto.getDiscountAmount()); cartGoods.setTotalDiscountAmount(-activityDiscountsDto.getDiscountAmount());
cartGoods.setSalePrice(0L); cartGoods.setSalePrice(0L);
cartGoods.setActivityDiscountsDtos(productActivityDiscountsDtos); cartGoods.setActivityDiscountsDtos(productActivityDiscountsDtos);
...@@ -177,16 +200,6 @@ public class CouponDiscountCalculation { ...@@ -177,16 +200,6 @@ public class CouponDiscountCalculation {
} }
} }
if (goodsMap.get(cartGoods.getCartGoodsUid()) == null) {
continue;
}
//商品券键位编号为空
if(StringUtils.isBlank(goodsMap.get(cartGoods.getCartGoodsUid()).getArtNo())){
//直接抛出异常导致同一个 普通商品 和万能券商品 校验有问题,故促销未返回,默认为空
// throw new ServiceException(ResponseResult.SHOPPING_CART_SEAT_EMPTY);
cartGoods.setCustomerCode("");
}
cartGoods.setCustomerCode(goodsMap.get(cartGoods.getCartGoodsUid()).getArtNo());
} }
} }
......
...@@ -119,6 +119,11 @@ public class MCoffeeAddGoodsRequestVo { ...@@ -119,6 +119,11 @@ public class MCoffeeAddGoodsRequestVo {
private Integer operationType; private Integer operationType;
/** /**
* 券类型 0:商品券
*/
private Integer couponType;
/**
* 优惠券号 * 优惠券号
*/ */
private String couponCode; private String couponCode;
......
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