Commit d331f236 by chongfu.liang

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

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