Commit f9aafcd3 by chongfu.liang

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

# Conflicts:
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
parents ac8e53c5 e0b2e4df
...@@ -47,6 +47,11 @@ import cn.freemud.utils.*; ...@@ -47,6 +47,11 @@ import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.couponcenter.offline.domain.CodeInfoVO; import com.freemud.application.sdk.api.couponcenter.offline.domain.CodeInfoVO;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse;
import com.freemud.application.sdk.api.productcenter.constant.ResponseConstant;
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.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;
...@@ -60,6 +65,7 @@ import com.freemud.card.sdk.vo.comm.GetCouponVo; ...@@ -60,6 +65,7 @@ import com.freemud.card.sdk.vo.comm.GetCouponVo;
import com.freemud.card.sdk.vo.coupon.CreateCouponVo; import com.freemud.card.sdk.vo.coupon.CreateCouponVo;
import com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo; import com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo;
import com.freemud.card.sdk.vo.coupon.response.MemberBaseRespVo; import com.freemud.card.sdk.vo.coupon.response.MemberBaseRespVo;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CartResponseConstant;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.gson.Gson; import com.google.gson.Gson;
...@@ -667,6 +673,13 @@ public class CouponServiceImpl implements CouponService { ...@@ -667,6 +673,13 @@ public class CouponServiceImpl implements CouponService {
if (null == productsVo || !Objects.equals(productsVo.getStatus(), StoreItemStatus.PUT_ON_SALE.getCode())) { if (null == productsVo || !Objects.equals(productsVo.getStatus(), StoreItemStatus.PUT_ON_SALE.getCode())) {
return null; return null;
} }
// 校验商品可用时间
ValidateShopProductRequest request = getValidateShopProductRequest(productsVo, requestDto);
ProductResponseDTO<ValiadShopProductResponse> valiadProductResponse = storeItemClient.validateShopProduct(request);
if (null == valiadProductResponse || Objects.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, valiadProductResponse.getErrcode())
|| valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) {
return null;
}
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());
...@@ -683,6 +696,32 @@ public class CouponServiceImpl implements CouponService { ...@@ -683,6 +696,32 @@ public class CouponServiceImpl implements CouponService {
return dto; return dto;
} }
private ValidateShopProductRequest getValidateShopProductRequest(GetProductsVo product, CheckSpqInfoRequestDto requestDto) {
ValidateShopProductRequest request = new ValidateShopProductRequest();
request.setChannel(requestDto.getMenuType());
request.setPartnerId(requestDto.getPartnerId());
request.setStoreId(requestDto.getStoreId());
List<ValidateShopProductType> productTypeList = new ArrayList<>();
ValidateShopProductType productType = new ValidateShopProductType();
productType.setAttributeList(null);
productType.setComboProductTypeList(null);
productType.setMemberDiscount(null);
productType.setPrice(product.getFinalPrice().intValue());
productType.setProductGroupTypeList(null);
productType.setSkuId(product.getSkuId());
productType.setSpuId(product.getSpuId());
productType.setUuid(UUID.randomUUID().toString());
productType.setValidateAttribute(0);
productType.setValidatePrice(1);
productType.setValidateStatuses(null);
productTypeList.add(productType);
request.setProductTypeList(productTypeList);
return request;
}
/** /**
* 换购券 * 换购券
* 商品券支持多商品 * 商品券支持多商品
...@@ -752,6 +791,13 @@ public class CouponServiceImpl implements CouponService { ...@@ -752,6 +791,13 @@ public class CouponServiceImpl implements CouponService {
if (null == productsVo || !Objects.equals(productsVo.getStatus(), StoreItemStatus.PUT_ON_SALE.getCode())) { if (null == productsVo || !Objects.equals(productsVo.getStatus(), StoreItemStatus.PUT_ON_SALE.getCode())) {
return null; return null;
} }
// 校验商品可用时间
ValidateShopProductRequest request = getValidateShopProductRequest(productsVo, requestDto);
ProductResponseDTO<ValiadShopProductResponse> valiadProductResponse = storeItemClient.validateShopProduct(request);
if (null == valiadProductResponse || Objects.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, valiadProductResponse.getErrcode())
|| valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) {
return null;
}
CheckSpqInfoResponseDto dto = new CheckSpqInfoResponseDto(); CheckSpqInfoResponseDto dto = new CheckSpqInfoResponseDto();
dto.setCouponCode(couponCode); dto.setCouponCode(couponCode);
dto.setActiveCode(couponActivityDetail.getActive().getActiveCode()); dto.setActiveCode(couponActivityDetail.getActive().getActiveCode());
......
...@@ -13,6 +13,9 @@ ...@@ -13,6 +13,9 @@
package cn.freemud.service.thirdparty; package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductRequest;
import com.freemud.application.sdk.api.productcenter.response.ProductResponseDTO;
import com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResponse;
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -49,4 +52,12 @@ public interface StoreItemClient { ...@@ -49,4 +52,12 @@ public interface StoreItemClient {
*/ */
@PostMapping("/Product/GetSpectionProductBySkuId") @PostMapping("/Product/GetSpectionProductBySkuId")
ProductListDto getSpuIdsBySkuIds(@RequestBody GetSpuIdsBySkuIdsDto requestDto); ProductListDto getSpuIdsBySkuIds(@RequestBody GetSpuIdsBySkuIdsDto requestDto);
/**
* 校验商品可用性
*/
@PostMapping("Shop/ValidateShopProduct")
ProductResponseDTO<ValiadShopProductResponse> validateShopProduct(@RequestBody ValidateShopProductRequest request);
} }
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