Commit 4b10147f by 徐康

Merge remote-tracking branch 'origin/develop' into develop

parents 17241f6d 072d9c6a
...@@ -2451,7 +2451,7 @@ public class OrderSdkAdapter { ...@@ -2451,7 +2451,7 @@ public class OrderSdkAdapter {
for (CreateOrderProductRequest productRequest : products) { for (CreateOrderProductRequest productRequest : products) {
// 普通商品 订单转换 // 普通商品 订单转换
productRequest.setOpid(index); productRequest.setOpid(index);
originalAmount += updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, productRequest, partnerId, ""); originalAmount += updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, productRequest, partnerId, "", false);
if (ProductTypeEnum.MATERIAL_PRODUCT.getCode().equals(productRequest.getProductType())) { if (ProductTypeEnum.MATERIAL_PRODUCT.getCode().equals(productRequest.getProductType())) {
if (CollectionUtils.isNotEmpty(productRequest.getMaterialProduct())) { if (CollectionUtils.isNotEmpty(productRequest.getMaterialProduct())) {
// 父类商品productId=productId+seq // 父类商品productId=productId+seq
...@@ -2460,7 +2460,7 @@ public class OrderSdkAdapter { ...@@ -2460,7 +2460,7 @@ public class OrderSdkAdapter {
index++; index++;
material.setOpid(index); material.setOpid(index);
material.setSpecification(material.getProductId()); material.setSpecification(material.getProductId());
updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, material, partnerId, partnerProductId); updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, material, partnerId, partnerProductId, true);
} }
} }
} }
...@@ -2469,7 +2469,7 @@ public class OrderSdkAdapter { ...@@ -2469,7 +2469,7 @@ public class OrderSdkAdapter {
// 父类商品productId=productId+seq // 父类商品productId=productId+seq
String partnerProductId = productRequest.getProductId() + "_" + index; String partnerProductId = productRequest.getProductId() + "_" + index;
if (CollectionUtils.isNotEmpty(productRequest.getComboProduct())) { if (CollectionUtils.isNotEmpty(productRequest.getComboProduct())) {
productRequest.getComboProduct().forEach(combo -> updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, combo, partnerId, partnerProductId)); productRequest.getComboProduct().forEach(combo -> updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, combo, partnerId, partnerProductId, false));
} }
} }
index++; index++;
...@@ -2487,7 +2487,7 @@ public class OrderSdkAdapter { ...@@ -2487,7 +2487,7 @@ public class OrderSdkAdapter {
* @param parentProductId 套餐父商品Id * @param parentProductId 套餐父商品Id
* @return * @return
*/ */
private Long updateOrderItemAndSettlement(List<OrderItemCreateReq> orderItemList, List<OrderSettlementCreateReq> orderSettlementCreateReqList, CreateOrderProductRequest product, String partnerId, String parentProductId) { private Long updateOrderItemAndSettlement(List<OrderItemCreateReq> orderItemList, List<OrderSettlementCreateReq> orderSettlementCreateReqList, CreateOrderProductRequest product, String partnerId, String parentProductId, Boolean isMaterial) {
OrderItemCreateReq orderItemCreateReq = new OrderItemCreateReq(); OrderItemCreateReq orderItemCreateReq = new OrderItemCreateReq();
orderItemCreateReq.setId(product.getId()); orderItemCreateReq.setId(product.getId());
orderItemCreateReq.setPartnerId(partnerId); orderItemCreateReq.setPartnerId(partnerId);
...@@ -2611,7 +2611,7 @@ public class OrderSdkAdapter { ...@@ -2611,7 +2611,7 @@ public class OrderSdkAdapter {
orderItemCreateReq.setExtInfo(JSONObject.toJSONString(extInfo)); orderItemCreateReq.setExtInfo(JSONObject.toJSONString(extInfo));
orderItemList.add(orderItemCreateReq); orderItemList.add(orderItemCreateReq);
if (product.getTotalDiscountAmount() != null && product.getTotalDiscountAmount() > 0L) { if (product.getTotalDiscountAmount() != null && product.getTotalDiscountAmount() > 0L && !isMaterial) {
//优惠信息转换 //优惠信息转换
OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq(); OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq();
orderSettlementCreateReq.setProductId(product.getSpecification()); orderSettlementCreateReq.setProductId(product.getSpecification());
......
...@@ -257,6 +257,28 @@ public class OrderAdapter { ...@@ -257,6 +257,28 @@ public class OrderAdapter {
return createOrderDto; return createOrderDto;
} }
private List<CreateOrderAccountRequest> getMaterialAccounts(CreateOrderProductRequest createOrderProductDto, ShoppingCartGoodsDto.CartGoodsDetailDto material) {
List<CreateOrderAccountRequest> orderAccountDtos = createOrderProductDto.getAccounts();
if (CollectionUtils.isEmpty(orderAccountDtos)){
orderAccountDtos = new ArrayList<>();
}
List<ActivityDiscountsDto> activityDiscountsDtos = material.getActivityDiscountsDtos();
for (ActivityDiscountsDto activityDiscountsDto : activityDiscountsDtos) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId(activityDiscountsDto.getActivityCode())
.name(activityDiscountsDto.getActivityName())
.price(activityDiscountsDto.getDiscountAmount().longValue())
.accountType(getQueryOrderAccountType(getOrderAccountType(activityDiscountsDto.getActivityType())))
.sequence(createOrderProductDto.getSequence())
.productId(material.getSpuId())
.discountQty(createOrderProductDto.getNumber())
.build();
orderAccountDtos.add(createOrderAccountDto);
}
return orderAccountDtos;
}
public CreateFatherSonOrderRequest convertFatherSonOrderRequest(CreateOrderVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto, public CreateFatherSonOrderRequest convertFatherSonOrderRequest(CreateOrderVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto,
OrderExtendedReq orderExtendedReq,StoreResponse.BizVO storeResponseDto, OrderExtendedReq orderExtendedReq,StoreResponse.BizVO storeResponseDto,
String appId) { String appId) {
...@@ -1742,7 +1764,7 @@ public class OrderAdapter { ...@@ -1742,7 +1764,7 @@ public class OrderAdapter {
productVo.setOriginalPrice(new BigDecimal(productVo.getOriginalPrice()).subtract(new BigDecimal(material.getOriginalPrice())).longValue()); productVo.setOriginalPrice(new BigDecimal(productVo.getOriginalPrice()).subtract(new BigDecimal(material.getOriginalPrice())).longValue());
productVo.setFinalPrice(new BigDecimal(productVo.getFinalPrice()).subtract(new BigDecimal(material.getFinalPrice())).longValue()); productVo.setFinalPrice(new BigDecimal(productVo.getFinalPrice()).subtract(new BigDecimal(material.getFinalPrice())).longValue());
productVo.setOriginalTotalAmount(new BigDecimal(productVo.getOriginalTotalAmount()).subtract(new BigDecimal(material.getOriginalTotalAmount())).longValue()); productVo.setOriginalTotalAmount(new BigDecimal(productVo.getOriginalTotalAmount()).subtract(new BigDecimal(material.getOriginalTotalAmount())).longValue());
productVo.setSaleTotalAmount(new BigDecimal(productVo.getSaleTotalAmount()).subtract(new BigDecimal(material.getSaleTotalAmount())).longValue()); productVo.setSaleTotalAmount(new BigDecimal(productVo.getSaleTotalAmount()).subtract(new BigDecimal(product.getSettlementPrice())).longValue());
}); });
productVo.setSetMaterialProducts(setMaterialProducts); productVo.setSetMaterialProducts(setMaterialProducts);
} }
...@@ -2024,7 +2046,7 @@ public class OrderAdapter { ...@@ -2024,7 +2046,7 @@ public class OrderAdapter {
if (cartGoodsDetailDto.getProductType() != null && (cartGoodsDetailDto.getProductType() == ProductType.MATERIALPRODUCT_UPPRICE.getCode())) { if (cartGoodsDetailDto.getProductType() != null && (cartGoodsDetailDto.getProductType() == ProductType.MATERIALPRODUCT_UPPRICE.getCode())) {
List<CreateOrderProductRequest> materialProducts = new ArrayList<>(); List<CreateOrderProductRequest> materialProducts = new ArrayList<>();
cartGoodsDetailDto.getMaterialList().forEach(product -> { cartGoodsDetailDto.getMaterialList().forEach(product -> {
materialProducts.add(convent2OrderProductDemo(product)); materialProducts.add(convent2OrderProductMaterial(product));
}); });
createOrderProductDemoDto.setMaterialProduct(materialProducts); createOrderProductDemoDto.setMaterialProduct(materialProducts);
} }
...@@ -2034,6 +2056,35 @@ public class OrderAdapter { ...@@ -2034,6 +2056,35 @@ public class OrderAdapter {
return createOrderProductDemoDto; return createOrderProductDemoDto;
} }
private CreateOrderProductRequest convent2OrderProductMaterial(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) {
CreateOrderProductRequest createOrderProductDemoDto = new CreateOrderProductRequest();
createOrderProductDemoDto.setProductId(cartGoodsDetailDto.getSpuId());
createOrderProductDemoDto.setProductName(cartGoodsDetailDto.getSpuName());
createOrderProductDemoDto.setSpecification(cartGoodsDetailDto.getSkuId());
createOrderProductDemoDto.setSpecificationName(cartGoodsDetailDto.getSkuName());
createOrderProductDemoDto.setPrice(cartGoodsDetailDto.getOriginalPrice());
createOrderProductDemoDto.setSalePrice(cartGoodsDetailDto.getOriginalPrice());
createOrderProductDemoDto.setTotalDiscountAmount(cartGoodsDetailDto.getTotalDiscountAmount() == null ? 0 : cartGoodsDetailDto.getTotalDiscountAmount().longValue());
createOrderProductDemoDto.setNumber(cartGoodsDetailDto.getQty());
createOrderProductDemoDto.setPicture(cartGoodsDetailDto.getPicture());
createOrderProductDemoDto.setAddInfo(cartGoodsDetailDto.getAttributeNames());
createOrderProductDemoDto.setDiscountId(cartGoodsDetailDto.getCouponCode());
createOrderProductDemoDto.setProductType(cartGoodsDetailDto.getProductType());
createOrderProductDemoDto.setParentProductId(cartGoodsDetailDto.getParentProductId());
createOrderProductDemoDto.setIsFixedProduct(cartGoodsDetailDto.getIsFixedProduct());
createOrderProductDemoDto.setCustomerCode(cartGoodsDetailDto.getCustomerCode());
//createOrderProductDemoDto.setProductCode(cartGoodsDetailDto.getProductCode());
createOrderProductDemoDto.setHasStockProudct(cartGoodsDetailDto.isStockLimit());
createOrderProductDemoDto.setWeight(cartGoodsDetailDto.getWeight());
createOrderProductDemoDto.setUnit(cartGoodsDetailDto.getUnit());
createOrderProductDemoDto.setStapleFood(0);
createOrderProductDemoDto.setCategory(cartGoodsDetailDto.getClassificationId());
if (CollectionUtils.isNotEmpty(cartGoodsDetailDto.getActivityDiscountsDtos())) {
createOrderProductDemoDto.setAccounts(getMaterialAccounts(createOrderProductDemoDto, cartGoodsDetailDto));
}
return createOrderProductDemoDto;
}
public CreateOrderProductRequest convent2OrderProductDemo(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) { public CreateOrderProductRequest convent2OrderProductDemo(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) {
CreateOrderProductRequest createOrderProductDemoDto = new CreateOrderProductRequest(); CreateOrderProductRequest createOrderProductDemoDto = new CreateOrderProductRequest();
createOrderProductDemoDto.setProductId(cartGoodsDetailDto.getSpuId()); createOrderProductDemoDto.setProductId(cartGoodsDetailDto.getSpuId());
......
...@@ -46,7 +46,7 @@ public class McCafeCouponAdapter { ...@@ -46,7 +46,7 @@ public class McCafeCouponAdapter {
public MCCafeCouponRequest convert2MCCafeCouponRequest(QueryOrdersResponse.DataBean.OrderBean orderBean, QueryOrdersResponse.DataBean.OrderBean.AccountBean accountBean) { public MCCafeCouponRequest convert2MCCafeCouponRequest(QueryOrdersResponse.DataBean.OrderBean orderBean, QueryOrdersResponse.DataBean.OrderBean.AccountBean accountBean) {
List<MCCafeProductRedeemVo> products = new ArrayList<>(); List<MCCafeProductRedeemVo> products = new ArrayList<>();
//商品券核销核销参数 //商品券核销核销参数
if (QueryOrderAccountType.PRODUCT_COUPON.equals(accountBean.getType())) { if (QueryOrderAccountType.PRODUCT_COUPON.equals(getQueryOrderAccountType(getOrderAccountType(accountBean.getType())))) {
for (int i = 0; i < orderBean.getProductList().size(); i++) { for (int i = 0; i < orderBean.getProductList().size(); i++) {
QueryOrdersResponse.DataBean.OrderBean.ProductBean productBean = orderBean.getProductList().get(i); QueryOrdersResponse.DataBean.OrderBean.ProductBean productBean = orderBean.getProductList().get(i);
String pid = StringUtils.isNotBlank(productBean.getSpecification()) ? productBean.getSpecification() : productBean.getProductId(); String pid = StringUtils.isNotBlank(productBean.getSpecification()) ? productBean.getSpecification() : productBean.getProductId();
...@@ -67,6 +67,18 @@ public class McCafeCouponAdapter { ...@@ -67,6 +67,18 @@ public class McCafeCouponAdapter {
} }
} }
} }
}else if (QueryOrderAccountType.COUPON.equals(getQueryOrderAccountType(getOrderAccountType(accountBean.getType())))) {
for (int i = 0; i < orderBean.getProductList().size(); i++) {
QueryOrdersResponse.DataBean.OrderBean.ProductBean productBean = orderBean.getProductList().get(i);
String pid = StringUtils.isNotBlank(productBean.getSpecification()) ? productBean.getSpecification() : productBean.getProductId();
MCCafeProductRedeemVo mcCafeProductRedeemVo = new MCCafeProductRedeemVo();
mcCafeProductRedeemVo.setPid(pid);
mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
mcCafeProductRedeemVo.setConsume_num(productBean.getNumber());
mcCafeProductRedeemVo.setSeq(i + 1);
products.add(mcCafeProductRedeemVo);
}
} }
MCCafeCouponRequest mcCafeCouponRequest = new MCCafeCouponRequest(); MCCafeCouponRequest mcCafeCouponRequest = new MCCafeCouponRequest();
mcCafeCouponRequest.setVer(Integer.valueOf(Version.VERSION_1)); mcCafeCouponRequest.setVer(Integer.valueOf(Version.VERSION_1));
......
...@@ -95,15 +95,14 @@ public class MCoffeeShoppingCartController { ...@@ -95,15 +95,14 @@ public class MCoffeeShoppingCartController {
/** /**
* 切换点餐方式或者门店 * 切换门店购物车,校验商品或者复制原门店购物车到新门店
*/ */
@ApiAnnotation(logMessage = "switchCartGoodsCheck") @ApiAnnotation(logMessage = "switchCartGoods")
@PostMapping(value = "/switchCartGoodsCheck") @PostMapping(value = "/switchCartGoods")
public BaseResponse switchCartGoodsCheck(@Validated @LogParams @RequestBody SwitchShoppingCartRequestVo request) { public BaseResponse switchCartGoods(@Validated @LogParams @RequestBody SwitchShoppingCartRequestVo request) {
return shoppingCartMCoffeeService.switchCartGoodsCheck(request); return shoppingCartMCoffeeService.switchCartGoods(request);
} }
/** /**
* 再来一单 * 再来一单
*/ */
......
...@@ -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,"确认切换门店"), UPDATE3(3,"切换门店校验"),
UPDATE4(4,"切换门店校验") UPDATE4(4,"确认切换门店")
; ;
......
...@@ -86,7 +86,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -86,7 +86,7 @@ public class ShoppingCartMCoffeeServiceImpl {
* 添加商品、超值加购、商品券 * 添加商品、超值加购、商品券
*/ */
public BaseResponse addGoods(MCoffeeAddGoodsRequestVo addShoppingCartGoodsRequestVo) { public BaseResponse addGoods(MCoffeeAddGoodsRequestVo addShoppingCartGoodsRequestVo) {
// TODO: 2020/7/21 参数校验 // 参数校验
if (StringUtils.isEmpty(addShoppingCartGoodsRequestVo.getShopId())) { if (StringUtils.isEmpty(addShoppingCartGoodsRequestVo.getShopId())) {
return ResponseUtil.error(ResponseResult.SHOPPING_CART_SHOP_ID_NOT_EMPTY); return ResponseUtil.error(ResponseResult.SHOPPING_CART_SHOP_ID_NOT_EMPTY);
} }
...@@ -128,7 +128,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -128,7 +128,7 @@ public class ShoppingCartMCoffeeServiceImpl {
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = checkGoodsCoupon(oldCartGoodsList, operationType, couponCode); List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = checkGoodsCoupon(oldCartGoodsList, operationType, couponCode);
setClassificationAndPrice(addCartGoods, productBeanListSpuClass); setClassificationAndPrice(addCartGoods, productBeanListSpuClass);
//查询多个商品库存信息 //查询多个商品库存信息
Integer checkQty = this.checkSkuQty(oldCartGoodsList, addCartGoods); // Integer checkQty = this.checkSkuQty(oldCartGoodsList, addCartGoods);
// queryManyGoodsStocks(partnerId, storeId, menuType, productIds, productBeanListSpuClass, skuId, checkQty); // queryManyGoodsStocks(partnerId, storeId, menuType, productIds, productBeanListSpuClass, skuId, checkQty);
// 如果购物车中有商品券,则当前添加的商品是特价商品时,需要提示“已选商品券,与其他优惠商品不同享,商品将恢复原价” // 如果购物车中有商品券,则当前添加的商品是特价商品时,需要提示“已选商品券,与其他优惠商品不同享,商品将恢复原价”
...@@ -185,9 +185,6 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -185,9 +185,6 @@ public class ShoppingCartMCoffeeServiceImpl {
/** /**
* 更新商品数量 * 更新商品数量
*
* @param updateShoppingCartGoodsQtyRequestVo
* @return
*/ */
public BaseResponse updateGoodsQty(UpdateShoppingCartGoodsQtyRequestVo updateShoppingCartGoodsQtyRequestVo) { public BaseResponse updateGoodsQty(UpdateShoppingCartGoodsQtyRequestVo updateShoppingCartGoodsQtyRequestVo) {
if (StringUtils.isEmpty(updateShoppingCartGoodsQtyRequestVo.getShopId())) { if (StringUtils.isEmpty(updateShoppingCartGoodsQtyRequestVo.getShopId())) {
...@@ -263,7 +260,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -263,7 +260,7 @@ public class ShoppingCartMCoffeeServiceImpl {
String storeId = shoppingCartInfoRequestVo.getShopId(); String storeId = shoppingCartInfoRequestVo.getShopId();
String appId = shoppingCartInfoRequestVo.getAppId(); String appId = shoppingCartInfoRequestVo.getAppId();
String couponCode = shoppingCartInfoRequestVo.getCouponCode(); String couponCode = shoppingCartInfoRequestVo.getCouponCode();
String activityCode = shoppingCartInfoRequestVo.getActivityCode(); // String activityCode = shoppingCartInfoRequestVo.getActivityCode();
String menuType = shoppingCartInfoRequestVo.getMenuType(); String menuType = shoppingCartInfoRequestVo.getMenuType();
Integer orderType = shoppingCartInfoRequestVo.getOrderType(); Integer orderType = shoppingCartInfoRequestVo.getOrderType();
String receiveId = shoppingCartInfoRequestVo.getReceiveId(); String receiveId = shoppingCartInfoRequestVo.getReceiveId();
...@@ -304,13 +301,12 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -304,13 +301,12 @@ public class ShoppingCartMCoffeeServiceImpl {
String userId = assortmentCustomerInfoVo.getMemberId(); String userId = assortmentCustomerInfoVo.getMemberId();
String partnerId = shoppingCartInfoRequestVo.getPartnerId(); String partnerId = shoppingCartInfoRequestVo.getPartnerId();
String storeId = shoppingCartInfoRequestVo.getShopId(); String storeId = shoppingCartInfoRequestVo.getShopId();
String appId = shoppingCartInfoRequestVo.getAppId(); // String appId = shoppingCartInfoRequestVo.getAppId();
//非商品券券号 //非商品券券号
String couponCode = shoppingCartInfoRequestVo.getCouponCode(); String couponCode = shoppingCartInfoRequestVo.getCouponCode();
String activityCode = shoppingCartInfoRequestVo.getActivityCode(); // String menuType = shoppingCartInfoRequestVo.getMenuType();
String menuType = shoppingCartInfoRequestVo.getMenuType();
Integer orderType = shoppingCartInfoRequestVo.getOrderType(); Integer orderType = shoppingCartInfoRequestVo.getOrderType();
String receiveId = shoppingCartInfoRequestVo.getReceiveId(); // String receiveId = shoppingCartInfoRequestVo.getReceiveId();
// 获取购物车商品 // 获取购物车商品
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, "", shoppingCartBaseService); List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, "", shoppingCartBaseService);
...@@ -394,22 +390,6 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -394,22 +390,6 @@ public class ShoppingCartMCoffeeServiceImpl {
throw new ServiceException(ResponseResult.SHOPPING_CART_GETINFO_INVAILD); throw new ServiceException(ResponseResult.SHOPPING_CART_GETINFO_INVAILD);
} }
// check购物车中所有商品(商品是否存在,价格变动,券是否支持当前点餐方式)
// CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo,
// shoppingCartInfoRequestVo.getOrderType(), tableNumber, shoppingCartInfoRequestVo.getMenuType() ,shoppingCartBaseService);
// com.freemud.sdk.api.assortment.shoppingcart.domain.ShoppingCartGoodsResponseVo cartGoodsResponseVo = checkCartRequest.getShoppingCartGoodsResponseVo();
// //商品不再售卖状态或价格变动,直接返回报错
// if (cartGoodsResponseVo != null) {
// if (cartGoodsResponseVo.getCartGoodsStates() != null && cartGoodsResponseVo.getCartGoodsStates().isHasInvalidGoods()) {
// return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
// }
// if (cartGoodsResponseVo.getCartGoodsStates() != null && cartGoodsResponseVo.getCartGoodsStates().isPriceChanged()) {
// return ResponseUtil.error(ResponseResult.SHOPPING_CART_ACTIVITY_CHANGE);
// }
// shoppingCartGoodsResponseVo.setToastMsg(cartGoodsResponseVo.getToastMsg());
// }
// cartGoodsList = JSONArray.parseArray(JSONObject.toJSONString(checkCartRequest.getCartGoodsList()), CartGoods.class);
// check购物车中所有商品 // check购物车中所有商品
cartGoodsList = checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, cartGoodsList); cartGoodsList = checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, cartGoodsList);
// 重新存储最新购物车 // 重新存储最新购物车
...@@ -436,38 +416,67 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -436,38 +416,67 @@ public class ShoppingCartMCoffeeServiceImpl {
} }
/** /**
* 切换点餐方式或者门店 * 切换点餐门店
*/ */
public BaseResponse switchCartGoodsCheck(SwitchShoppingCartRequestVo requestVo) { public BaseResponse switchCartGoods(SwitchShoppingCartRequestVo requestVo) {
String jsonString = JSONObject.toJSONString(requestVo); String jsonString = JSONObject.toJSONString(requestVo);
ShoppingCartInfoRequestVo shoppingCartInfoRequestVo = JSONObject.parseObject(jsonString, ShoppingCartInfoRequestVo.class); ShoppingCartInfoRequestVo shoppingCartInfoRequestVo = JSONObject.parseObject(jsonString, ShoppingCartInfoRequestVo.class);
if (StringUtils.isEmpty(shoppingCartInfoRequestVo.getShopId())) {
throw new ServiceException(ResponseResult.SHOPPING_CART_SHOP_ID_NOT_EMPTY);
}
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = new ShoppingCartGoodsResponseVo(); ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = new ShoppingCartGoodsResponseVo();
String sessionId = shoppingCartInfoRequestVo.getSessionId(); String sessionId = shoppingCartInfoRequestVo.getSessionId();
// 获取用户信息 // 获取用户信息
CustomerInfoVo assortmentCustomerInfoVo = getCustomerInfoVo(sessionId); CustomerInfoVo assortmentCustomerInfoVo = getCustomerInfoVo(sessionId);
String userId = assortmentCustomerInfoVo.getMemberId(); String userId = assortmentCustomerInfoVo.getMemberId();
String partnerId = shoppingCartInfoRequestVo.getPartnerId(); String partnerId = shoppingCartInfoRequestVo.getPartnerId();
String storeId = shoppingCartInfoRequestVo.getShopId(); String fromStoreId = requestVo.getFromShopId();
String toStoreId = requestVo.getToShopId();
String couponCode = requestVo.getCouponCode();
String appId = shoppingCartInfoRequestVo.getAppId(); String appId = shoppingCartInfoRequestVo.getAppId();
String menuType = shoppingCartInfoRequestVo.getMenuType(); String menuType = shoppingCartInfoRequestVo.getMenuType();
Integer orderType = shoppingCartInfoRequestVo.getOrderType();
String receiveId = shoppingCartInfoRequestVo.getReceiveId(); String receiveId = shoppingCartInfoRequestVo.getReceiveId();
Integer orderType = shoppingCartInfoRequestVo.getOrderType();
// 获取购物车商品 // 获取原门店购物车商品
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, sessionId, "", shoppingCartBaseService); List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, fromStoreId, userId, sessionId, "", shoppingCartBaseService);
// 如果购物车商品不为空, 则check购物车中所有商品 // 如果购物车商品不为空, 则check购物车中所有商品
if (CollectionUtils.isNotEmpty(cartGoodsList)) { if (CollectionUtils.isEmpty(cartGoodsList)) {
// check购物车中所有商品 return ResponseUtil.success(shoppingCartGoodsResponseVo);
checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, cartGoodsList); }
// 新门店check购物车中所有商品
cartGoodsList = checkCartGoods(partnerId, toStoreId, orderType, menuType, shoppingCartGoodsResponseVo, cartGoodsList);
if (requestVo.getOperationType() == ShoppingCartOperationType.UPDATE3.getCode()) {
return ResponseUtil.success(shoppingCartGoodsResponseVo);
}
// 新门店check购物车中所有商品
if (requestVo.getOperationType() == ShoppingCartOperationType.UPDATE4.getCode()) {
// 重新存储新门店购物车
assortmentSdkService.setShoppingCart(partnerId, toStoreId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService);
//清空商品券商品
clearCartCouponGoods(partnerId, toStoreId, userId, sessionId, cartGoodsList);
// 当couponCode不为空时,需参与价格计算
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = getCoupon(couponCode, null, cartGoodsList);
// 促销活动的优惠金额计算
calculationService.updateShoppingCartGoodsDiscount(partnerId, toStoreId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, null,
cartGoodsList, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo);
//设置更新响应信息
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), ShoppingCartConstant.QUERY_INFO, shoppingCartInfoRequestVo);
shoppingCartGoodsResponseVo.setChanged(false);
} }
return ResponseUtil.success(shoppingCartGoodsResponseVo); return ResponseUtil.success(shoppingCartGoodsResponseVo);
} }
/**
* 清除购物车商品券
*/
private void clearCartCouponGoods(String partnerId, String storeId, String userId, String sessionId,List<CartGoods> cartGoodsList) {
if(CollectionUtils.isEmpty(cartGoodsList)){
return;
}
cartGoodsList = cartGoodsList.stream().filter(cartGoods -> cartGoods.getCouponCode() == null).collect(Collectors.toList());
// 重新存储新门店购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService);
}
/** /**
* 再来一单 * 再来一单
...@@ -492,7 +501,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -492,7 +501,7 @@ public class ShoppingCartMCoffeeServiceImpl {
List<CartGoods> cartGoodsList = getOrderGoods(orderInfo.getResult()); List<CartGoods> cartGoodsList = getOrderGoods(orderInfo.getResult());
String storeId = orderInfo.getResult().getStoreId(); String storeId = orderInfo.getResult().getStoreId();
if(orderInfo.getResult().getOrderType() == 3 || orderInfo.getResult().getOrderType() == 4){ if (orderInfo.getResult().getOrderType() == 3 || orderInfo.getResult().getOrderType() == 4) {
menuType = "saasdelivery"; menuType = "saasdelivery";
orderType = 2; orderType = 2;
} }
...@@ -521,7 +530,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -521,7 +530,7 @@ public class ShoppingCartMCoffeeServiceImpl {
List<OrderItemResp> parentOrderItemList = orderItemList.stream() List<OrderItemResp> parentOrderItemList = orderItemList.stream()
.filter(item -> StringUtils.isEmpty(item.getParentProductId()) || ObjectUtils.equals("0", item.getParentProductId())) .filter(item -> StringUtils.isEmpty(item.getParentProductId()) || ObjectUtils.equals("0", item.getParentProductId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
for (OrderItemResp orderItem : parentOrderItemList){ for (OrderItemResp orderItem : parentOrderItemList) {
CartGoods cartGoods = new CartGoods(); CartGoods cartGoods = new CartGoods();
cartGoods.setGoodsId(orderItem.getProductSpec()); cartGoods.setGoodsId(orderItem.getProductSpec());
cartGoods.setQty(orderItem.getProductQuantity()); cartGoods.setQty(orderItem.getProductQuantity());
...@@ -533,7 +542,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -533,7 +542,7 @@ public class ShoppingCartMCoffeeServiceImpl {
cartGoods.setProductGroupList(new ArrayList<>()); cartGoods.setProductGroupList(new ArrayList<>());
String partnerProductId = orderItem.getProductId() + "_" + orderItem.getProductSeq(); String partnerProductId = orderItem.getProductId() + "_" + orderItem.getProductSeq();
List<OrderItemResp> comboProducts = orderItemList.stream().filter(item -> ObjectUtils.equals(partnerProductId, item.getParentProductId())).collect(Collectors.toList()); List<OrderItemResp> comboProducts = orderItemList.stream().filter(item -> ObjectUtils.equals(partnerProductId, item.getParentProductId())).collect(Collectors.toList());
comboProducts.forEach(combo -> getComboxGoods(cartGoods,combo)); comboProducts.forEach(combo -> getComboxGoods(cartGoods, combo));
} }
cartGoodsList.add(cartGoods); cartGoodsList.add(cartGoods);
} }
...@@ -542,28 +551,28 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -542,28 +551,28 @@ 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.getProductId());
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());
comboxGoods.setFinalPrice(orderItemResp.getSalePrice().longValue()); comboxGoods.setFinalPrice(orderItemResp.getSalePrice().longValue());
if(!"".equals(orderItemResp.getProductProperty())){ if (!"".equals(orderItemResp.getProductProperty())) {
List<CartGoods.CartGoodsExtra> extra = new ArrayList<>(); List<CartGoods.CartGoodsExtra> extra = new ArrayList<>();
String[] split = orderItemResp.getProductProperty().split("/"); String[] split = orderItemResp.getProductProperty().split("/");
for (int i = 0;i<split.length;i++){ for (int i = 0; i < split.length; i++) {
CartGoods.CartGoodsExtra cartGoodsExtra = new CartGoods.CartGoodsExtra(); CartGoods.CartGoodsExtra cartGoodsExtra = new CartGoods.CartGoodsExtra();
cartGoodsExtra.setAttributeName(split[i]); cartGoodsExtra.setAttributeName(split[i]);
extra.add(cartGoodsExtra); extra.add(cartGoodsExtra);
} }
comboxGoods.setExtra(extra); comboxGoods.setExtra(extra);
} }
Map<String, Object> map = JSONObject.parseObject(orderItemResp.getExtInfo(),Map.class); Map<String, Object> map = JSONObject.parseObject(orderItemResp.getExtInfo(), Map.class);
if(map.containsKey("isFixedProduct") && (boolean)map.get("isFixedProduct")){ if (map.containsKey("isFixedProduct") && (boolean) map.get("isFixedProduct")) {
cartGoods.getProductComboList().add(comboxGoods); cartGoods.getProductComboList().add(comboxGoods);
} }
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()); // comboxGoods.setWeight(orderItemResp.getWeight());
...@@ -611,34 +620,6 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -611,34 +620,6 @@ public class ShoppingCartMCoffeeServiceImpl {
shoppingCartInfoRequestVo.setSendGoods(senGoods); shoppingCartInfoRequestVo.setSendGoods(senGoods);
} }
/**
* 处理加价购商品
*
* @param sendGoodsList
* @param partnerId
* @param storeId
*/
// private void processSendGoods(List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList
// , String partnerId, String storeId,String menuType, ShoppingCartBaseService shoppingCartService) {
// List<String> goodsIds = sendGoodsList.parallelStream().map(ShoppingCartInfoRequestVo.SendGoods::getGoodsId).collect(Collectors.toList());
// List<ProductBeanDTO> productBeanList =
// assortmentSdkService.getProductsInfoSdk(partnerId, storeId, goodsIds, menuType, shoppingCartService);
// // 将productBeanList转换为Map,key为pid,即goodsId
// Map<String, ProductBeanDTO> productBeanMap = productBeanList.parallelStream()
// .collect(Collectors.toMap(ProductBeanDTO::getPid, Function.identity(), (k1, k2) -> k1));
// // 遍历购物车进行加个更新
// for (ShoppingCartInfoRequestVo.SendGoods sendGoods : sendGoodsList) {
// ProductBeanDTO productBean;
// if ((productBean = productBeanMap.get(sendGoods.getGoodsId())) != null) {
// // 设置加价购商品原价
// sendGoods.setOriginalPrice(productBean.getFinalPrice());
// } else {
// throw new ServiceException(ResponseResult.SHOPPING_CART_SENDGOODS_NOT_EXIST);
// }
// }
//
// }
/** /**
* 获取购物车商品,添加商品,校验商品合法性,合并商品行,重新set购物车信息到缓存中 * 获取购物车商品,添加商品,校验商品合法性,合并商品行,重新set购物车信息到缓存中
...@@ -736,6 +717,9 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -736,6 +717,9 @@ public class ShoppingCartMCoffeeServiceImpl {
return qty; return qty;
} }
/**
* 商品券单独设置一行
*/
private List<CartGoods> checkNewCartGoods(List<CartGoods> newCartGoods, CartGoods addCartGoods) { private List<CartGoods> checkNewCartGoods(List<CartGoods> newCartGoods, CartGoods addCartGoods) {
Integer qty = addCartGoods.getQty() == null ? 0 : addCartGoods.getQty(); Integer qty = addCartGoods.getQty() == null ? 0 : addCartGoods.getQty();
...@@ -826,7 +810,6 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -826,7 +810,6 @@ public class ShoppingCartMCoffeeServiceImpl {
cartGoods.setOriginalPrice(productBeanListSpuClass.get(0).getOriginalPrice()); cartGoods.setOriginalPrice(productBeanListSpuClass.get(0).getOriginalPrice());
cartGoods.setFinalPrice(productBeanListSpuClass.get(0).getFinalPrice()); cartGoods.setFinalPrice(productBeanListSpuClass.get(0).getFinalPrice());
cartGoods.setPackPrice(productBeanListSpuClass.get(0).getPackPrice()); cartGoods.setPackPrice(productBeanListSpuClass.get(0).getPackPrice());
cartGoods.setPackPrice(productBeanListSpuClass.get(0).getPackPrice());
cartGoods.setCustomerCode(productBeanListSpuClass.get(0).getCustomerCode()); cartGoods.setCustomerCode(productBeanListSpuClass.get(0).getCustomerCode());
cartGoods.setName(productBeanListSpuClass.get(0).getName()); cartGoods.setName(productBeanListSpuClass.get(0).getName());
cartGoods.setSpuName(productBeanListSpuClass.get(0).getName()); cartGoods.setSpuName(productBeanListSpuClass.get(0).getName());
......
...@@ -293,7 +293,7 @@ public class CalculationServiceImpl { ...@@ -293,7 +293,7 @@ public class CalculationServiceImpl {
*/ */
private Long calculateDeliveryAmount(String receiveId, String partnerId, String storeId, String menuType) { private Long calculateDeliveryAmount(String receiveId, String partnerId, String storeId, String menuType) {
Long deliveryAmount = 0l; Long deliveryAmount = 0l;
if (StringUtils.isBlank(receiveId) && !BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType)) { if (StringUtils.isBlank(receiveId) || !BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType)) {
return deliveryAmount; return deliveryAmount;
} }
String trackingNo = LogThreadLocal.getTrackingNo(); String trackingNo = LogThreadLocal.getTrackingNo();
......
...@@ -36,9 +36,11 @@ public class SwitchShoppingCartRequestVo { ...@@ -36,9 +36,11 @@ public class SwitchShoppingCartRequestVo {
/** /**
* 门店Id * 门店Id
*/ */
@NotEmpty(message = "shopId不能为空") @NotEmpty(message = "fromShopId不能为空")
private String shopId; private String fromShopId;
@NotEmpty(message = "toShopId不能为空")
private String toShopId;
/** /**
* 下单类型 CreateOrderType 外卖、到店、商城 * 下单类型 CreateOrderType 外卖、到店、商城
*/ */
...@@ -71,6 +73,11 @@ public class SwitchShoppingCartRequestVo { ...@@ -71,6 +73,11 @@ public class SwitchShoppingCartRequestVo {
/** /**
* 业务类型 * 业务类型
*/ */
private String menuType ; private String menuType;
/**
* 操作类型 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