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 {
* @param stockChangeType 库存改变类型
* @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.setChannel("saas");
updateStocksRequest.setChannel(menuType);
updateStocksRequest.setChangeType(stockChangeType.getCode());
updateStocksRequest.setIsOversold(0);
updateStocksRequest.setPartnerId(orderBean.getCompanyId());
......
......@@ -156,6 +156,11 @@ public class BaseCreateOrderRequest extends BaseConfig {
*/
private String region;
/**
* 订单渠道
*/
private String menuType;
@Data
public static class DeliveryTypeInfo {
/**
......
......@@ -34,6 +34,11 @@ public class CreateFatherSonOrderRequest extends BaseConfig {
*/
MqMessageRequest mqMessageRequest;
/**
* 订单渠道类型
*/
private String menuType;
@Data
public static class OrderInfo {
/**
......
......@@ -134,7 +134,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
return getCreateOrderResponse(createOrderResponse.getErrcode().toString(), createOrderResponse.getErrmsg(), null);
}
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())) {
return getCreateOrderResponse(baseOrderResponse.getErrcode().toString(), baseOrderResponse.getErrmsg(), null);
}
......@@ -154,8 +154,8 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
return CreateFatherSonOrderResponse.error("500", "");
}
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(),
createFatherSonOrderRequest.getMqMessageRequest());
BaseOrderResponse baseOrderResponse =updateStockAndScore(productOrderInfo.get(0), productOrderRequest.getProducts(), productOrderRequest.getActivityUpdateStockRequest(), productOrderRequest.getAccounts(),
createFatherSonOrderRequest.getMqMessageRequest(),createFatherSonOrderRequest.getMenuType());
if (!RESPONSE_SUCCESS.equals(baseOrderResponse.getErrcode())) {
return CreateFatherSonOrderResponse.error(baseOrderResponse.getErrcode().toString(), baseOrderResponse.getErrmsg());
}
......@@ -175,9 +175,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
}
private BaseOrderResponse updateStockAndScore(OrderBean orderBean, List<CreateOrderProductRequest> products, ActivityUpdateStockRequest updateStockRequest,
List<CreateOrderAccountRequest> accounts, MqMessageRequest mqMessageRequest) {
List<CreateOrderAccountRequest> accounts, MqMessageRequest mqMessageRequest,String menuType) {
//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())) {
BaseResponse baseResponse = stockSdkService.reducesStocks(updateStocksRequest, "");
ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(),
......
......@@ -120,6 +120,7 @@ public class ShoppingCartAdapter {
request.setPartnerId(checkCartRequest.getPartnerId());
request.setStoreId(checkCartRequest.getStoreId());
request.setGoodsIds(goodsIds.stream().distinct().collect(Collectors.toList()));
request.setMenuType(checkCartRequest.getMenuType());
return request;
}
......
......@@ -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.constant.*;
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.GetProductInfoRequest;
import com.freemud.sdk.api.assortment.shoppingcart.util.CartResponseUtil;
......@@ -141,7 +142,8 @@ public interface ShoppingCartBaseService {
.map(CartGoods::getSpuId).collect(Collectors.toList());
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;
if (menuDetailDtoMap == null || !(keySet = menuDetailDtoMap.keySet()).containsAll(spuIds)) {
......@@ -371,14 +373,14 @@ public interface ShoppingCartBaseService {
default Map<String, GetMenuByIdsResponseDto.DataBean.MenuDetailDto> checkMenuProducts(String partnerId,
String shopId,
List<String> productIds, String trackingNo) {
List<String> productIds, String trackingNo,String menuType) {
Map<String, GetMenuByIdsResponseDto.DataBean.MenuDetailDto> menuDetailDtosMap = new HashMap<>();
//查询spu商品是否在菜单
GetMenuCategoryByIdsRequest getMenuCategoryByIdsDto = GetMenuCategoryByIdsRequest.builder()
.businessDate(DateTimeUtils.getCurrentDateTimeStr())
.channelType(OrderChannelType.SAAS.getCode())
.channelType(menuType)
.partnerId(partnerId)
.shopId(shopId)
.productIds(productIds).build();
......
......@@ -250,6 +250,7 @@ public class OrderAdapter {
CreateFatherSonOrderRequest createFatherSonOrderRequest = new CreateFatherSonOrderRequest();
createFatherSonOrderRequest.setPartnerId(createOrderVo.getPartnerId());
createFatherSonOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
createFatherSonOrderRequest.setMenuType(createOrderVo.getMenuType());
UserDeliveryInfoDto deliveryInfoDto = createOrderVo.getUserDeliveryInfoDto();
List<CreateFatherSonOrderRequest.OrderInfo> orderInfoList = new ArrayList<>();
CreateFatherSonOrderRequest.OrderInfo productOrderInfo = convertProductOrderInfo(createOrderVo, deliveryInfoDto, shoppingCartGoodsDto,orderWarnTime);
......@@ -501,6 +502,7 @@ public class OrderAdapter {
createOrderDto.setAmount(0L);
createOrderDto.setBarCounter(createOrderVo.getTableNumber());
createOrderDto.setOperator(createOrderVo.getUserName());
createOrderDto.setMenuType(BusinessTypeEnum.getByCode(createOrderDto.getMenuType()));
return createOrderDto;
}
......
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;
* @date 2018/05/08
*/
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 {
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) {
ShoppingCartInfoRequestVo.BuyMemberCard buyMemberCard = null;
if (createOrderVo.getBuyMemberCard() != null) {
......@@ -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,
......@@ -478,80 +454,6 @@ public class CheckOrder {
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){
if(StringUtils.isBlank(cardCode)){
......
......@@ -43,84 +43,12 @@ public class ItemServiceImpl implements ItemService{
@Autowired
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商品信息
* 包括商品的套餐子商品
* 返回商品的第三方编号(唯一)、第三方货号、第三方规格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<>();
if (CollectionUtils.isEmpty(spuIds)) {
return resultMap;
......@@ -128,7 +56,7 @@ public class ItemServiceImpl implements ItemService{
//去重
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);
LogUtil.info("storeItemClient_listProductInfos", gson.toJson(getProductInfoDto), gson.toJson(productInfosDto));
if (ResponseCodeConstant.RESPONSE_SUCCESS.equals(productInfosDto.getErrcode()) && productInfosDto.getData() != null
......
......@@ -1568,7 +1568,7 @@ public class OrderServiceImpl implements Orderservice {
for (CreateOrderProductRequest productDto : productOrderInfoList.get(0).getProducts()) {
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()) {
return fatherSonOrderRequest;
}
......@@ -1614,7 +1614,7 @@ public class OrderServiceImpl implements Orderservice {
for (CreateOrderProductRequest productDto : createOrderDto.getProducts()) {
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()) {
return createOrderDto;
}
......
......@@ -50,14 +50,14 @@ public class StoreItemAdapter {
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.setPartnerId(partnerId);
getProductInfoDto.setShopId(shopId);
getProductInfoDto.setProductInfoType(productInfoType);
getProductInfoDto.setProductIds(productIds);
// 商品服务增加channel
getProductInfoDto.setChannel(OrderSourceType.SAAS.getCode());
getProductInfoDto.setChannel(menuType);
return getProductInfoDto;
}
......
......@@ -14,4 +14,5 @@ public class CheckSpqInfoRequestDto {
* 券code
*/
private String couponCode;
private String menuType;
}
......@@ -28,6 +28,6 @@ public interface ItemService {
* @param storeId
* @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 {
* @param cartGoodsList
* @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 {
Integer orderType,
List<CartGoods> cartGoodsList,
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);
......@@ -109,9 +109,9 @@ public interface ShoppingCartNewService {
* @param productIds
* @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;
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);
CheckSpqInfoResponseDto checkSpqInfoResponseDto = couponService.checkSpqInfo(checkSpqInfoRequestDto);
if (checkSpqInfoResponseDto == null) {
......
......@@ -15,6 +15,7 @@ import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.IPromotionService;
import cn.freemud.service.ItemService;
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 org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
......@@ -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));
//添加商品行
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 totalAmount = shoppingCartGoodsResponseVo.getTotalAmount();
......
......@@ -4,7 +4,6 @@ import ch.qos.logback.classic.Level;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.ShoppingCartGoodsBaseResponseVo;
import cn.freemud.enums.BusinessTypeEnum;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.utils.LogUtil;
......@@ -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.LogThreadLocal;
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.GetProductInfoRequest;
import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService;
......
......@@ -588,7 +588,7 @@ public class CouponServiceImpl implements CouponService {
String skuId = couponDetailResponseDto.getDetails().get(0).getActiveProduct().get(0).getProductIdPartner();
skuIds.add(String.valueOf(skuId));
//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);
if (null == productsVo || !Objects.equals(productsVo.getStatus(), StoreItemStatus.PUT_ON_SALE.getCode())) {
return null;
......
......@@ -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();
if (CollectionUtils.isEmpty(productIds)) {
return ResponseUtil.success(newProductBeanMap);
......@@ -75,7 +75,7 @@ public class ItemServiceImpl implements ItemService {
return ResponseUtil.success(productBeanMap);
}
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);
if (!RESPONSE_SUCCESS_CODE.equals(productInfosDto.getErrcode()) || CollectionUtils.isEmpty(productInfosDto.getData().getProducts())) {
log.error("getShoppingCartInfo checkProductValidate is error , getProductValidateDto:{} , productCheckVaildDto:{}",
......@@ -141,14 +141,14 @@ public class ItemServiceImpl implements ItemService {
}
@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<>();
if (CollectionUtils.isEmpty(pids)) {
return resultMap;
}
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);
if (ResponseCodeConstant.RESPONSE_SUCCESS.equals(productInfosDto.getErrcode())
&& productInfosDto.getData() != null
......
......@@ -33,8 +33,8 @@ public class ProductServiceImpl implements ProductService {
private ProductClient productClient;
@Override
public boolean hasRequiredProducts(String partnerId, String storeId, List<CartGoods> cartGoodsList) {
RequiredProductRequest request = RequiredProductRequest.builder().channel("saas").partnerId(partnerId).shopId(storeId).build();
public boolean hasRequiredProducts(String partnerId, String storeId, List<CartGoods> cartGoodsList,String menuType) {
RequiredProductRequest request = RequiredProductRequest.builder().channel(menuType).partnerId(partnerId).shopId(storeId).build();
ProductBaseResponse<List<String>> requiredProductList = productClient.getRequiredProductList(request);
if (null != requiredProductList && ResponseCodeConstant.RESPONSE_SUCCESS.equals(requiredProductList.getErrcode()) &&
!CollectionUtils.isEmpty(requiredProductList.getData())) {
......
......@@ -6,7 +6,6 @@ import cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.BusinessTypeEnum;
import cn.freemud.enums.ProductType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
......@@ -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.MealClearOperationEnum;
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.service.impl.MealCartBaseServiceImpl;
import org.apache.commons.lang.StringUtils;
......@@ -99,7 +99,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService {
productIds.add(Long.parseLong(goodsId));
} else {
//校验券是否有效
spuId2 = validCoupon(partnerId, storeId, spuId, productIds);
spuId2 = validCoupon(partnerId, storeId, spuId, productIds,BusinessTypeEnum.getByType(requestVo.getMenuType()).getCode());
}
// 获取商品信息
List<ProductBeanDTO> productBeanListSpuClass =
......@@ -491,7 +491,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService {
@Override
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult
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;
}
......
......@@ -53,7 +53,7 @@ public class ItemServiceTest {
@Test
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());
}
}
......@@ -71,7 +71,7 @@ public class StoreItemServiceTest {
"125115354620910102",
"125117293812275722",
"125117293812275726",
"125117293812275730"), "1864", "1001");
"125117293812275730"), "1864", "1001","saas");
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