Commit 47cb9077 by shuhu.hou

Merge branch 'feature/1.9.10-购物车接口修改渠道字段-海波' into develop

# Conflicts:
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/BaseCreateOrderRequest.java
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
parents 29eb8dc7 6b000aca
...@@ -1387,9 +1387,9 @@ public class OrderSdkAdapter { ...@@ -1387,9 +1387,9 @@ public class OrderSdkAdapter {
* @param stockChangeType 库存改变类型 * @param stockChangeType 库存改变类型
* @return * @return
*/ */
public UpdateStocksRequest getUpdateProductStock(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderProductRequest> products, StockChangeType stockChangeType) { public UpdateStocksRequest getUpdateProductStock(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderProductRequest> products, StockChangeType stockChangeType,String menuType) {
UpdateStocksRequest updateStocksRequest = new UpdateStocksRequest(); UpdateStocksRequest updateStocksRequest = new UpdateStocksRequest();
updateStocksRequest.setChannel("saas"); updateStocksRequest.setChannel(menuType);
updateStocksRequest.setChangeType(stockChangeType.getCode()); updateStocksRequest.setChangeType(stockChangeType.getCode());
updateStocksRequest.setIsOversold(0); updateStocksRequest.setIsOversold(0);
updateStocksRequest.setPartnerId(orderBean.getCompanyId()); updateStocksRequest.setPartnerId(orderBean.getCompanyId());
......
...@@ -156,6 +156,11 @@ public class BaseCreateOrderRequest extends BaseConfig { ...@@ -156,6 +156,11 @@ public class BaseCreateOrderRequest extends BaseConfig {
*/ */
private String region; private String region;
/**
* 订单渠道
*/
private String menuType;
@Data @Data
public static class DeliveryTypeInfo { public static class DeliveryTypeInfo {
/** /**
......
...@@ -34,6 +34,11 @@ public class CreateFatherSonOrderRequest extends BaseConfig { ...@@ -34,6 +34,11 @@ public class CreateFatherSonOrderRequest extends BaseConfig {
*/ */
MqMessageRequest mqMessageRequest; MqMessageRequest mqMessageRequest;
/**
* 订单渠道类型
*/
private String menuType;
@Data @Data
public static class OrderInfo { public static class OrderInfo {
/** /**
......
...@@ -134,7 +134,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -134,7 +134,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
return getCreateOrderResponse(createOrderResponse.getErrcode().toString(), createOrderResponse.getErrmsg(), null); return getCreateOrderResponse(createOrderResponse.getErrcode().toString(), createOrderResponse.getErrmsg(), null);
} }
BaseOrderResponse baseOrderResponse = updateStockAndScore(createOrderResponse.getData(), config.getBaseCreateOrderRequest().getProducts(), config.getBaseCreateOrderRequest().getActivityUpdateStockRequest(), BaseOrderResponse baseOrderResponse = updateStockAndScore(createOrderResponse.getData(), config.getBaseCreateOrderRequest().getProducts(), config.getBaseCreateOrderRequest().getActivityUpdateStockRequest(),
config.getBaseCreateOrderRequest().getAccounts(), config.getMqMessageRequest()); config.getBaseCreateOrderRequest().getAccounts(), config.getMqMessageRequest(),config.getBaseCreateOrderRequest().getMenuType());
if (!RESPONSE_SUCCESS.equals(baseOrderResponse.getErrcode())) { if (!RESPONSE_SUCCESS.equals(baseOrderResponse.getErrcode())) {
return getCreateOrderResponse(baseOrderResponse.getErrcode().toString(), baseOrderResponse.getErrmsg(), null); return getCreateOrderResponse(baseOrderResponse.getErrcode().toString(), baseOrderResponse.getErrmsg(), null);
} }
...@@ -154,8 +154,8 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -154,8 +154,8 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
return CreateFatherSonOrderResponse.error("500", ""); return CreateFatherSonOrderResponse.error("500", "");
} }
CreateFatherSonOrderRequest.OrderInfo productOrderRequest = createFatherSonOrderRequest.getOrderInfoList().stream().filter(orderBeanTemp -> 1 == orderBeanTemp.getBizType()).collect(Collectors.toList()).get(0); CreateFatherSonOrderRequest.OrderInfo productOrderRequest = createFatherSonOrderRequest.getOrderInfoList().stream().filter(orderBeanTemp -> 1 == orderBeanTemp.getBizType()).collect(Collectors.toList()).get(0);
BaseOrderResponse baseOrderResponse = updateStockAndScore(productOrderInfo.get(0), productOrderRequest.getProducts(), productOrderRequest.getActivityUpdateStockRequest(), productOrderRequest.getAccounts(), BaseOrderResponse baseOrderResponse =updateStockAndScore(productOrderInfo.get(0), productOrderRequest.getProducts(), productOrderRequest.getActivityUpdateStockRequest(), productOrderRequest.getAccounts(),
createFatherSonOrderRequest.getMqMessageRequest()); createFatherSonOrderRequest.getMqMessageRequest(),createFatherSonOrderRequest.getMenuType());
if (!RESPONSE_SUCCESS.equals(baseOrderResponse.getErrcode())) { if (!RESPONSE_SUCCESS.equals(baseOrderResponse.getErrcode())) {
return CreateFatherSonOrderResponse.error(baseOrderResponse.getErrcode().toString(), baseOrderResponse.getErrmsg()); return CreateFatherSonOrderResponse.error(baseOrderResponse.getErrcode().toString(), baseOrderResponse.getErrmsg());
} }
...@@ -175,9 +175,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -175,9 +175,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
} }
private BaseOrderResponse updateStockAndScore(OrderBean orderBean, List<CreateOrderProductRequest> products, ActivityUpdateStockRequest updateStockRequest, private BaseOrderResponse updateStockAndScore(OrderBean orderBean, List<CreateOrderProductRequest> products, ActivityUpdateStockRequest updateStockRequest,
List<CreateOrderAccountRequest> accounts, MqMessageRequest mqMessageRequest) { List<CreateOrderAccountRequest> accounts, MqMessageRequest mqMessageRequest,String menuType) {
//TODO 转换获取库存信息,扣减库存 //TODO 转换获取库存信息,扣减库存
UpdateStocksRequest updateStocksRequest = orderSdkAdapter.getUpdateProductStock(orderBean, products, StockChangeType.REDUCE); UpdateStocksRequest updateStocksRequest = orderSdkAdapter.getUpdateProductStock(orderBean, products, StockChangeType.REDUCE,menuType);
if (updateStocksRequest != null && CollectionUtils.isNotEmpty(updateStocksRequest.getProductStocks())) { if (updateStocksRequest != null && CollectionUtils.isNotEmpty(updateStocksRequest.getProductStocks())) {
BaseResponse baseResponse = stockSdkService.reducesStocks(updateStocksRequest, ""); BaseResponse baseResponse = stockSdkService.reducesStocks(updateStocksRequest, "");
ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(), ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(),
......
...@@ -120,6 +120,7 @@ public class ShoppingCartAdapter { ...@@ -120,6 +120,7 @@ public class ShoppingCartAdapter {
request.setPartnerId(checkCartRequest.getPartnerId()); request.setPartnerId(checkCartRequest.getPartnerId());
request.setStoreId(checkCartRequest.getStoreId()); request.setStoreId(checkCartRequest.getStoreId());
request.setGoodsIds(goodsIds.stream().distinct().collect(Collectors.toList())); request.setGoodsIds(goodsIds.stream().distinct().collect(Collectors.toList()));
request.setMenuType(checkCartRequest.getMenuType());
return request; return request;
} }
......
package cn.freemud.enums; package com.freemud.sdk.api.assortment.shoppingcart.enums;
import java.util.Arrays; import java.util.Arrays;
import java.util.Optional; import java.util.Optional;
......
...@@ -30,6 +30,7 @@ import com.freemud.application.sdk.api.productcenter.service.ProductService; ...@@ -30,6 +30,7 @@ import com.freemud.application.sdk.api.productcenter.service.ProductService;
import com.freemud.sdk.api.assortment.shoppingcart.adapter.ShoppingCartAdapter; import com.freemud.sdk.api.assortment.shoppingcart.adapter.ShoppingCartAdapter;
import com.freemud.sdk.api.assortment.shoppingcart.constant.*; import com.freemud.sdk.api.assortment.shoppingcart.constant.*;
import com.freemud.sdk.api.assortment.shoppingcart.domain.*; import com.freemud.sdk.api.assortment.shoppingcart.domain.*;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest; import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest;
import com.freemud.sdk.api.assortment.shoppingcart.request.GetProductInfoRequest; import com.freemud.sdk.api.assortment.shoppingcart.request.GetProductInfoRequest;
import com.freemud.sdk.api.assortment.shoppingcart.util.CartResponseUtil; import com.freemud.sdk.api.assortment.shoppingcart.util.CartResponseUtil;
...@@ -141,7 +142,8 @@ public interface ShoppingCartBaseService { ...@@ -141,7 +142,8 @@ public interface ShoppingCartBaseService {
.map(CartGoods::getSpuId).collect(Collectors.toList()); .map(CartGoods::getSpuId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(spuIds)) { if (CollectionUtils.isNotEmpty(spuIds)) {
Map<String, GetMenuByIdsResponseDto.DataBean.MenuDetailDto> menuDetailDtoMap = checkMenuProducts(checkCartRequest.getPartnerId(), checkCartRequest.getStoreId(), spuIds, checkCartRequest.getTrackingNo()); Map<String, GetMenuByIdsResponseDto.DataBean.MenuDetailDto> menuDetailDtoMap = checkMenuProducts(checkCartRequest.getPartnerId()
, checkCartRequest.getStoreId(), spuIds, checkCartRequest.getTrackingNo(), BusinessTypeEnum.getByType(checkCartRequest.getMenuType()).getCode());
// 校验购物车商品是否在菜单 // 校验购物车商品是否在菜单
Set<String> keySet = null; Set<String> keySet = null;
if (menuDetailDtoMap == null || !(keySet = menuDetailDtoMap.keySet()).containsAll(spuIds)) { if (menuDetailDtoMap == null || !(keySet = menuDetailDtoMap.keySet()).containsAll(spuIds)) {
...@@ -371,14 +373,14 @@ public interface ShoppingCartBaseService { ...@@ -371,14 +373,14 @@ public interface ShoppingCartBaseService {
default Map<String, GetMenuByIdsResponseDto.DataBean.MenuDetailDto> checkMenuProducts(String partnerId, default Map<String, GetMenuByIdsResponseDto.DataBean.MenuDetailDto> checkMenuProducts(String partnerId,
String shopId, String shopId,
List<String> productIds, String trackingNo) { List<String> productIds, String trackingNo,String menuType) {
Map<String, GetMenuByIdsResponseDto.DataBean.MenuDetailDto> menuDetailDtosMap = new HashMap<>(); Map<String, GetMenuByIdsResponseDto.DataBean.MenuDetailDto> menuDetailDtosMap = new HashMap<>();
//查询spu商品是否在菜单 //查询spu商品是否在菜单
GetMenuCategoryByIdsRequest getMenuCategoryByIdsDto = GetMenuCategoryByIdsRequest.builder() GetMenuCategoryByIdsRequest getMenuCategoryByIdsDto = GetMenuCategoryByIdsRequest.builder()
.businessDate(DateTimeUtils.getCurrentDateTimeStr()) .businessDate(DateTimeUtils.getCurrentDateTimeStr())
.channelType(OrderChannelType.SAAS.getCode()) .channelType(menuType)
.partnerId(partnerId) .partnerId(partnerId)
.shopId(shopId) .shopId(shopId)
.productIds(productIds).build(); .productIds(productIds).build();
......
...@@ -250,6 +250,7 @@ public class OrderAdapter { ...@@ -250,6 +250,7 @@ public class OrderAdapter {
CreateFatherSonOrderRequest createFatherSonOrderRequest = new CreateFatherSonOrderRequest(); CreateFatherSonOrderRequest createFatherSonOrderRequest = new CreateFatherSonOrderRequest();
createFatherSonOrderRequest.setPartnerId(createOrderVo.getPartnerId()); createFatherSonOrderRequest.setPartnerId(createOrderVo.getPartnerId());
createFatherSonOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo()); createFatherSonOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
createFatherSonOrderRequest.setMenuType(createOrderVo.getMenuType());
UserDeliveryInfoDto deliveryInfoDto = createOrderVo.getUserDeliveryInfoDto(); UserDeliveryInfoDto deliveryInfoDto = createOrderVo.getUserDeliveryInfoDto();
List<CreateFatherSonOrderRequest.OrderInfo> orderInfoList = new ArrayList<>(); List<CreateFatherSonOrderRequest.OrderInfo> orderInfoList = new ArrayList<>();
CreateFatherSonOrderRequest.OrderInfo productOrderInfo = convertProductOrderInfo(createOrderVo, deliveryInfoDto, shoppingCartGoodsDto,orderWarnTime); CreateFatherSonOrderRequest.OrderInfo productOrderInfo = convertProductOrderInfo(createOrderVo, deliveryInfoDto, shoppingCartGoodsDto,orderWarnTime);
...@@ -501,6 +502,7 @@ public class OrderAdapter { ...@@ -501,6 +502,7 @@ public class OrderAdapter {
createOrderDto.setAmount(0L); createOrderDto.setAmount(0L);
createOrderDto.setBarCounter(createOrderVo.getTableNumber()); createOrderDto.setBarCounter(createOrderVo.getTableNumber());
createOrderDto.setOperator(createOrderVo.getUserName()); createOrderDto.setOperator(createOrderVo.getUserName());
createOrderDto.setMenuType(BusinessTypeEnum.getByCode(createOrderDto.getMenuType()));
return createOrderDto; return createOrderDto;
} }
......
...@@ -30,254 +30,16 @@ import java.util.*; ...@@ -30,254 +30,16 @@ import java.util.*;
@Component @Component
public class StoreItemAdapter { public class StoreItemAdapter {
private static FastDateFormat yyyyMMddHHmmss = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss", Locale.CHINA); public GetProductInfoDto convert2ProductInfoDto(String partnerId, String shopId, Integer productInfoType, List<String> productIds,String menuType) {
public GetMenuCategoryInfoDto convert2MemuCategoryInfoDto(GetMenuCategoryVo getMenuCategoryVo) {
GetMenuCategoryInfoDto memuCategoryInfoDto = new GetMenuCategoryInfoDto();
memuCategoryInfoDto.setBusinessDate(yyyyMMddHHmmss.format(new Date()));
memuCategoryInfoDto.setChannelType(getMenuCategoryVo.getChannelType());
memuCategoryInfoDto.setInfoLevel(getMenuCategoryVo.getInfoLevel());
memuCategoryInfoDto.setPartnerId(getMenuCategoryVo.getPartnerId());
memuCategoryInfoDto.setShopId(getMenuCategoryVo.getShopId());
memuCategoryInfoDto.setValid(true);
return memuCategoryInfoDto;
}
public GetProductDto convert2ProductDto(GetProductVo getProductVo) {
GetProductDto getProductDto = BeanUtil.convertBean(getProductVo, GetProductDto::new);
getProductDto.setMenuCategoryId(getProductVo.getNodeId());
getProductDto.setValid(true);
return getProductDto;
}
public GetProductInfoDto convert2ProductInfoDto(String partnerId, String shopId, Integer productInfoType, List<String> productIds) {
GetProductInfoDto getProductInfoDto = new GetProductInfoDto(); GetProductInfoDto getProductInfoDto = new GetProductInfoDto();
getProductInfoDto.setPartnerId(partnerId); getProductInfoDto.setPartnerId(partnerId);
getProductInfoDto.setShopId(shopId); getProductInfoDto.setShopId(shopId);
getProductInfoDto.setProductInfoType(productInfoType); getProductInfoDto.setProductInfoType(productInfoType);
getProductInfoDto.setProductIds(productIds); getProductInfoDto.setProductIds(productIds);
getProductInfoDto.setChannel(OrderSourceType.SAAS.getCode()); getProductInfoDto.setChannel(menuType);
return getProductInfoDto; return getProductInfoDto;
} }
public GetProductValidateDto convert2ProductValidateDto(GetProductValidateVo getProductValidateVo) {
return BeanUtil.convertBean(getProductValidateVo, GetProductValidateDto::new);
}
public GetProductValidateDto convert2ProductValidateDto(String partnerId, String shopId, List<String> productIds) {
GetProductValidateDto getProductValidateDto = new GetProductValidateDto();
getProductValidateDto.setPartnerId(partnerId);
getProductValidateDto.setShopId(shopId);
getProductValidateDto.setProductIds(productIds);
return getProductValidateDto;
}
public SpuProductVo convert2SpuProductVo(GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean productBean) {
SpuProductVo spuProductVo = BeanUtil.convertBean(productBean, SpuProductVo::new);
spuProductVo.setSpuId(productBean.getPid());
spuProductVo.setSpuName(productBean.getName());
spuProductVo.setName(productBean.getName());
spuProductVo.setStatusDesc(Optional.ofNullable(StoreItemStatus.getByCode(spuProductVo.getStatus()))
.map(StoreItemStatus::getDesc).orElse(""));
spuProductVo.setDefaultPrice(productBean.getFinalPrice());
spuProductVo.setFinalPrice(productBean.getFinalPrice());
spuProductVo.setPicture(productBean.getPicture() + "?imageView2/1/w/225/h/225/interlace/1/q/100");
spuProductVo.setStockLimit(productBean.getStockLimit());
List<ProductGroupDto> productGroups = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(productBean.getProductAttributeGroupList())) {
productBean.getProductAttributeGroupList().sort(Comparator.comparing(ProductBean.ProductAttributeGroupListBean::getAttributeType));
for (ProductBean.ProductAttributeGroupListBean attribute : productBean.getProductAttributeGroupList()) {
ProductGroupDto productGroupDto = new ProductGroupDto();
productGroupDto.setName(attribute.getAttributeName());
List<ProductGroupDto.GroupDetailBean> groupDetailBeans = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(attribute.getAttributeValues())) {
for (ProductBean.ProductAttributeGroupListBean.AttributeValueBean attributeValue : attribute.getAttributeValues()) {
/**
* 过滤下架的规格和售罄的规格
*/
if (StoreItemStatus.PUT_ON_SALE.getCode().equals(attributeValue.getStatus())) {
ProductGroupDto.GroupDetailBean groupDetailBean = new ProductGroupDto.GroupDetailBean();
groupDetailBean.setGroupId(attribute.getAttributeType().toString());
groupDetailBean.setProductId(attributeValue.getAttributeId());
groupDetailBean.setProductName(attributeValue.getAttributeValue());
groupDetailBean.setSequence(attributeValue.getSequence());
groupDetailBean.setProductFinalPrice(attributeValue.getPrice());
groupDetailBean.setProductPrice(attributeValue.getPrice());
groupDetailBean.setStatus(attributeValue.getStatus());
groupDetailBean.setStatusDesc(Optional.ofNullable(StoreItemStatus.getByCode(attributeValue.getStatus()))
.map(StoreItemStatus::getDesc).orElse(""));
groupDetailBeans.add(groupDetailBean);
}
}
}
productGroupDto.setGroupDetail(groupDetailBeans);
//如果规格为空则不返回该规格
if (CollectionUtils.isNotEmpty(groupDetailBeans)) {
productGroups.add(productGroupDto);
}
}
}
//设置是否包括多规格
if (CollectionUtils.isNotEmpty(productBean.getProductAttributeGroupList()) || ProductType.HAVESPEC.getCode() == productBean.getType()) {
spuProductVo.setType(8);
spuProductVo.setHasSku(true);
} else {
spuProductVo.setHasSku(false);
}
//TODO sku信息
Set<String> skuSpecValueIds = Sets.newHashSet();
List<SpuProductVo.SkuProductVo> skuList = Lists.newArrayList();
List<ProductBean.SkuProductBean> skuProductBeans = productBean.getSkuList();
if (CollectionUtils.isNotEmpty(skuProductBeans)) {
for (ProductBean.SkuProductBean skuProductBean : skuProductBeans) {
/**
* 过滤下架的规格
*/
if (StoreItemStatus.PUT_ON_SALE.getCode().equals(skuProductBean.getStatus())) {
SpuProductVo.SkuProductVo skuProductVo = new SpuProductVo.SkuProductVo();
skuProductVo.setSkuId(skuProductBean.getSkuId());
skuProductVo.setSkuName(skuProductBean.getProductName());
skuProductVo.setOriginalPrice(skuProductBean.getOriginalPrice());
skuProductVo.setFinalPrice(skuProductBean.getFinalPrice());
skuProductVo.setStatus(skuProductBean.getStatus());
skuProductVo.setStatusDesc(Optional.ofNullable(StoreItemStatus.getByCode(skuProductBean.getStatus())).map(StoreItemStatus::getDesc).orElse(""));
// skuProductVo.setStatus(skuProductBean());
List<ProductBean.SkuProductBean.SkuSpecValue> skuSpecValueDtos = skuProductBean.getSkuSpecValues();
List<String> specValueIdList = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(skuSpecValueDtos)) {
skuSpecValueDtos.forEach(skuSpecValueDto -> {
specValueIdList.add(skuSpecValueDto.getSpecValueId());
skuSpecValueIds.add(skuSpecValueDto.getSpecValueId());
});
}
String[] specValueIdArry = specValueIdList.toArray(new String[0]);
specValueIdList.clear();
skuProductVo.setSpecValueId(specValueIdArry);
skuList.add(skuProductVo);
}
}
}
//TODO 多规格信息
List<ProductBean.SpecificationGroupBean> specificationGroupList = productBean.getSpecificationGroupList();
//规格处理
List<SpuProductVo.SpecificationGroupVo> specificationGroupVos = redundantSpecification(skuSpecValueIds,specificationGroupList);
if (CollectionUtils.isNotEmpty(productBean.getProductPictureList())) {
spuProductVo.setPicture(productBean.getProductPictureList().get(0).getUrl() + "?imageView2/1/w/225/h/225/interlace/1/q/100");
}
//商品标签信息
List<SpuProductVo.ProductLabel> productLabels = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(productBean.getLabelNames())) {
productBean.getLabelNames().forEach(label -> {
SpuProductVo.ProductLabel productLabel = new SpuProductVo.ProductLabel();
productLabel.setLabelName(label.getName());
productLabels.add(productLabel);
});
}
spuProductVo.setSkuList(skuList);
spuProductVo.setSpecificationGroupList(specificationGroupVos);
spuProductVo.setProductLabels(productLabels);
spuProductVo.setProductGroups(productGroups);
return spuProductVo;
}
public ProductVo convert2ProductVo(GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean productBean) {
ProductVo productVo = BeanUtil.convertBean(productBean, ProductVo::new);
productVo.setStatusDesc(Optional.ofNullable(StoreItemStatus.getByCode(productVo.getStatus()))
.map(StoreItemStatus::getDesc).orElse(""));
List<ProductGroupDto> productGroups = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(productBean.getProductAttributeGroupList())) {
productBean.getProductAttributeGroupList().sort(Comparator.comparing(ProductBean.ProductAttributeGroupListBean::getAttributeType));
for (ProductBean.ProductAttributeGroupListBean attribute : productBean.getProductAttributeGroupList()) {
ProductGroupDto productGroupDto = new ProductGroupDto();
productGroupDto.setName(attribute.getAttributeName());
List<ProductGroupDto.GroupDetailBean> groupDetailBeans = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(attribute.getAttributeValues())) {
for (ProductBean.ProductAttributeGroupListBean.AttributeValueBean attributeValue : attribute.getAttributeValues()) {
/**
* 过滤下架的规格和售罄的规格
*/
if (StoreItemStatus.PUT_ON_SALE.getCode().equals(attributeValue.getStatus())) {
ProductGroupDto.GroupDetailBean groupDetailBean = new ProductGroupDto.GroupDetailBean();
groupDetailBean.setGroupId(attribute.getAttributeType().toString());
groupDetailBean.setProductId(attributeValue.getAttributeId());
groupDetailBean.setProductName(attributeValue.getAttributeValue());
groupDetailBean.setSequence(attributeValue.getSequence());
groupDetailBean.setProductFinalPrice(attributeValue.getPrice());
groupDetailBean.setProductPrice(attributeValue.getPrice());
groupDetailBean.setStatus(attributeValue.getStatus());
groupDetailBean.setStatusDesc(Optional.ofNullable(StoreItemStatus.getByCode(attributeValue.getStatus()))
.map(StoreItemStatus::getDesc).orElse(""));
groupDetailBeans.add(groupDetailBean);
}
}
}
productGroupDto.setGroupDetail(groupDetailBeans);
//如果规格为空则不返回该规格
if (CollectionUtils.isNotEmpty(groupDetailBeans)) {
productGroups.add(productGroupDto);
}
}
//设置规格类型
productVo.setType(8);
}
if (CollectionUtils.isNotEmpty(productBean.getProductPictureList())) {
productVo.setPicture(productBean.getProductPictureList().get(0).getUrl());
}
//商品标签信息
List<ProductVo.ProductLabel> productLabels = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(productBean.getLabelNames())) {
productBean.getLabelNames().forEach(label -> {
ProductVo.ProductLabel productLabel = new ProductVo.ProductLabel();
productLabel.setLabelName(label.getName());
productLabels.add(productLabel);
});
}
productVo.setProductLabels(productLabels);
productVo.setProductGroups(productGroups);
return productVo;
}
/**
* 处理多余规格
* 多规格商品的下架或者不是限时特购商品去除不需要的规格值
*
* @param skuSpecValueIds sku商品的规格id集合
* @param specificationGroupList sku商品的规格对象集合
* @return
*/
public List<SpuProductVo.SpecificationGroupVo> redundantSpecification(Set<String> skuSpecValueIds,List<ProductBean.SpecificationGroupBean> specificationGroupList) {
//TODO 多规格信息
List<SpuProductVo.SpecificationGroupVo> specificationGroupVos = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(specificationGroupList)) {
specificationGroupList.forEach(specificationGroupBean -> {
SpuProductVo.SpecificationGroupVo specificationGroupVo = new SpuProductVo.SpecificationGroupVo();
specificationGroupVo.setSpecId(specificationGroupBean.getSpecId());
specificationGroupVo.setSpecName(specificationGroupBean.getSpecName());
List<ProductBean.SpecificationGroupBean.SpecValueVo> specValueDtos = specificationGroupBean.getSpecValueVos();
List<SpuProductVo.SpecificationGroupVo.SpecValueVo> specValueVos = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(specValueDtos)) {
specValueDtos.forEach(specValueDto -> {
//过滤在sku中没有上架状态是规格
if (skuSpecValueIds.contains(specValueDto.getSpecValueId())) {
SpuProductVo.SpecificationGroupVo.SpecValueVo specValueVo = new SpuProductVo.SpecificationGroupVo.SpecValueVo();
specValueVo.setSpecId(specValueDto.getSpecId());
specValueVo.setSpecValueId(specValueDto.getSpecValueId());
specValueVo.setSpecValueName(specValueDto.getSpecValue());
specValueVos.add(specValueVo);
}
});
}
specificationGroupVo.setSpecValueVos(specValueVos);
if (CollectionUtils.isNotEmpty(specValueVos)) {
specificationGroupVos.add(specificationGroupVo);
}
});
}
return specificationGroupVos;
}
} }
package cn.freemud.enums;
import java.util.Arrays;
public enum BusinessTypeEnum {
SAAS_PICKUP(0,"saas","saas"),
SAAS_DELIVERY(1,"saasdelivery","saasdelivery"),
SAAS_MALL(2,"saasmall","saasmall"),
SAAS_WC(3,"wc","wc");
private Integer type;
private String name;
private String code;
BusinessTypeEnum(Integer type, String name, String code) {
this.type = type;
this.name = name;
this.code = code;
}
public static BusinessTypeEnum getByType(Integer type) {
return Arrays.stream(BusinessTypeEnum.values())
.filter(e -> e.type.equals(type))
.findFirst().orElse(BusinessTypeEnum.SAAS_PICKUP);
}
public static BusinessTypeEnum getByType(String type) {
return Arrays.stream(BusinessTypeEnum.values())
.filter(e -> e.name.equals(type))
.findFirst().orElse(BusinessTypeEnum.SAAS_PICKUP);
}
public static String getByCode(String code){
return Arrays.stream(BusinessTypeEnum.values())
.filter(e -> e.code.equals(code))
.findFirst().orElse(BusinessTypeEnum.SAAS_PICKUP).getCode();
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
...@@ -13,14 +13,5 @@ import java.util.Map; ...@@ -13,14 +13,5 @@ import java.util.Map;
* @date 2018/05/08 * @date 2018/05/08
*/ */
public interface ItemService { public interface ItemService {
/**
* 通过sku或单品组装MAP商品详情信息
* @param pids skuId
* @param partnerId
* @param storeId
* @return key = skuid
*/
Map<String, GetProductsVo> getProducts(List<String> pids, String partnerId, String storeId);
} }
...@@ -281,19 +281,6 @@ public class CheckOrder { ...@@ -281,19 +281,6 @@ public class CheckOrder {
return pushOrderTime; return pushOrderTime;
} }
public List<String> getStockProductIdList(CreateOrderVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto) {
List<String> stockProductIds = Lists.newArrayList();
GetProductStockResponseDto stockResponseDto = checkProductStock(shoppingCartGoodsDto, createOrderVo.getPartnerId(), createOrderVo.getShopId());
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(stockResponseDto.getCode())) {
throw new ServiceException(ResponseResult.SHOPPING_CART_STOCK_NOT_HAVE);
}
if (CollectionUtils.isNotEmpty(stockResponseDto.getResult())) {
stockProductIds = stockResponseDto.getResult().stream().map(p -> p.getPid().toString()).collect(Collectors.toList());
LogUtil.debug("stockProductIds", gson.toJson(stockProductIds), null);
}
return stockProductIds;
}
public ShoppingCartGoodsDto getShoppingCartGoodsDto(CreateOrderVo createOrderVo) { public ShoppingCartGoodsDto getShoppingCartGoodsDto(CreateOrderVo createOrderVo) {
ShoppingCartInfoRequestVo.BuyMemberCard buyMemberCard = null; ShoppingCartInfoRequestVo.BuyMemberCard buyMemberCard = null;
if (createOrderVo.getBuyMemberCard() != null) { if (createOrderVo.getBuyMemberCard() != null) {
...@@ -359,17 +346,6 @@ public class CheckOrder { ...@@ -359,17 +346,6 @@ public class CheckOrder {
} }
/** /**
* 获取桌号
*/
public String getTableNumber(String partnerId, String shopId, String tableNumber) {
StoreTableNumber storeTableNumber = storeTableNumberManager.selectOne(partnerId, shopId, tableNumber);
if (storeTableNumber == null) {
return "";
}
return tableNumber;
}
/**
* 获取门店配送信息 * 获取门店配送信息
*/ */
public StoreDeliveryInfoDto getStoreDeliveryInfo(StoreResponse.BizVO storeResponseDto, public StoreDeliveryInfoDto getStoreDeliveryInfo(StoreResponse.BizVO storeResponseDto,
...@@ -478,80 +454,6 @@ public class CheckOrder { ...@@ -478,80 +454,6 @@ public class CheckOrder {
createOrderVo.setUserDeliveryInfoDto(userDeliveryInfoDto); createOrderVo.setUserDeliveryInfoDto(userDeliveryInfoDto);
} }
public GetProductStockResponseDto checkProductStock(ShoppingCartGoodsDto shoppingCartGoodsDto, String partnerId, String storeId) {
List<Long> skuIds = new ArrayList<>();
for (ShoppingCartGoodsDto.CartGoodsDetailDto goodsDetailDto : shoppingCartGoodsDto.getProducts()) {
//1.9.2兼容套餐商品改动 套餐类子集商品不校验库存
if(StringUtils.isBlank(goodsDetailDto.getParentProductId())){
skuIds.add(Long.parseLong(goodsDetailDto.getSkuId()));
}
}
GetProductStockRequestDto requestDto = new GetProductStockRequestDto();
requestDto.setChannel("saas");
requestDto.setPartnerId(partnerId);
requestDto.setStoreId(storeId);
requestDto.setProductIds(skuIds);
// TODO: 2019/5/13 SDK无该方法,暂不修改
GetProductStockResponseDto stocks = stockClient.getAvailableStocks(requestDto);
LogUtil.debug("checkProductStock_end", gson.toJson(requestDto), gson.toJson(stocks));
if (stocks == null) {
throw new ServiceException(ResponseResult.SHOPPING_CART_STOCK_NOT_HAVE);
}
if (ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(stocks.getCode())
&& CollectionUtils.isNotEmpty(stocks.getResult())) {
String msg = "";
for (GetProductStockResponseDto.DataBean stock : stocks.getResult()) {
for (ShoppingCartGoodsDto.CartGoodsDetailDto goodsDetailDto : shoppingCartGoodsDto.getProducts()) {
//1.9.2兼容套餐商品改动 套餐类子集商品不校验库存
if(StringUtils.isBlank(goodsDetailDto.getParentProductId())) continue;
//累计买一赠一商品
List<ShoppingCartGoodsDto.CartGoodsDetailDto> products = shoppingCartGoodsDto.getProducts().stream().filter(p -> p.getSkuId().equals(goodsDetailDto.getSkuId())).collect(Collectors.toList());
Integer qty = 0;
if (CollectionUtils.isNotEmpty(products)) {
qty = products.stream().mapToInt(ShoppingCartGoodsDto.CartGoodsDetailDto::getQty).sum();
}
if (stock.getPid().toString().equals(goodsDetailDto.getSkuId())
&& stock.getQty() < qty) {
msg += msg + goodsDetailDto.getSkuName();
break;
}
}
}
if (!msg.isEmpty()) {
throw new ServiceException(ResponseResult.SHOPPING_CART_STOCK_NOT_HAVE, msg + "库存不足");
}
}
return stocks;
}
/**
* 获取商品第三方商品编号
*
*/
// private CreateOrderDto getProductCustomerCode(CreateOrderDto createOrderDto) {
// List<String> pids = new ArrayList<>();
// for (cn.freemud.entities.dto.order.CreateOrderProductDto productDto : createOrderDto.getProducts()) {
// pids.add(productDto.getSpecification());
// }
// Map<String, GetProductsVo> products = itemService.getProducts(pids, createOrderDto.getCompanyId(), createOrderDto.getShopId());
// if (products.isEmpty()) {
// return createOrderDto;
// }
// for (String pid : pids) {
// for (cn.freemud.entities.dto.order.CreateOrderProductDto productDto : createOrderDto.getProducts()) {
// if (pid.equals(productDto.getSpecification())) {
// if (products.get(pid) != null) {
// productDto.setCustomerCode(products.get(pid).getCustomerCode());
// } else {
// productDto.setCustomerCode("");
// LogUtil.info("getProducts_exception", JSONObject.toJSONString(pids), JSONObject.toJSONString(products));
// }
// }
// }
// }
// return createOrderDto;
// }
public void checkCardCode(String partnerId,String memberId,String cardCode,String trackingNo){ public void checkCardCode(String partnerId,String memberId,String cardCode,String trackingNo){
if(StringUtils.isBlank(cardCode)){ if(StringUtils.isBlank(cardCode)){
......
...@@ -43,84 +43,12 @@ public class ItemServiceImpl implements ItemService{ ...@@ -43,84 +43,12 @@ public class ItemServiceImpl implements ItemService{
@Autowired @Autowired
private StoreItemAdapter storeItemAdapter; private StoreItemAdapter storeItemAdapter;
@Override
public Map<String, GetProductsVo> getProducts(List<String> pids, String partnerId, String storeId) {
Map<String, GetProductsVo> resultMap = new HashMap<>();
if (CollectionUtils.isEmpty(pids)) {
return resultMap;
}
List<String> skuIds = Lists.newArrayList();
//查询商品详情
GetProductInfoDto getProductInfoDto = storeItemAdapter.convert2ProductInfoDto(partnerId, storeId, ProductInfoType.ALL.getCode(), pids);
// log.info("start:{}", JSON.toJSONString(getProductInfoDto));
ProductInfosDto productInfosDto = storeItemClient.listProductInfos(getProductInfoDto);
// log.info("end:{}", JSON.toJSONString(productInfosDto));
LogUtil.info("storeItemClient_listProductInfos", gson.toJson(getProductInfoDto), gson.toJson(productInfosDto));
if (ResponseCodeConstant.RESPONSE_SUCCESS.equals(productInfosDto.getErrcode())
&& productInfosDto.getData() != null
&& CollectionUtils.isNotEmpty(productInfosDto.getData().getProducts())) {
productInfosDto.getData().getProducts().parallelStream().forEach(productBean -> {
//多规格获取sku信息
GetProductsVo getProductsVo = new GetProductsVo();
getProductsVo.setSkuId(productBean.getPid());
getProductsVo.setSkuName(productBean.getName());
String picture = CollectionUtils.isNotEmpty(productBean.getProductPictureList())
? productBean.getProductPictureList().get(0).getUrl() : null;
getProductsVo.setSpuId(productBean.getPid());
getProductsVo.setSpuName(productBean.getName());
getProductsVo.setSpuPicture(picture);
getProductsVo.setOriginalPrice(productBean.getOriginalPrice());
getProductsVo.setFinalPrice(productBean.getFinalPrice());
getProductsVo.setProductAttributeGroupList(productBean.getProductAttributeGroupList());
getProductsVo.setStatus(productBean.getStatus());
getProductsVo.setStock(productBean.getStock());
getProductsVo.setStockLimit(productBean.getStockLimit());
getProductsVo.setCustomerCode(productBean.getCustomerCode());
getProductsVo.setProductCode(productBean.getProductCode());
resultMap.put(productBean.getPid(), getProductsVo);
getProductsVo.setType(1);
// 规格ID 剔除单品
if (Objects.equals(productBean.getIsSkuProduct(), YesOrNoEnum.YES.getCode())) {
getProductsVo.setType(10);
skuIds.add(productBean.getPid());
}
});
}
if (CollectionUtils.isEmpty(skuIds)) {
return resultMap;
}
// 通过skuid查询spuid
GetSpuIdsBySkuIdsDto bySkuIdsDto = new GetSpuIdsBySkuIdsDto();
bySkuIdsDto.setProductIds(skuIds);
bySkuIdsDto.setPartnerId(partnerId);
ProductListDto productListDto = storeItemClient.getSpuIdsBySkuIds(bySkuIdsDto);
if (ResponseCodeConstant.RESPONSE_SUCCESS.equals(productListDto.getErrcode())
&& CollectionUtils.isNotEmpty(productListDto.getData())) {
productListDto.getData().parallelStream().forEach(product -> {
product.getSkuList().parallelStream().forEach(skuProductBean -> {
if (resultMap.get(skuProductBean.getSkuId()) != null) {
GetProductsVo getProductsVo = resultMap.get(skuProductBean.getSkuId());
getProductsVo.setSpuId(product.getPid());
getProductsVo.setSpuName(product.getName());
String picture = CollectionUtils.isNotEmpty(product.getProductPictureList())
? product.getProductPictureList().get(0).getUrl() : product.getPicture();
getProductsVo.setSpuPicture(picture);
getProductsVo.setStatus(product.getStatus());
resultMap.put(skuProductBean.getSkuId(), getProductsVo);
}
});
});
}
return resultMap;
}
/** /**
* 传spuid集合查询所有里面所有sku商品信息 * 传spuid集合查询所有里面所有sku商品信息
* 包括商品的套餐子商品 * 包括商品的套餐子商品
* 返回商品的第三方编号(唯一)、第三方货号、第三方规格id,第三方属性id * 返回商品的第三方编号(唯一)、第三方货号、第三方规格id,第三方属性id
*/ */
public Map<String, GetProductsVo> getSpuProducts(List<String> spuIds, String partnerId, String storeId) { public Map<String, GetProductsVo> getSpuProducts(List<String> spuIds, String partnerId, String storeId,String menuType) {
Map<String, GetProductsVo> resultMap = new HashMap<>(); Map<String, GetProductsVo> resultMap = new HashMap<>();
if (CollectionUtils.isEmpty(spuIds)) { if (CollectionUtils.isEmpty(spuIds)) {
return resultMap; return resultMap;
...@@ -128,7 +56,7 @@ public class ItemServiceImpl implements ItemService{ ...@@ -128,7 +56,7 @@ public class ItemServiceImpl implements ItemService{
//去重 //去重
List<String> result = spuIds.stream().distinct().collect(Collectors.toList()); List<String> result = spuIds.stream().distinct().collect(Collectors.toList());
//查询商品详情 //查询商品详情
GetProductInfoDto getProductInfoDto = storeItemAdapter.convert2ProductInfoDto(partnerId, storeId, ProductInfoType.ALL.getCode(), result); GetProductInfoDto getProductInfoDto = storeItemAdapter.convert2ProductInfoDto(partnerId, storeId, ProductInfoType.ALL.getCode(), result,menuType);
ProductInfosDto productInfosDto = storeItemClient.listProductInfos(getProductInfoDto); ProductInfosDto productInfosDto = storeItemClient.listProductInfos(getProductInfoDto);
LogUtil.info("storeItemClient_listProductInfos", gson.toJson(getProductInfoDto), gson.toJson(productInfosDto)); LogUtil.info("storeItemClient_listProductInfos", gson.toJson(getProductInfoDto), gson.toJson(productInfosDto));
if (ResponseCodeConstant.RESPONSE_SUCCESS.equals(productInfosDto.getErrcode()) && productInfosDto.getData() != null if (ResponseCodeConstant.RESPONSE_SUCCESS.equals(productInfosDto.getErrcode()) && productInfosDto.getData() != null
......
...@@ -1568,7 +1568,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1568,7 +1568,7 @@ public class OrderServiceImpl implements Orderservice {
for (CreateOrderProductRequest productDto : productOrderInfoList.get(0).getProducts()) { for (CreateOrderProductRequest productDto : productOrderInfoList.get(0).getProducts()) {
pids.add(productDto.getProductId()); pids.add(productDto.getProductId());
} }
Map<String, GetProductsVo> products = itemService.getSpuProducts(pids, fatherSonOrderRequest.getPartnerId(), productOrderInfoList.get(0).getShopId()); Map<String, GetProductsVo> products = itemService.getSpuProducts(pids, fatherSonOrderRequest.getPartnerId(), productOrderInfoList.get(0).getShopId(),fatherSonOrderRequest.getMenuType());
if (products.isEmpty()) { if (products.isEmpty()) {
return fatherSonOrderRequest; return fatherSonOrderRequest;
} }
...@@ -1614,7 +1614,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1614,7 +1614,7 @@ public class OrderServiceImpl implements Orderservice {
for (CreateOrderProductRequest productDto : createOrderDto.getProducts()) { for (CreateOrderProductRequest productDto : createOrderDto.getProducts()) {
spuIds.add(productDto.getProductId()); spuIds.add(productDto.getProductId());
} }
Map<String, GetProductsVo> products = itemService.getSpuProducts(spuIds, createOrderDto.getCompanyId(), createOrderDto.getShopId()); Map<String, GetProductsVo> products = itemService.getSpuProducts(spuIds, createOrderDto.getCompanyId(), createOrderDto.getShopId(),createOrderDto.getMenuType());
if (products.isEmpty()) { if (products.isEmpty()) {
return createOrderDto; return createOrderDto;
} }
......
...@@ -50,14 +50,14 @@ public class StoreItemAdapter { ...@@ -50,14 +50,14 @@ public class StoreItemAdapter {
return getProductDto; return getProductDto;
} }
public GetProductInfoDto convert2ProductInfoDto(String partnerId, String shopId, Integer productInfoType, List<String> productIds) { public GetProductInfoDto convert2ProductInfoDto(String partnerId, String shopId, Integer productInfoType, List<String> productIds, String menuType) {
GetProductInfoDto getProductInfoDto = new GetProductInfoDto(); GetProductInfoDto getProductInfoDto = new GetProductInfoDto();
getProductInfoDto.setPartnerId(partnerId); getProductInfoDto.setPartnerId(partnerId);
getProductInfoDto.setShopId(shopId); getProductInfoDto.setShopId(shopId);
getProductInfoDto.setProductInfoType(productInfoType); getProductInfoDto.setProductInfoType(productInfoType);
getProductInfoDto.setProductIds(productIds); getProductInfoDto.setProductIds(productIds);
// 商品服务增加channel // 商品服务增加channel
getProductInfoDto.setChannel(OrderSourceType.SAAS.getCode()); getProductInfoDto.setChannel(menuType);
return getProductInfoDto; return getProductInfoDto;
} }
......
...@@ -14,4 +14,5 @@ public class CheckSpqInfoRequestDto { ...@@ -14,4 +14,5 @@ public class CheckSpqInfoRequestDto {
* 券code * 券code
*/ */
private String couponCode; private String couponCode;
private String menuType;
} }
...@@ -28,6 +28,6 @@ public interface ItemService { ...@@ -28,6 +28,6 @@ public interface ItemService {
* @param storeId * @param storeId
* @return key = skuid * @return key = skuid
*/ */
Map<String, GetProductsVo> getProducts(List<String> pids, String partnerId, String storeId); Map<String, GetProductsVo> getProducts(List<String> pids, String partnerId, String storeId ,String menuType);
} }
...@@ -27,5 +27,5 @@ public interface ProductService { ...@@ -27,5 +27,5 @@ public interface ProductService {
* @param cartGoodsList * @param cartGoodsList
* @return * @return
*/ */
boolean hasRequiredProducts(String partnerId, String storeId, List<CartGoods> cartGoodsList); boolean hasRequiredProducts(String partnerId, String storeId, List<CartGoods> cartGoodsList,String menuType);
} }
...@@ -95,7 +95,7 @@ public interface ShoppingCartNewService { ...@@ -95,7 +95,7 @@ public interface ShoppingCartNewService {
Integer orderType, Integer orderType,
List<CartGoods> cartGoodsList, List<CartGoods> cartGoodsList,
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons,
List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList); List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType);
List<CartGoods> updateCartGoodsLegal(CartGoods cartGoods, String userId, ShoppingCartGoodsBaseResponseVo shoppingCartGoodsResponseVo, AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, List<CartGoods> oldAllCartGoodsList); List<CartGoods> updateCartGoodsLegal(CartGoods cartGoods, String userId, ShoppingCartGoodsBaseResponseVo shoppingCartGoodsResponseVo, AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, List<CartGoods> oldAllCartGoodsList);
...@@ -109,9 +109,9 @@ public interface ShoppingCartNewService { ...@@ -109,9 +109,9 @@ public interface ShoppingCartNewService {
* @param productIds * @param productIds
* @return * @return
*/ */
default String validCoupon(String partnerId, String storeId, String spuId, List<Long> productIds) { default String validCoupon(String partnerId, String storeId, String spuId, List<Long> productIds,String menuType) {
String spuId2; String spuId2;
CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, spuId.substring(CommonsConstant.COUPON_PREFIX.length())); CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, spuId.substring(CommonsConstant.COUPON_PREFIX.length()),menuType);
CouponService couponService = SDKCommonBaseContextWare.getBean(CouponService.class); CouponService couponService = SDKCommonBaseContextWare.getBean(CouponService.class);
CheckSpqInfoResponseDto checkSpqInfoResponseDto = couponService.checkSpqInfo(checkSpqInfoRequestDto); CheckSpqInfoResponseDto checkSpqInfoResponseDto = couponService.checkSpqInfo(checkSpqInfoRequestDto);
if (checkSpqInfoResponseDto == null) { if (checkSpqInfoResponseDto == null) {
......
...@@ -15,6 +15,7 @@ import cn.freemud.interceptor.ServiceException; ...@@ -15,6 +15,7 @@ import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.IPromotionService; import cn.freemud.service.IPromotionService;
import cn.freemud.service.ItemService; import cn.freemud.service.ItemService;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO; import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl; import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
...@@ -206,7 +207,7 @@ public class AdditionalPromotionService implements IPromotionService { ...@@ -206,7 +207,7 @@ public class AdditionalPromotionService implements IPromotionService {
Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods> sendGoodsMap = sendActivity1.getSendGoods().stream().collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods::getGoodsId, Function.identity(), (k1, k2) -> k1)); Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods> sendGoodsMap = sendActivity1.getSendGoods().stream().collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods::getGoodsId, Function.identity(), (k1, k2) -> k1));
//添加商品行 //添加商品行
List<String> productIds = premiumExchangeActivity.getProducts().parallelStream().map(p -> StringUtils.isEmpty(p.getSkuId()) ? p.getSpuId() : p.getSkuId()).collect(Collectors.toList()); List<String> productIds = premiumExchangeActivity.getProducts().parallelStream().map(p -> StringUtils.isEmpty(p.getSkuId()) ? p.getSpuId() : p.getSkuId()).collect(Collectors.toList());
Map<String, GetProductsVo> getProductsVoMap = itemService.getProducts(productIds, shoppingCartInfoRequestVo.getPartnerId(), shoppingCartInfoRequestVo.getShopId()); Map<String, GetProductsVo> getProductsVoMap = itemService.getProducts(productIds, shoppingCartInfoRequestVo.getPartnerId(), shoppingCartInfoRequestVo.getShopId(), BusinessTypeEnum.getByType(shoppingCartInfoRequestVo.getMenuType()).getCode());
// 获取计算返回的价格 // 获取计算返回的价格
Long originalTotalAmount = shoppingCartGoodsResponseVo.getOriginalTotalAmount(); Long originalTotalAmount = shoppingCartGoodsResponseVo.getOriginalTotalAmount();
Long totalAmount = shoppingCartGoodsResponseVo.getTotalAmount(); Long totalAmount = shoppingCartGoodsResponseVo.getTotalAmount();
......
...@@ -4,7 +4,6 @@ import ch.qos.logback.classic.Level; ...@@ -4,7 +4,6 @@ import ch.qos.logback.classic.Level;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CartGoods; import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.ShoppingCartGoodsBaseResponseVo; import cn.freemud.entities.vo.ShoppingCartGoodsBaseResponseVo;
import cn.freemud.enums.BusinessTypeEnum;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.utils.LogUtil; import cn.freemud.utils.LogUtil;
...@@ -15,6 +14,7 @@ import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare; ...@@ -15,6 +14,7 @@ import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.log.ErrorLog; import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO; import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest; import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest;
import com.freemud.sdk.api.assortment.shoppingcart.request.GetProductInfoRequest; import com.freemud.sdk.api.assortment.shoppingcart.request.GetProductInfoRequest;
import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService; import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService;
......
...@@ -588,7 +588,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -588,7 +588,7 @@ public class CouponServiceImpl implements CouponService {
String skuId = couponDetailResponseDto.getDetails().get(0).getActiveProduct().get(0).getProductIdPartner(); String skuId = couponDetailResponseDto.getDetails().get(0).getActiveProduct().get(0).getProductIdPartner();
skuIds.add(String.valueOf(skuId)); skuIds.add(String.valueOf(skuId));
//TODO 通过skuid查询spuid //TODO 通过skuid查询spuid
Map<String, GetProductsVo> productsVoMap = itemService.getProducts(skuIds, partnerId, storeId); Map<String, GetProductsVo> productsVoMap = itemService.getProducts(skuIds, partnerId, storeId , requestDto.getMenuType());
GetProductsVo productsVo = productsVoMap.get(skuId); GetProductsVo productsVo = productsVoMap.get(skuId);
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;
......
...@@ -63,7 +63,7 @@ public class ItemServiceImpl implements ItemService { ...@@ -63,7 +63,7 @@ public class ItemServiceImpl implements ItemService {
public BaseResponse<Map<String, ProductBean>> getProducts(String partnerId, String shopId, List<String> productIds, boolean reflash) { public BaseResponse<Map<String, ProductBean>> getProducts(String partnerId, String shopId, List<String> productIds, boolean reflash ,String menuType) {
Map<String, ProductBean> newProductBeanMap = Maps.newTreeMap(); Map<String, ProductBean> newProductBeanMap = Maps.newTreeMap();
if (CollectionUtils.isEmpty(productIds)) { if (CollectionUtils.isEmpty(productIds)) {
return ResponseUtil.success(newProductBeanMap); return ResponseUtil.success(newProductBeanMap);
...@@ -75,7 +75,7 @@ public class ItemServiceImpl implements ItemService { ...@@ -75,7 +75,7 @@ public class ItemServiceImpl implements ItemService {
return ResponseUtil.success(productBeanMap); return ResponseUtil.success(productBeanMap);
} }
GetProductValidateDto getProductValidateDto = storeItemAdapter.convert2ProductValidateDto(partnerId, shopId, productIds); GetProductValidateDto getProductValidateDto = storeItemAdapter.convert2ProductValidateDto(partnerId, shopId, productIds);
GetProductInfoDto getProductInfoDto = storeItemAdapter.convert2ProductInfoDto(partnerId, shopId, ProductInfoType.ALL.getCode(), productIds); GetProductInfoDto getProductInfoDto = storeItemAdapter.convert2ProductInfoDto(partnerId, shopId, ProductInfoType.ALL.getCode(), productIds,menuType);
ProductInfosDto productInfosDto = storeItemClient.listProductInfos(getProductInfoDto); ProductInfosDto productInfosDto = storeItemClient.listProductInfos(getProductInfoDto);
if (!RESPONSE_SUCCESS_CODE.equals(productInfosDto.getErrcode()) || CollectionUtils.isEmpty(productInfosDto.getData().getProducts())) { if (!RESPONSE_SUCCESS_CODE.equals(productInfosDto.getErrcode()) || CollectionUtils.isEmpty(productInfosDto.getData().getProducts())) {
log.error("getShoppingCartInfo checkProductValidate is error , getProductValidateDto:{} , productCheckVaildDto:{}", log.error("getShoppingCartInfo checkProductValidate is error , getProductValidateDto:{} , productCheckVaildDto:{}",
...@@ -141,14 +141,14 @@ public class ItemServiceImpl implements ItemService { ...@@ -141,14 +141,14 @@ public class ItemServiceImpl implements ItemService {
} }
@Override @Override
public Map<String, GetProductsVo> getProducts(List<String> pids, String partnerId, String storeId) { public Map<String, GetProductsVo> getProducts(List<String> pids, String partnerId, String storeId, String menuType) {
Map<String, GetProductsVo> resultMap = new HashMap<>(); Map<String, GetProductsVo> resultMap = new HashMap<>();
if (CollectionUtils.isEmpty(pids)) { if (CollectionUtils.isEmpty(pids)) {
return resultMap; return resultMap;
} }
List<String> skuIds = Lists.newArrayList(); List<String> skuIds = Lists.newArrayList();
//查询商品详情 //查询商品详情
GetProductInfoDto getProductInfoDto = storeItemAdapter.convert2ProductInfoDto(partnerId, storeId, ProductInfoType.ALL.getCode(), pids); GetProductInfoDto getProductInfoDto = storeItemAdapter.convert2ProductInfoDto(partnerId, storeId, ProductInfoType.ALL.getCode(), pids,menuType);
ProductInfosDto productInfosDto = storeItemClient.listProductInfos(getProductInfoDto); ProductInfosDto productInfosDto = storeItemClient.listProductInfos(getProductInfoDto);
if (ResponseCodeConstant.RESPONSE_SUCCESS.equals(productInfosDto.getErrcode()) if (ResponseCodeConstant.RESPONSE_SUCCESS.equals(productInfosDto.getErrcode())
&& productInfosDto.getData() != null && productInfosDto.getData() != null
......
...@@ -33,8 +33,8 @@ public class ProductServiceImpl implements ProductService { ...@@ -33,8 +33,8 @@ public class ProductServiceImpl implements ProductService {
private ProductClient productClient; private ProductClient productClient;
@Override @Override
public boolean hasRequiredProducts(String partnerId, String storeId, List<CartGoods> cartGoodsList) { public boolean hasRequiredProducts(String partnerId, String storeId, List<CartGoods> cartGoodsList,String menuType) {
RequiredProductRequest request = RequiredProductRequest.builder().channel("saas").partnerId(partnerId).shopId(storeId).build(); RequiredProductRequest request = RequiredProductRequest.builder().channel(menuType).partnerId(partnerId).shopId(storeId).build();
ProductBaseResponse<List<String>> requiredProductList = productClient.getRequiredProductList(request); ProductBaseResponse<List<String>> requiredProductList = productClient.getRequiredProductList(request);
if (null != requiredProductList && ResponseCodeConstant.RESPONSE_SUCCESS.equals(requiredProductList.getErrcode()) && if (null != requiredProductList && ResponseCodeConstant.RESPONSE_SUCCESS.equals(requiredProductList.getErrcode()) &&
!CollectionUtils.isEmpty(requiredProductList.getData())) { !CollectionUtils.isEmpty(requiredProductList.getData())) {
......
...@@ -6,7 +6,6 @@ import cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto; ...@@ -6,7 +6,6 @@ import cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto; import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.BusinessTypeEnum;
import cn.freemud.enums.ProductType; import cn.freemud.enums.ProductType;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
...@@ -29,6 +28,7 @@ import com.freemud.sdk.api.assortment.shoppingcart.constant.CartResponseConstant ...@@ -29,6 +28,7 @@ import com.freemud.sdk.api.assortment.shoppingcart.constant.CartResponseConstant
import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant; import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
import com.freemud.sdk.api.assortment.shoppingcart.constant.MealClearOperationEnum; import com.freemud.sdk.api.assortment.shoppingcart.constant.MealClearOperationEnum;
import com.freemud.sdk.api.assortment.shoppingcart.domain.CartParamDto; import com.freemud.sdk.api.assortment.shoppingcart.domain.CartParamDto;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest; import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.MealCartBaseServiceImpl; import com.freemud.sdk.api.assortment.shoppingcart.service.impl.MealCartBaseServiceImpl;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -99,7 +99,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService { ...@@ -99,7 +99,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService {
productIds.add(Long.parseLong(goodsId)); productIds.add(Long.parseLong(goodsId));
} else { } else {
//校验券是否有效 //校验券是否有效
spuId2 = validCoupon(partnerId, storeId, spuId, productIds); spuId2 = validCoupon(partnerId, storeId, spuId, productIds,BusinessTypeEnum.getByType(requestVo.getMenuType()).getCode());
} }
// 获取商品信息 // 获取商品信息
List<ProductBeanDTO> productBeanListSpuClass = List<ProductBeanDTO> productBeanListSpuClass =
...@@ -491,7 +491,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService { ...@@ -491,7 +491,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService {
@Override @Override
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult public ActivityCalculationDiscountResponseDto.CalculationDiscountResult
getActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType, getActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType,
List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList) { List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType) {
return null; return null;
} }
......
...@@ -52,6 +52,7 @@ import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest; ...@@ -52,6 +52,7 @@ import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant; import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest; import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest;
import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService; import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl; import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
...@@ -150,7 +151,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -150,7 +151,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
request.setEncryptCode(CommonsConstant.COUPON_PREFIX + result.getCode()); request.setEncryptCode(CommonsConstant.COUPON_PREFIX + result.getCode());
// 根据skuId获取详情 // 根据skuId获取详情
Map<String, GetProductsVo> products = itemService.getProducts(Arrays.asList(request.getSkuId()), request.getPartnerId(), request.getShopId()); Map<String, GetProductsVo> products = itemService.getProducts(Arrays.asList(request.getSkuId()), request.getPartnerId(), request.getShopId(),BusinessTypeEnum.getByType(request.getMenuType()).getCode());
if (products == null || products.size() == 0) { if (products == null || products.size() == 0) {
return ResponseUtil.error(ResponseResult.WEICHAT_PRODUCT_NOEXIST); return ResponseUtil.error(ResponseResult.WEICHAT_PRODUCT_NOEXIST);
} }
...@@ -159,7 +160,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -159,7 +160,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// 根据spu查询菜单(必须在当前菜单下才可以加入购物车) // 根据spu查询菜单(必须在当前菜单下才可以加入购物车)
GetMenuCategoryByIdsDto getMenuCategoryByIdsDto = GetMenuCategoryByIdsDto.builder() GetMenuCategoryByIdsDto getMenuCategoryByIdsDto = GetMenuCategoryByIdsDto.builder()
.businessDate(DateUtil.convert2String(new Date(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS)) .businessDate(DateUtil.convert2String(new Date(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS))
.channelType(OrderChannelType.SAAS.getCode()) .channelType(BusinessTypeEnum.getByType(request.getMenuType()).getCode())
.partnerId(request.getPartnerId()) .partnerId(request.getPartnerId())
.shopId(request.getShopId()) .shopId(request.getShopId())
.productIds(Arrays.asList(getProductsVo.getSpuId())).build(); .productIds(Arrays.asList(getProductsVo.getSpuId())).build();
...@@ -223,7 +224,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -223,7 +224,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
productIds.add(Long.parseLong(goodsId)); productIds.add(Long.parseLong(goodsId));
} else { } else {
//校验券是否有效 //校验券是否有效
spuId2 = validCoupon(partnerId, storeId, spuId, productIds); spuId2 = validCoupon(partnerId, storeId, spuId, productIds,BusinessTypeEnum.getByType(addShoppingCartGoodsRequestVo.getMenuType()).getCode());
} }
// 获取商品详细信息 // 获取商品详细信息
List<ProductBeanDTO> productBeanListSpuClass = assortmentSdkService.getProductsInfoSdk(partnerId, storeId List<ProductBeanDTO> productBeanListSpuClass = assortmentSdkService.getProductsInfoSdk(partnerId, storeId
...@@ -252,7 +253,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -252,7 +253,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
// 获取优惠信息 // 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType(), allCartGoodsList); ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType(), allCartGoodsList,BusinessTypeEnum.getByType(addShoppingCartGoodsRequestVo.getMenuType()).getCode());
// 当商品数量被设为0时 // 当商品数量被设为0时
if (Objects.equals(cartGoods.getQty(), 0)) { if (Objects.equals(cartGoods.getQty(), 0)) {
assortmentSdkService.updateGoodsQtyBySdk(partnerId, userId, storeId, cartGoods.getCartGoodsUid(), 0, "", shoppingCartBaseService); assortmentSdkService.updateGoodsQtyBySdk(partnerId, userId, storeId, cartGoods.getCartGoodsUid(), 0, "", shoppingCartBaseService);
...@@ -335,7 +336,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -335,7 +336,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, updateShoppingCartGoodsQtyRequestVo.getSessionId(), "", shoppingCartBaseService); assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, updateShoppingCartGoodsQtyRequestVo.getSessionId(), "", shoppingCartBaseService);
// 获取优惠信息 // 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType(), cartGoodsList); ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType(), cartGoodsList,BusinessTypeEnum.getByType(updateShoppingCartGoodsQtyRequestVo.getMenuType()).getCode());
if (calculationDiscountResult == null) { if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
// return shoppingCartGoodsResponseVo; // return shoppingCartGoodsResponseVo;
...@@ -369,7 +370,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -369,7 +370,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
//查询商品信息 //查询商品信息
List<String> pids = new ArrayList<>(); List<String> pids = new ArrayList<>();
pids.add(cartGoods.getGoodsId()); pids.add(cartGoods.getGoodsId());
Map<String, GetProductsVo> products = itemService.getProducts(pids, partnerId, storeId); Map<String, GetProductsVo> products = itemService.getProducts(pids, partnerId, storeId,BusinessTypeEnum.getByType(updateShoppingCartGoodsQtyRequestVo.getMenuType()).getCode());
GetProductsVo getProductsVo = products.get(cartGoods.getGoodsId()); GetProductsVo getProductsVo = products.get(cartGoods.getGoodsId());
// 商品没有库存限制 // 商品没有库存限制
...@@ -377,7 +378,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -377,7 +378,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return; return;
} }
GetProductStockRequestDto requestDto = new GetProductStockRequestDto(); GetProductStockRequestDto requestDto = new GetProductStockRequestDto();
requestDto.setChannel("saas"); requestDto.setChannel(BusinessTypeEnum.getByType(updateShoppingCartGoodsQtyRequestVo.getMenuType()).getCode());
requestDto.setPartnerId(partnerId); requestDto.setPartnerId(partnerId);
requestDto.setStoreId(storeId); requestDto.setStoreId(storeId);
requestDto.setProductIds(Collections.singletonList(Long.parseLong(cartGoods.getGoodsId()))); requestDto.setProductIds(Collections.singletonList(Long.parseLong(cartGoods.getGoodsId())));
...@@ -413,8 +414,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -413,8 +414,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, "", shoppingCartBaseService); List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, "", shoppingCartBaseService);
// 如果购物车商品不为空, 则check购物车中所有商品 // 如果购物车商品不为空, 则check购物车中所有商品
if (CollectionUtils.isNotEmpty(cartGoodsList)){ if (CollectionUtils.isNotEmpty(cartGoodsList)){
CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo.getOrderType(), "", shoppingCartInfoRequestVo.getMenuType() ,shoppingCartBaseService);
shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo.getOrderType(), "", shoppingCartInfoRequestVo.getMenuType() ,shoppingCartBaseService);
if (checkCartRequest.getShoppingCartGoodsResponseVo() != null) { if (checkCartRequest.getShoppingCartGoodsResponseVo() != null) {
shoppingCartGoodsResponseVo.setChanged(checkCartRequest.getShoppingCartGoodsResponseVo().getChanged()); shoppingCartGoodsResponseVo.setChanged(checkCartRequest.getShoppingCartGoodsResponseVo().getChanged());
shoppingCartGoodsResponseVo.setToastMsg(checkCartRequest.getShoppingCartGoodsResponseVo().getToastMsg()); shoppingCartGoodsResponseVo.setToastMsg(checkCartRequest.getShoppingCartGoodsResponseVo().getToastMsg());
...@@ -432,7 +432,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -432,7 +432,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
coupons.add(coupon); coupons.add(coupon);
} }
// 获取优惠信息 // 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType(), cartGoodsList, coupons, null); ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType(), cartGoodsList, coupons, null,BusinessTypeEnum.getByType(shoppingCartInfoRequestVo.getMenuType()).getCode());
if (calculationDiscountResult == null) { if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
} }
...@@ -543,7 +543,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -543,7 +543,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
* 1. 调用商品服务拿到该门店是否有必选商品 * 1. 调用商品服务拿到该门店是否有必选商品
* 2. 如果有,则和购物车的商品对比 * 2. 如果有,则和购物车的商品对比
*/ */
if (productService.hasRequiredProducts(partnerId, storeId, cartGoodsList)) { if (productService.hasRequiredProducts(partnerId, storeId, cartGoodsList,BusinessTypeEnum.getByType(shoppingCartInfoRequestVo.getMenuType()).getCode())) {
throw new ServiceException(ResponseResult.SHOPPING_CART_REQUIRED_PRODUCT_NOT_EXIST); throw new ServiceException(ResponseResult.SHOPPING_CART_REQUIRED_PRODUCT_NOT_EXIST);
} }
...@@ -591,7 +591,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -591,7 +591,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
} }
// 获取优惠信息 // 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType(), cartGoodsList, coupons, sendGoodsList); ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType(), cartGoodsList, coupons, sendGoodsList,BusinessTypeEnum.getByType(shoppingCartInfoRequestVo.getMenuType()).getCode());
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType());
...@@ -671,8 +671,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -671,8 +671,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
* @return * @return
*/ */
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse( public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse(
String partnerId, String storeId, String userId, String wxAppid, Integer orderType, List<CartGoods> cartGoodsList) { String partnerId, String storeId, String userId, String wxAppid, Integer orderType, List<CartGoods> cartGoodsList,String menuType) {
return getActivityCalculationDiscountResponse(partnerId, storeId, userId, wxAppid, orderType, cartGoodsList, new ArrayList<>(), new ArrayList<>()); return getActivityCalculationDiscountResponse(partnerId, storeId, userId, wxAppid, orderType, cartGoodsList, new ArrayList<>(), new ArrayList<>(),menuType);
} }
/** /**
...@@ -687,7 +687,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -687,7 +687,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse( public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse(
String partnerId, String storeId, String userId, String appId, Integer orderType, List<CartGoods> cartGoodsList, String partnerId, String storeId, String userId, String appId, Integer orderType, List<CartGoods> cartGoodsList,
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons,
List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList) { List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType) {
// 当购物车中只有商品券并且未使用折扣券时,不调用接口计算 // 当购物车中只有商品券并且未使用折扣券时,不调用接口计算
// if (cartGoodsList.size() == 1 // if (cartGoodsList.size() == 1
// && coupons.size() == 0) { // && coupons.size() == 0) {
...@@ -711,7 +711,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -711,7 +711,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
else { else {
// 商品券ID换取商品 // 商品券ID换取商品
String spqId = cartGoods.getCartGoodsUid().substring(CommonsConstant.COUPON_PREFIX.length()); String spqId = cartGoods.getCartGoodsUid().substring(CommonsConstant.COUPON_PREFIX.length());
CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, spqId); CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, spqId,menuType);
CheckSpqInfoResponseDto checkSpqInfoResponseDto = couponService.checkSpqInfo(checkSpqInfoRequestDto); CheckSpqInfoResponseDto checkSpqInfoResponseDto = couponService.checkSpqInfo(checkSpqInfoRequestDto);
// 商品券不存在时,将商品券从购物车移除 // 商品券不存在时,将商品券从购物车移除
if (checkSpqInfoResponseDto == null) { if (checkSpqInfoResponseDto == null) {
...@@ -1120,7 +1120,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1120,7 +1120,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
private void queryManyGoodsStocks(AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, List<Long> productIds private void queryManyGoodsStocks(AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, List<Long> productIds
, List<ProductBeanDTO> productBeanListSpuClass, String skuId, Integer qty) { , List<ProductBeanDTO> productBeanListSpuClass, String skuId, Integer qty) {
GetProductStockRequestDto requestDto = new GetProductStockRequestDto(); GetProductStockRequestDto requestDto = new GetProductStockRequestDto();
requestDto.setChannel("saas"); requestDto.setChannel(BusinessTypeEnum.getByType(addShoppingCartGoodsRequestVo.getMenuType()).getCode());
requestDto.setPartnerId(addShoppingCartGoodsRequestVo.getPartnerId()); requestDto.setPartnerId(addShoppingCartGoodsRequestVo.getPartnerId());
requestDto.setStoreId(addShoppingCartGoodsRequestVo.getShopId()); requestDto.setStoreId(addShoppingCartGoodsRequestVo.getShopId());
requestDto.setProductIds(productIds); requestDto.setProductIds(productIds);
......
...@@ -53,7 +53,7 @@ public class ItemServiceTest { ...@@ -53,7 +53,7 @@ public class ItemServiceTest {
@Test @Test
public void getProducts() { public void getProducts() {
Map<String, GetProductsVo> maps = itemService.getProducts(Arrays.asList("1", "2"), "1864", "1011"); Map<String, GetProductsVo> maps = itemService.getProducts(Arrays.asList("1", "2"), "1864", "1011","saas");
assertFalse(maps == null || maps.isEmpty()); assertFalse(maps == null || maps.isEmpty());
} }
} }
...@@ -71,7 +71,7 @@ public class StoreItemServiceTest { ...@@ -71,7 +71,7 @@ public class StoreItemServiceTest {
"125115354620910102", "125115354620910102",
"125117293812275722", "125117293812275722",
"125117293812275726", "125117293812275726",
"125117293812275730"), "1864", "1001"); "125117293812275730"), "1864", "1001","saas");
System.out.println(getProductsVoMap); System.out.println(getProductsVoMap);
} }
......
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