Commit d331f236 by chongfu.liang

Merge branch 'feature/20201202-商品券换购券商品添加可售时间校验'

parents 05d702d6 a38c21b2
...@@ -559,4 +559,5 @@ public class ShoppingCartAdapter { ...@@ -559,4 +559,5 @@ public class ShoppingCartAdapter {
} }
return false; return false;
} }
} }
...@@ -23,6 +23,7 @@ public class CheckSpqInfoResponseDto { ...@@ -23,6 +23,7 @@ public class CheckSpqInfoResponseDto {
* 券名称 * 券名称
*/ */
private String couponName; private String couponName;
private boolean stockLimit;
/** /**
* 商品券code * 商品券code
*/ */
......
...@@ -42,10 +42,12 @@ import cn.freemud.service.thirdparty.*; ...@@ -42,10 +42,12 @@ import cn.freemud.service.thirdparty.*;
import cn.freemud.utils.*; import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.productcenter.constant.ResponseConstant; import com.freemud.application.sdk.api.productcenter.constant.ResponseConstant;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductRequest; import com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductRequest;
import com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductType; import com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductType;
import com.freemud.application.sdk.api.productcenter.response.ProductResponseDTO; import com.freemud.application.sdk.api.productcenter.response.ProductResponseDTO;
import com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResponse; import com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResponse;
import com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResult;
import com.freemud.card.sdk.comm.Finals; import com.freemud.card.sdk.comm.Finals;
import com.freemud.card.sdk.comm.SignUtil; import com.freemud.card.sdk.comm.SignUtil;
import com.freemud.card.sdk.service.CouponAvailableService; import com.freemud.card.sdk.service.CouponAvailableService;
...@@ -709,6 +711,15 @@ public class CouponServiceImpl implements CouponService { ...@@ -709,6 +711,15 @@ public class CouponServiceImpl implements CouponService {
|| valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) { || valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) {
return null; return null;
} }
List<ProductBeanDTO> productList = valiadProductResponse.getData().getSuccessList().stream().map(ValiadShopProductResult::getProductType).collect(Collectors.toList());
Optional<ProductBeanDTO> firstProduct = productList.stream().filter(p -> ObjectUtils.equals(p.getPid(), productsVo.getSpuId())).findFirst();
if (!firstProduct.isPresent()) {
return null;
}
ProductBeanDTO spuProduct = firstProduct.get();
CheckSpqInfoResponseDto dto = new CheckSpqInfoResponseDto(); CheckSpqInfoResponseDto dto = new CheckSpqInfoResponseDto();
dto.setCouponCode(couponCode); dto.setCouponCode(couponCode);
dto.setActiveCode(couponDetailResponseDto.getDetails().get(0).getActive().getActiveCode()); dto.setActiveCode(couponDetailResponseDto.getDetails().get(0).getActive().getActiveCode());
...@@ -717,6 +728,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -717,6 +728,7 @@ public class CouponServiceImpl implements CouponService {
dto.setPrice(productsVo.getFinalPrice()); dto.setPrice(productsVo.getFinalPrice());
dto.setSpuId(productsVo.getSpuId()); dto.setSpuId(productsVo.getSpuId());
dto.setSpuName(productsVo.getSkuName()); dto.setSpuName(productsVo.getSkuName());
dto.setStockLimit(ObjectUtils.equals(1, spuProduct.getStockLimit()));
dto.setSkuId(productsVo.getSkuId()); dto.setSkuId(productsVo.getSkuId());
dto.setSkuName(StringUtils.isNotBlank(productsVo.getSkuName()) ? productsVo.getSkuName() : productsVo.getSpuName()); dto.setSkuName(StringUtils.isNotBlank(productsVo.getSkuName()) ? productsVo.getSkuName() : productsVo.getSpuName());
dto.setPicture(productsVo.getSpuPicture()); dto.setPicture(productsVo.getSpuPicture());
...@@ -805,7 +817,6 @@ public class CouponServiceImpl implements CouponService { ...@@ -805,7 +817,6 @@ public class CouponServiceImpl implements CouponService {
return null; return null;
} }
//券返回的商品id //券返回的商品id
List<String> skuIds = Lists.newArrayList(); List<String> skuIds = Lists.newArrayList();
String skuId = goodsId; String skuId = goodsId;
...@@ -823,6 +834,16 @@ public class CouponServiceImpl implements CouponService { ...@@ -823,6 +834,16 @@ public class CouponServiceImpl implements CouponService {
|| valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) { || valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) {
return null; return null;
} }
List<ProductBeanDTO> productList = valiadProductResponse.getData().getSuccessList().stream().map(ValiadShopProductResult::getProductType).collect(Collectors.toList());
Optional<ProductBeanDTO> firstProduct = productList.stream().filter(p -> ObjectUtils.equals(p.getPid(), productsVo.getSpuId())).findFirst();
if (!firstProduct.isPresent()) {
return null;
}
ProductBeanDTO spuProduct = firstProduct.get();
// 如果是套餐商品,更新套餐内固定商品&可选商品的详细信息
ProductBeanDTO.SkuProductBean skuProduct = spuProduct.getSkuList().stream().filter(p -> ObjectUtils.equals(productsVo.getSkuId(), p.getSkuId())).findFirst().get();
CheckSpqInfoResponseDto dto = new CheckSpqInfoResponseDto(); CheckSpqInfoResponseDto dto = new CheckSpqInfoResponseDto();
dto.setCouponCode(couponCode); dto.setCouponCode(couponCode);
dto.setActiveCode(couponActivityDetail.getActive().getActiveCode()); dto.setActiveCode(couponActivityDetail.getActive().getActiveCode());
...@@ -836,6 +857,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -836,6 +857,7 @@ public class CouponServiceImpl implements CouponService {
dto.setPicture(productsVo.getSpuPicture()); dto.setPicture(productsVo.getSpuPicture());
dto.setDefaultSpecName(productsVo.getDefaultSpecName()); dto.setDefaultSpecName(productsVo.getDefaultSpecName());
dto.setDefaultSpecId(productsVo.getDefaultSpecId()); dto.setDefaultSpecId(productsVo.getDefaultSpecId());
dto.setStockLimit(ObjectUtils.equals(1, skuProduct.getStockLimit()));
dto.setExtras(productsVo.getExtra()); dto.setExtras(productsVo.getExtra());
log.info("dto***" + dto); log.info("dto***" + dto);
return dto; return dto;
......
...@@ -747,6 +747,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -747,6 +747,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo, CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo,
shoppingCartInfoRequestVo.getOrderType(), tableNumber, shoppingCartInfoRequestVo.getMenuType() ,shoppingCartBaseService); shoppingCartInfoRequestVo.getOrderType(), tableNumber, shoppingCartInfoRequestVo.getMenuType() ,shoppingCartBaseService);
com.freemud.sdk.api.assortment.shoppingcart.domain.ShoppingCartGoodsResponseVo cartGoodsResponseVo = checkCartRequest.getShoppingCartGoodsResponseVo(); com.freemud.sdk.api.assortment.shoppingcart.domain.ShoppingCartGoodsResponseVo cartGoodsResponseVo = checkCartRequest.getShoppingCartGoodsResponseVo();
// 校验商品券库存
//商品不再售卖状态或价格变动,直接返回报错 //商品不再售卖状态或价格变动,直接返回报错
if (cartGoodsResponseVo != null) { if (cartGoodsResponseVo != null) {
if (cartGoodsResponseVo.getCartGoodsStates() != null && cartGoodsResponseVo.getCartGoodsStates().isHasInvalidGoods()) { if (cartGoodsResponseVo.getCartGoodsStates() != null && cartGoodsResponseVo.getCartGoodsStates().isHasInvalidGoods()) {
...@@ -949,6 +952,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -949,6 +952,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
validCouponMap.put(spqId, checkSpqInfoResponseDto); validCouponMap.put(spqId, checkSpqInfoResponseDto);
cartGoods.setName(checkSpqInfoResponseDto.getCouponName()); cartGoods.setName(checkSpqInfoResponseDto.getCouponName());
cartGoods.setSpuName(checkSpqInfoResponseDto.getCouponName()); cartGoods.setSpuName(checkSpqInfoResponseDto.getCouponName());
cartGoods.setStockLimit(checkSpqInfoResponseDto.isStockLimit());
// 添加请求的优惠券信息 // 添加请求的优惠券信息
ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon coupon = new ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon(); ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon coupon = new ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon();
coupon.setCode(checkSpqInfoResponseDto.getCouponCode()); coupon.setCode(checkSpqInfoResponseDto.getCouponCode());
......
...@@ -104,7 +104,7 @@ public class CalculationSharingDiscountService { ...@@ -104,7 +104,7 @@ public class CalculationSharingDiscountService {
validCouponMap.put(spqId, checkSpqInfo); validCouponMap.put(spqId, checkSpqInfo);
cartGoods.setName(checkSpqInfo.getCouponName()); cartGoods.setName(checkSpqInfo.getCouponName());
cartGoods.setSpuName(checkSpqInfo.getCouponName()); cartGoods.setSpuName(checkSpqInfo.getCouponName());
cartGoods.setStockLimit(checkSpqInfo.isStockLimit());
CalculationSharingDiscountRequestDto.CalculationDiscountCoupon coupon = new CalculationSharingDiscountRequestDto.CalculationDiscountCoupon(); CalculationSharingDiscountRequestDto.CalculationDiscountCoupon coupon = new CalculationSharingDiscountRequestDto.CalculationDiscountCoupon();
coupon.setCode(checkSpqInfo.getCouponCode()); coupon.setCode(checkSpqInfo.getCouponCode());
coupon.setActivityCode(checkSpqInfo.getActiveCode()); coupon.setActivityCode(checkSpqInfo.getActiveCode());
......
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