Commit cf73af22 by ping.wu

Merge branches 'develop' and 'feature/20200929_麦咖啡再来一单' of…

Merge branches 'develop' and 'feature/20200929_麦咖啡再来一单' of http://gitlab.freemud.com/order-group-application/order-group into develop

# Conflicts:
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
parents 5473b22f e8d46e16
...@@ -17,8 +17,8 @@ public enum ShoppingCartOperationType { ...@@ -17,8 +17,8 @@ public enum ShoppingCartOperationType {
ADD_PRODUCT_COUPON(1,"增加商品券"), ADD_PRODUCT_COUPON(1,"增加商品券"),
ADD_SUPER_PRICE_GOODS(2,"增加超值加购商品"), ADD_SUPER_PRICE_GOODS(2,"增加超值加购商品"),
UPDATE3(3,"切换门店校验"), CHECK(3,"切换门店校验"),
UPDATE4(4,"确认切换门店") CONFIRM(4,"确认切换门店")
; ;
......
...@@ -4,6 +4,7 @@ import ch.qos.logback.classic.Level; ...@@ -4,6 +4,7 @@ import ch.qos.logback.classic.Level;
import cn.freemud.adapter.ActivityAdapter; import cn.freemud.adapter.ActivityAdapter;
import cn.freemud.adapter.ShoppingCartConvertAdapter; import cn.freemud.adapter.ShoppingCartConvertAdapter;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.ShoppingCartConstant; import cn.freemud.constant.ShoppingCartConstant;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ActivityQueryDto; import cn.freemud.entities.dto.activity.ActivityQueryDto;
...@@ -45,6 +46,9 @@ import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; ...@@ -45,6 +46,9 @@ import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO; import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.application.sdk.api.productcenter.service.ProductService; import com.freemud.application.sdk.api.productcenter.service.ProductService;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CartResponseConstant; import com.freemud.sdk.api.assortment.shoppingcart.constant.CartResponseConstant;
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.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.domain.CartGoodsStates; import com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoodsStates;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum; import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
...@@ -100,6 +104,8 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -100,6 +104,8 @@ public class ShoppingCartMCoffeeServiceImpl {
private CouponDiscountCalculation couponDiscountCalculation; private CouponDiscountCalculation couponDiscountCalculation;
@Autowired @Autowired
private OrderSdkService orderSdkService; private OrderSdkService orderSdkService;
@Autowired
private StoreCenterService storeCenterService;
@Autowired @Autowired
private ProductClient productClient; private ProductClient productClient;
...@@ -574,7 +580,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -574,7 +580,7 @@ public class ShoppingCartMCoffeeServiceImpl {
} }
List<CartGoods> onlyCheckGoodsList = new ArrayList<>(); List<CartGoods> onlyCheckGoodsList = new ArrayList<>();
if (requestVo.getOperationType() == ShoppingCartOperationType.UPDATE3.getCode()){ if (requestVo.getOperationType() == ShoppingCartOperationType.CHECK.getCode()){
onlyCheckGoodsList.addAll(cartGoodsList); onlyCheckGoodsList.addAll(cartGoodsList);
// 新门店check购物车中所有商品 // 新门店check购物车中所有商品
onlyCheckGoodsList = checkCartGoods(partnerId, toStoreId, orderType, menuType, shoppingCartGoodsResponseVo, onlyCheckGoodsList); onlyCheckGoodsList = checkCartGoods(partnerId, toStoreId, orderType, menuType, shoppingCartGoodsResponseVo, onlyCheckGoodsList);
...@@ -583,7 +589,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -583,7 +589,7 @@ public class ShoppingCartMCoffeeServiceImpl {
cartGoodsList = checkCartGoods(partnerId, toStoreId, orderType, menuType, shoppingCartGoodsResponseVo, cartGoodsList); cartGoodsList = checkCartGoods(partnerId, toStoreId, orderType, menuType, shoppingCartGoodsResponseVo, cartGoodsList);
} }
if (requestVo.getOperationType() == ShoppingCartOperationType.UPDATE3.getCode()) { if (requestVo.getOperationType() == ShoppingCartOperationType.CHECK.getCode()) {
if (StringUtils.isNotEmpty(shoppingCartGoodsResponseVo.getToastMsg())){ if (StringUtils.isNotEmpty(shoppingCartGoodsResponseVo.getToastMsg())){
//设置更新响应信息,校验失败只弹框提示消息,不切换门店,故将门店id重置为原来门店 //设置更新响应信息,校验失败只弹框提示消息,不切换门店,故将门店id重置为原来门店
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
...@@ -609,7 +615,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -609,7 +615,7 @@ public class ShoppingCartMCoffeeServiceImpl {
} }
} }
// 新门店check购物车中所有商品 // 新门店check购物车中所有商品
if (requestVo.getOperationType() == ShoppingCartOperationType.UPDATE4.getCode()) { if (requestVo.getOperationType() == ShoppingCartOperationType.CONFIRM.getCode()) {
// 重新存储新门店购物车 // 重新存储新门店购物车
assortmentSdkService.setShoppingCart(partnerId, toStoreId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService); assortmentSdkService.setShoppingCart(partnerId, toStoreId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService);
//清空商品券商品 //清空商品券商品
...@@ -660,23 +666,31 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -660,23 +666,31 @@ public class ShoppingCartMCoffeeServiceImpl {
if (orderInfo == null || orderInfo.getResult() == null) { if (orderInfo == null || orderInfo.getResult() == null) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR); return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
} }
if (orderInfo.getResult().getOrderType() == 3 || orderInfo.getResult().getOrderType() == 4) {
List<CartGoods> cartGoodsList = getOrderGoods(orderInfo.getResult()); menuType = "saasdelivery";
orderType = 2;
}
String storeId = orderInfo.getResult().getStoreId(); String storeId = orderInfo.getResult().getStoreId();
if(StringUtils.isNotEmpty(requestVo.getShopId())){ if(StringUtils.isNotEmpty(requestVo.getShopId())){
storeId = requestVo.getShopId(); storeId = requestVo.getShopId();
} }
if (orderInfo.getResult().getOrderType() == 3 || orderInfo.getResult().getOrderType() == 4) { BaseResponse storeCheckResponse = checkOrderByStore(orderInfo.getResult().getPartnerId(), storeId, LogThreadLocal.getTrackingNo());
menuType = "saasdelivery"; if(!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(storeCheckResponse.getCode())) {
orderType = 2; return storeCheckResponse;
}
List<CartGoods> cartGoodsList = getOrderGoods(orderInfo.getResult());
if (CollectionUtils.isEmpty(cartGoodsList)) {
return ResponseUtil.error(ResponseResult.SHOPPING_CART_GETINFO_INVAILD);
} }
// 如果购物车商品不为空, 则check购物车中所有商品
if (CollectionUtils.isNotEmpty(cartGoodsList)) {
// check购物车中所有商品 // check购物车中所有商品
cartGoodsList = checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, cartGoodsList); cartGoodsList = checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, cartGoodsList);
// 如果购物车商品不为空, 则check购物车中所有商品
if (shoppingCartGoodsResponseVo.getChanged() && requestVo.getOperationType() == ShoppingCartOperationType.CHECK.getCode()) {
return ResponseUtil.success(shoppingCartGoodsResponseVo);
}
// 重新存储最新购物车 // 重新存储最新购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService); assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService);
}
// 促销活动的优惠金额计算 // 促销活动的优惠金额计算
calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, null, null, calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, null, null,
cartGoodsList, new ArrayList<>(), new ArrayList<>(), shoppingCartGoodsResponseVo); cartGoodsList, new ArrayList<>(), new ArrayList<>(), shoppingCartGoodsResponseVo);
...@@ -686,6 +700,29 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -686,6 +700,29 @@ public class ShoppingCartMCoffeeServiceImpl {
return ResponseUtil.success(shoppingCartGoodsResponseVo); return ResponseUtil.success(shoppingCartGoodsResponseVo);
} }
/**
* 门店相关校验
*/
private BaseResponse checkOrderByStore(String partnerId, String shopId, String trackingNo) {
// 获取门店信息
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId,null);
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
if (storeResponse == null || storeResponse.getBizVO() == null) {
return ResponseUtil.error(ResponseResult.STORE_NOT_FOUND);
}
StoreResponse.BizVO storeResponseDto = storeResponse.getBizVO();
// 校验门店是否营业
if (storeResponseDto.getActiveFlag() == null || storeResponseDto.getActiveFlag() != 1
|| storeResponseDto.getState() == null || storeResponseDto.getState().equals("3")) {
return ResponseUtil.error(ResponseResult.STORE_ITEM_STOP_BUSINESS);
}
if (storeResponseDto.getActiveFlag() == 1 && storeResponseDto.getState().equals("2")) {
return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_CLOSE);
}
return ResponseUtil.success();
}
private List<CartGoods> getOrderGoods(OrderInfoReqs orderInfo) { private List<CartGoods> getOrderGoods(OrderInfoReqs orderInfo) {
if (orderInfo == null || CollectionUtils.isEmpty(orderInfo.getOrderItemList())) { if (orderInfo == null || CollectionUtils.isEmpty(orderInfo.getOrderItemList())) {
throw new ServiceException(ResponseResult.SHOPPING_CART_PRODUCT_NOT_EXIST); throw new ServiceException(ResponseResult.SHOPPING_CART_PRODUCT_NOT_EXIST);
...@@ -705,7 +742,9 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -705,7 +742,9 @@ public class ShoppingCartMCoffeeServiceImpl {
cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType()); cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType());
} else if(10 ==orderItem.getProductType()) { } else if(10 ==orderItem.getProductType()) {
cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.SKU_GOODS.getGoodsType()); cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.SKU_GOODS.getGoodsType());
} else { }else if(!orderItem.getProductId().equals(orderItem.getProductSpec())) {
cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.SKU_GOODS.getGoodsType());
}else {
cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.COMMON_GOODS.getGoodsType()); cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.COMMON_GOODS.getGoodsType());
} }
if(("早餐啡常搭".equals(orderItem.getProductName()) && "早餐啡常搭".equals(orderItem.getProductSpecName())) if(("早餐啡常搭".equals(orderItem.getProductName()) && "早餐啡常搭".equals(orderItem.getProductSpecName()))
...@@ -713,6 +752,10 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -713,6 +752,10 @@ public class ShoppingCartMCoffeeServiceImpl {
cartGoods.setName(orderItem.getProductName()); cartGoods.setName(orderItem.getProductName());
cartGoods.setSpuName(orderItem.getProductName()); cartGoods.setSpuName(orderItem.getProductName());
cartGoods.setSkuName(orderItem.getProductName()); cartGoods.setSkuName(orderItem.getProductName());
} else {
cartGoods.setName(orderItem.getProductName());
cartGoods.setSkuName(orderItem.getProductSpecName());
cartGoods.setSpuName(orderItem.getProductName());
} }
if (ObjectUtils.equals(ProductTypeEnum.SETMEAL_PRODUCT.getCode(), orderItem.getProductType()) || ObjectUtils.equals(ProductTypeEnum.SETMEAL_UPPRICE_PRODUCT.getCode(), orderItem.getProductType())) { if (ObjectUtils.equals(ProductTypeEnum.SETMEAL_PRODUCT.getCode(), orderItem.getProductType()) || ObjectUtils.equals(ProductTypeEnum.SETMEAL_UPPRICE_PRODUCT.getCode(), orderItem.getProductType())) {
// 获取套餐子商品列表 // 获取套餐子商品列表
...@@ -731,7 +774,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -731,7 +774,7 @@ public class ShoppingCartMCoffeeServiceImpl {
private CartGoods.ComboxGoods getComboxGoods(CartGoods cartGoods, OrderItemResp orderItemResp) { private CartGoods.ComboxGoods getComboxGoods(CartGoods cartGoods, OrderItemResp orderItemResp) {
CartGoods.ComboxGoods comboxGoods = new CartGoods.ComboxGoods(); CartGoods.ComboxGoods comboxGoods = new CartGoods.ComboxGoods();
comboxGoods.setSkuId(orderItemResp.getProductId()); comboxGoods.setSkuId(orderItemResp.getProductSpec());
comboxGoods.setGoodsId(orderItemResp.getProductId()); comboxGoods.setGoodsId(orderItemResp.getProductId());
comboxGoods.setQty(orderItemResp.getProductQuantity()); comboxGoods.setQty(orderItemResp.getProductQuantity());
comboxGoods.setOriginalPrice(orderItemResp.getProductPrice().longValue()); comboxGoods.setOriginalPrice(orderItemResp.getProductPrice().longValue());
...@@ -753,32 +796,6 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -753,32 +796,6 @@ public class ShoppingCartMCoffeeServiceImpl {
if (map.containsKey("isFixedProduct") && !(boolean) map.get("isFixedProduct")) { if (map.containsKey("isFixedProduct") && !(boolean) map.get("isFixedProduct")) {
cartGoods.getProductGroupList().add(comboxGoods); cartGoods.getProductGroupList().add(comboxGoods);
} }
// comboxGoods.setWeight(orderItemResp.getWeight());
// productBean.setCustomerCode(orderItemResp.getThirdProductId());
// productBean.setProductCode(orderItemResp.getProductCode());
// productBean.setNumber(orderItemResp.getProductQuantity());
// productBean.setOpid(orderItemResp.getProductSeq() == null ? null : orderItemResp.getProductSeq().toString());
// productBean.setSequence(orderItemResp.getProductSeq() == null ? 0 : orderItemResp.getProductSeq());
// productBean.setOrderId(orderItemResp.getOrderCode());
// comboxGoods.setProductId(orderItemResp.getProductId());
// productBean.setParentProductId("");
// productBean.setPicture(orderItemResp.getProductPicUrl());
// productBean.setPrice(orderItemResp.getProductPrice().longValue());
// productBean.setSalePrice(orderItemResp.getSalePrice().longValue());
// productBean.setProductName(orderItemResp.getProductName());
// productBean.setSpecification(orderItemResp.getProductSpec());
// productBean.setSpecificationName(orderItemResp.getProductSpecName());
// productBean.setProductSharePrice(orderItemResp.getProductSharePrice());
// productBean.setSettlementPrice(orderItemResp.getSettlementPrice().longValue());
// productBean.setUnit(orderItemResp.getProductUnit());
//
// // 套餐
// productBean.setParentProductId(orderItemResp.getParentProductId());
// productBean.setProductType(orderItemResp.getProductType());
// productBean.setId(orderItemResp.getId());
return comboxGoods; return comboxGoods;
} }
......
...@@ -44,4 +44,10 @@ public class CopyShoppingCartRequestVo { ...@@ -44,4 +44,10 @@ public class CopyShoppingCartRequestVo {
@NotEmpty(message = "orderId不能为空") @NotEmpty(message = "orderId不能为空")
private String orderId; private String orderId;
/**
* 操作类型 ShoppingCartOperationType 枚举
* 校验通过直接返回购物车商品数据
*/
private Integer operationType;
} }
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