Commit 46c409f9 by shuhu.hou@freemud.cn

Merge branch 'feature/1.9.9_购物车校验' into develop

parents 2eab9376 5ee2d2ae
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>productcenter-sdk</artifactId> <artifactId>productcenter-sdk</artifactId>
<version>2.4.1-SNAPSHOT</version> <version>2.7.2-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -14,11 +14,17 @@ ...@@ -14,11 +14,17 @@
package com.freemud.sdk.api.assortment.shoppingcart.constant; package com.freemud.sdk.api.assortment.shoppingcart.constant;
public class ShoppingCartConstant { public class ShoppingCartConstant {
public final static String SHOPPING_CART_INVALIAD_GOODS="因商家变更了商品,导致选购失败,请刷新门店后重新尝试选购商品";
public final static String SHOPPING_CART_EMPTY_GOODS_LIST="因商品变更或其他原因,导致加购失效,无法结算,请重新尝试选购商品";
public final static String SHOPPING_CART_INVALID_GOODS_EXIST = "有商品不在售卖状态,请重新提交结算"; public final static String SHOPPING_CART_INVALID_GOODS_EXIST = "有商品不在售卖状态,请重新提交结算";
public final static String SHOPPING_CART_ACTIVITY_CHANGE = "商品价格有变动,将按照最新价格计算哦"; public final static String SHOPPING_CART_ACTIVITY_CHANGE = "商品价格有变动,将按照最新价格计算哦";
public final static String SHOPPING_CART_GOODS_CHANGE="因商家变更了商品,导致选购失效,请刷新门店后重新尝试选购商品";
public final static String SHOPPING_CART_GOODS_INVALID="因商品变更或其他原因,导致架构失效,无法结算,请重新尝试选购商品";
public final static String HAS_OTHER_ACTIVITY_WHEN_ADD_GOODS_COUPON = "该商品券与其他活动不同享,购物车中已优惠的商品将恢复原价"; public final static String HAS_OTHER_ACTIVITY_WHEN_ADD_GOODS_COUPON = "该商品券与其他活动不同享,购物车中已优惠的商品将恢复原价";
public final static String HAS_GOODS_COUPON_WHEN_ADD_SPECIAL_GOODS = "已选商品券,与其他优惠商品不同享,商品将恢复原价"; public final static String HAS_GOODS_COUPON_WHEN_ADD_SPECIAL_GOODS = "已选商品券,与其他优惠商品不同享,商品将恢复原价";
......
...@@ -66,7 +66,7 @@ public class ShoppingCartGoodsResponseVo { ...@@ -66,7 +66,7 @@ public class ShoppingCartGoodsResponseVo {
/** /**
* 购物车中商品价格或有效性是否发生变化 * 购物车中商品价格或有效性是否发生变化
*/ */
private Boolean changed; private Boolean changed=false;
/** /**
* 可用优惠券列表 * 可用优惠券列表
......
...@@ -18,7 +18,13 @@ import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO; ...@@ -18,7 +18,13 @@ import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.application.sdk.api.productcenter.domain.ProductInfosDTO; import com.freemud.application.sdk.api.productcenter.domain.ProductInfosDTO;
import com.freemud.application.sdk.api.productcenter.request.menu.GetMenuCategoryByIdsRequest; import com.freemud.application.sdk.api.productcenter.request.menu.GetMenuCategoryByIdsRequest;
import com.freemud.application.sdk.api.productcenter.request.product.GetProductRequest; import com.freemud.application.sdk.api.productcenter.request.product.GetProductRequest;
import com.freemud.application.sdk.api.productcenter.request.product.valid.ProductAttributeValueType;
import com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductRequest;
import com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductType;
import com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateSkuProductType;
import com.freemud.application.sdk.api.productcenter.response.menu.GetMenuCategoryByIdsResponse; import com.freemud.application.sdk.api.productcenter.response.menu.GetMenuCategoryByIdsResponse;
import com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResponse;
import com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResult;
import com.freemud.application.sdk.api.productcenter.service.MenuService; import com.freemud.application.sdk.api.productcenter.service.MenuService;
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.adapter.ShoppingCartAdapter; import com.freemud.sdk.api.assortment.shoppingcart.adapter.ShoppingCartAdapter;
...@@ -165,6 +171,64 @@ public interface ShoppingCartBaseService { ...@@ -165,6 +171,64 @@ public interface ShoppingCartBaseService {
} }
} }
default BaseResponse<CheckCartRequest> checkAllCartGoodsNew(CheckCartRequest checkCartRequest) {
ShoppingCartAdapter shoppingCartAdapter = SDKCommonBaseContextWare.getBean(ShoppingCartAdapter.class);
ProductService productService = SDKCommonBaseContextWare.getBean(ProductService.class);
try {
ValidateShopProductRequest validateShopProductRequest = shoppingCartAdapter.getValidateShopProductRequest(checkCartRequest);
com.freemud.application.sdk.api.base.BaseResponse<ValiadShopProductResponse> valiadResponse = productService.validateShopProduct(validateShopProductRequest);
if (valiadResponse == null || !CartResponseConstant.SUCCESS.getCode().equals(valiadResponse.getCode()) || valiadResponse.getData()==null) {
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
return CartResponseUtil.error(valiadResponse.getMessage(),checkCartRequest);
}
ValiadShopProductResponse valiadResult = valiadResponse.getData();
//非法商品(商品是否存在、商品是否处于上架状态)自动移除,返回前端提示
if (CollectionUtils.isNotEmpty(valiadResult.getFailureList())){
setToastMsgIfNotExist(checkCartRequest.getShoppingCartGoodsResponseVo(), ShoppingCartConstant.SHOPPING_CART_GOODS_CHANGE);
for (CartGoods cartGoods :checkCartRequest.getCartGoodsList()) {
if (valiadResult.getFailureList().stream().anyMatch(f->cartGoods.getGoodsId().equals(f.getSkuId()))){
cartGoods.setCartGoodsUid(null);
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
}
}
checkCartRequest.getCartGoodsList().removeIf(k -> StringUtils.isEmpty(k.getCartGoodsUid()));
}
List<ProductBeanDTO> productList = valiadResult.getSuccessList().stream().map(ValiadShopProductResult::getProductType).collect(Collectors.toList());
CartGoodsStates cartGoodsStates = new CartGoodsStates();
//更新购物车详细信息
if (CollectionUtils.isEmpty(checkCartRequest.getCartGoodsList()) || CollectionUtils.isEmpty(productList)){
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
return CartResponseUtil.error(valiadResponse.getMessage(),checkCartRequest);
}
for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
// 当goodsId为空或商品是商品券时直接跳过
if (StringUtils.isEmpty(cartGoods.getGoodsId()) || Objects.equals(cartGoods.getGoodsType(), GoodsTypeEnum.COUPON_GOODS.getGoodsType())) {
continue;
}
shoppingCartAdapter.updateCartGoodsInfoNew(cartGoods, productList);
}
//校验商品券是否有当前点餐方式
cartGoodsStates = updateSpqCartGoodsInfo(checkCartRequest.getCartGoodsList(), checkCartRequest.getOrderWay(), checkCartRequest.getPartnerId(), checkCartRequest.getTrackingNo(), cartGoodsStates);
// 点餐方式改变商品券发生变动
if (cartGoodsStates != null && cartGoodsStates.isOrderWayFlag()) {
setToastMsgIfNotExist(checkCartRequest.getShoppingCartGoodsResponseVo(), ShoppingCartConstant.ORDER_WAY_CHANGE);
}
return CartResponseUtil.success(checkCartRequest);
} catch (Exception e) {
ErrorLog.printErrorLog("assortment-shoppingcart-sdk", checkCartRequest.getTrackingNo(), e.getMessage(), "checkAllCartGoods", checkCartRequest, e, Level.ERROR);
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
return CartResponseUtil.error(e.getMessage(),checkCartRequest);
}
}
/** /**
* 更新购物车详细信息 * 更新购物车详细信息
* 并check购物车中商品是否价格变更、是否非法(例如商品下架) * 并check购物车中商品是否价格变更、是否非法(例如商品下架)
...@@ -285,8 +349,7 @@ public interface ShoppingCartBaseService { ...@@ -285,8 +349,7 @@ public interface ShoppingCartBaseService {
} }
ProductBeanDTO productBean; ProductBeanDTO productBean;
// 判断商品是否合法(商品是否存在、商品是否处于上架状态) // 判断商品是否合法(商品是否存在、商品是否处于上架状态)
if (((productBean = productBeanMap.get(cartGoods.getGoodsId())) != null) && (productBean.isValid()) if (((productBean = productBeanMap.get(cartGoods.getGoodsId())) != null) && (StoreItemStatus.PUT_ON_SALE.getCode().equals(productBean.getStatus()))) {
&& (StoreItemStatus.PUT_ON_SALE.getCode().equals(productBean.getStatus()))) {
ShoppingCartAdapter shoppingCartAdapter = SDKCommonBaseContextWare.getBean(ShoppingCartAdapter.class); ShoppingCartAdapter shoppingCartAdapter = SDKCommonBaseContextWare.getBean(ShoppingCartAdapter.class);
shoppingCartAdapter.updateCartGoodsInfo(cartGoods, productBeans, cartGoodsStates, invalidGoodsIdList); shoppingCartAdapter.updateCartGoodsInfo(cartGoods, productBeans, cartGoodsStates, invalidGoodsIdList);
} else { } else {
......
...@@ -116,7 +116,7 @@ public class ShoppingCartBaseServiceImpl implements ShoppingCartBaseService { ...@@ -116,7 +116,7 @@ public class ShoppingCartBaseServiceImpl implements ShoppingCartBaseService {
.filter(k -> StringUtils.isNotEmpty(k.getCartGoodsUid())) .filter(k -> StringUtils.isNotEmpty(k.getCartGoodsUid()))
.collect(Collectors.toMap(CartGoods::getCartGoodsUid, Function.identity(), (k1, k2) -> k1)); .collect(Collectors.toMap(CartGoods::getCartGoodsUid, Function.identity(), (k1, k2) -> k1));
operations.putAll(cartGoodsMap); operations.putAll(cartGoodsMap);
return this.getCartGoodsList(cartParamDto, trackingNo); return CartResponseUtil.success();
} catch (Exception e) { } catch (Exception e) {
ErrorLog.printErrorLog("assortment-shoppingcart-sdk", trackingNo, e.getMessage(), "setCartGoodsList", cartParamDto, e, Level.ERROR); ErrorLog.printErrorLog("assortment-shoppingcart-sdk", trackingNo, e.getMessage(), "setCartGoodsList", cartParamDto, e, Level.ERROR);
return null; return null;
......
...@@ -29,4 +29,7 @@ public class CartResponseUtil { ...@@ -29,4 +29,7 @@ public class CartResponseUtil {
public static <T> BaseResponse<T> error(String message) { public static <T> BaseResponse<T> error(String message) {
return new BaseResponse<>(Version.VERSION_1, CartResponseConstant.FAIL.getCode(), message); return new BaseResponse<>(Version.VERSION_1, CartResponseConstant.FAIL.getCode(), message);
} }
public static <T> BaseResponse<T> error(String message,T t) {
return new BaseResponse<>(CartResponseConstant.FAIL.getCode(), message, Version.VERSION_1, t);
}
} }
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>productcenter-sdk</artifactId> <artifactId>productcenter-sdk</artifactId>
<version>2.6.RELEASE</version> <version>2.7.2-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -15,6 +15,9 @@ package cn.freemud.constant; ...@@ -15,6 +15,9 @@ package cn.freemud.constant;
public class ShoppingCartConstant { public class ShoppingCartConstant {
public final static String SHOPPING_CART_INVALIAD_GOODS="因商家变更了商品,导致选购失败,请刷新门店后重新尝试选购商品";
public final static String SHOPPING_CART_EMPTY_GOODS_LIST="因商品变更或其他原因,导致加购失效,无法结算,请重新尝试选购商品";
public final static String SHOPPING_CART_INVALID_GOODS_EXIST = "有商品不在售卖状态,请重新提交结算"; public final static String SHOPPING_CART_INVALID_GOODS_EXIST = "有商品不在售卖状态,请重新提交结算";
public final static String SHOPPING_CART_ACTIVITY_CHANGE = "商品价格有变动,将按照最新活动价格计算哦"; public final static String SHOPPING_CART_ACTIVITY_CHANGE = "商品价格有变动,将按照最新活动价格计算哦";
......
...@@ -39,7 +39,9 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo { ...@@ -39,7 +39,9 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
@NotEmpty(message = "appId不能为空") @NotEmpty(message = "appId不能为空")
private String appId; private String appId;
/** /**
* 是否查询用户优惠券 1-查询用户优惠券 flag=1 用户去结算 * 是否为结算页
* 1:结算页 0:点餐页
* 结算页会查询用户优惠券,点餐页不会查询用户优惠券
*/ */
private Integer flag; private Integer flag;
/** /**
......
...@@ -37,7 +37,6 @@ public interface CommonService { ...@@ -37,7 +37,6 @@ public interface CommonService {
request.setStoreCode(storeCode); request.setStoreCode(storeCode);
StoreCenterService storeCenterService = SpringBeanUtil.getBean(StoreCenterService.class); StoreCenterService storeCenterService = SpringBeanUtil.getBean(StoreCenterService.class);
BaseResponse<List<String>> orgList = storeCenterService.getOrgList(request, LogThreadLocal.getTrackingNo()); BaseResponse<List<String>> orgList = storeCenterService.getOrgList(request, LogThreadLocal.getTrackingNo());
ApiLog.info("CommonService_getOrgIds",request,orgList);
if (orgList != null && ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(orgList.getCode())) { if (orgList != null && ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(orgList.getCode())) {
return orgList.getData(); return orgList.getData();
} }
......
...@@ -19,9 +19,11 @@ import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest; ...@@ -19,9 +19,11 @@ 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;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.naming.Name; import javax.naming.Name;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -100,7 +102,7 @@ public class AssortmentSdkService { ...@@ -100,7 +102,7 @@ public class AssortmentSdkService {
// 根据不同点餐类型获取不同购物车实例 // 根据不同点餐类型获取不同购物车实例
BaseResponse<List<com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods>> baseResponse = shoppingCartService.getCartGoodsList(cartParamDto, LogThreadLocal.getTrackingNo()); BaseResponse<List<com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods>> baseResponse = shoppingCartService.getCartGoodsList(cartParamDto, LogThreadLocal.getTrackingNo());
if (baseResponse == null || !ResponseResult.SUCCESS.getCode().equals(baseResponse.getCode()) || CollectionUtils.isEmpty(baseResponse.getResult())) { if (baseResponse == null || !ResponseResult.SUCCESS.getCode().equals(baseResponse.getCode()) || CollectionUtils.isEmpty(baseResponse.getResult())) {
return null; return new ArrayList<>();
} }
return JSONArray.parseArray(JSONObject.toJSONString(baseResponse.getResult()), CartGoods.class); return JSONArray.parseArray(JSONObject.toJSONString(baseResponse.getResult()), CartGoods.class);
...@@ -120,13 +122,16 @@ public class AssortmentSdkService { ...@@ -120,13 +122,16 @@ public class AssortmentSdkService {
cartParamDto.setTableNumber(tableNumber); cartParamDto.setTableNumber(tableNumber);
cartParamDto.setCartGoodsList(JSONArray.parseArray(JSONObject.toJSONString(cartGoodsList), com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.class)); cartParamDto.setCartGoodsList(JSONArray.parseArray(JSONObject.toJSONString(cartGoodsList), com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.class));
BaseResponse<List<com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods>> baseResponse = shoppingCartService.setCartGoodsList(cartParamDto, LogThreadLocal.getTrackingNo()); BaseResponse<List<com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods>> baseResponse = shoppingCartService.setCartGoodsList(cartParamDto, LogThreadLocal.getTrackingNo());
if (baseResponse == null || !ResponseResult.SUCCESS.getCode().equals(baseResponse.getCode()) || CollectionUtils.isEmpty(baseResponse.getResult())) { if (baseResponse == null || !ResponseResult.SUCCESS.getCode().equals(baseResponse.getCode())) {
return null; return null;
} }
return JSONArray.parseArray(JSONObject.toJSONString(baseResponse.getResult()), CartGoods.class); return JSONArray.parseArray(JSONObject.toJSONString(baseResponse.getResult()), CartGoods.class);
} }
@Value("${shopping.cart.check.action}")
private String shoppingCartCheckAction;
/** /**
* 调用SDK校验购物车 * 调用SDK校验购物车
* *
...@@ -146,10 +151,13 @@ public class AssortmentSdkService { ...@@ -146,10 +151,13 @@ public class AssortmentSdkService {
checkCartRequest.setStoreId(storeId); checkCartRequest.setStoreId(storeId);
checkCartRequest.setTableNumber(tableNumber); checkCartRequest.setTableNumber(tableNumber);
checkCartRequest.setTrackingNo(LogThreadLocal.getTrackingNo()); checkCartRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
long checkStartTime = System.currentTimeMillis(); BaseResponse<CheckCartRequest> baseResponse ;
BaseResponse<CheckCartRequest> baseResponse = shoppingCartService.checkAllCartGoods(checkCartRequest); if ("checkAllCartGoodsNew".equals(shoppingCartCheckAction)){
//LogUtil.info("shoppingCartBaseService checkAllCartGoods ", checkStartTime, JSON.toJSONString(checkCartRequest), JSON.toJSONString(baseResponse)); baseResponse= shoppingCartService.checkAllCartGoodsNew(checkCartRequest);
if (baseResponse == null || !ResponseResult.SUCCESS.getCode().equals(baseResponse.getCode())) { }else {
baseResponse=shoppingCartService.checkAllCartGoods(checkCartRequest);
}
if (baseResponse == null) {
return null; return null;
} }
return baseResponse.getResult(); return baseResponse.getResult();
......
...@@ -40,7 +40,7 @@ public class CustomerScoreService implements IPromotionService { ...@@ -40,7 +40,7 @@ public class CustomerScoreService implements IPromotionService {
@Override @Override
public void updateShoppingCartGoodsDiscount(CouponPromotionVO couponPromotionVO, ActivityQueryDto activityQueryDto, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, UserLoginInfoDto userLoginInfoDto, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) { public void updateShoppingCartGoodsDiscount(CouponPromotionVO couponPromotionVO, ActivityQueryDto activityQueryDto, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, UserLoginInfoDto userLoginInfoDto, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
if (shoppingCartInfoRequestVo == null || shoppingCartInfoRequestVo.getUseCustomerScore() == null || shoppingCartInfoRequestVo.getUseCustomerScore() == null || shoppingCartInfoRequestVo.getUseCustomerScore().equals(CustomerScoreConstant.NO_DISPLAY.getValue())) { if (shoppingCartInfoRequestVo == null || ObjectUtils.notEqual(1, shoppingCartInfoRequestVo.getFlag()) || shoppingCartInfoRequestVo.getUseCustomerScore() == null || shoppingCartInfoRequestVo.getUseCustomerScore() == null || shoppingCartInfoRequestVo.getUseCustomerScore().equals(CustomerScoreConstant.NO_DISPLAY.getValue())) {
return; return;
} }
GetUserScoreUseDetailRequest request = new GetUserScoreUseDetailRequest(); GetUserScoreUseDetailRequest request = new GetUserScoreUseDetailRequest();
......
...@@ -71,6 +71,8 @@ import java.util.*; ...@@ -71,6 +71,8 @@ import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.freemud.constant.ShoppingCartConstant.SHOPPING_CART_EMPTY_GOODS_LIST;
import static cn.freemud.constant.ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS;
import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toList;
@Slf4j @Slf4j
...@@ -409,26 +411,20 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -409,26 +411,20 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
String appId = shoppingCartInfoRequestVo.getAppId(); String appId = shoppingCartInfoRequestVo.getAppId();
String couponCode = shoppingCartInfoRequestVo.getCouponCode(); String couponCode = shoppingCartInfoRequestVo.getCouponCode();
String activityCode = shoppingCartInfoRequestVo.getActivityCode(); String activityCode = shoppingCartInfoRequestVo.getActivityCode();
// Integer flag = shoppingCartInfoRequestVo.getFlag();
// List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList = shoppingCartInfoRequestVo.getSendGoods();
// 获取购物车商品 // 获取购物车商品
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, "", shoppingCartBaseService); List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, "", shoppingCartBaseService);
if (cartGoodsList == null) { // 如果购物车商品不为空, 则check购物车中所有商品
cartGoodsList = new ArrayList<>(); if (CollectionUtils.isNotEmpty(cartGoodsList)){
} CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo.getOrderType(), "", shoppingCartBaseService);
// check购物车中所有商品 if (checkCartRequest.getShoppingCartGoodsResponseVo() != null) {
CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo.getOrderType(), "", shoppingCartBaseService); shoppingCartGoodsResponseVo.setChanged(checkCartRequest.getShoppingCartGoodsResponseVo().getChanged());
if (checkCartRequest.getShoppingCartGoodsResponseVo() != null) { shoppingCartGoodsResponseVo.setToastMsg(checkCartRequest.getShoppingCartGoodsResponseVo().getToastMsg());
shoppingCartGoodsResponseVo.setToastMsg(checkCartRequest.getShoppingCartGoodsResponseVo().getToastMsg()); }
cartGoodsList = JSONArray.parseArray(JSONObject.toJSONString(checkCartRequest.getCartGoodsList()), CartGoods.class);
// 重新存储最新购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, assortmentCustomerInfoVo.getSessionId(), "", this.shoppingCartBaseService);
} }
cartGoodsList = JSONArray.parseArray(JSONObject.toJSONString(checkCartRequest.getCartGoodsList()), CartGoods.class);
//1.5.4 多规格的sku商品计算包装费
//checkSkuOnVersion(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo);
// 重新存储最新购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, assortmentCustomerInfoVo.getSessionId(), "", this.shoppingCartBaseService);
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>(); List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>();
// 当couponCode不为空时,需参与价格计算 // 当couponCode不为空时,需参与价格计算
if (StringUtils.isNotEmpty(couponCode)) { if (StringUtils.isNotEmpty(couponCode)) {
...@@ -437,14 +433,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -437,14 +433,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
coupon.setActivityCode(activityCode); coupon.setActivityCode(activityCode);
coupons.add(coupon); coupons.add(coupon);
} }
/*if (CollectionUtils.isNotEmpty(sendGoodsList)) {
processSendGoods(sendGoodsList, partnerId, storeId);
}*/
// 获取优惠信息 // 获取优惠信息
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);
if (calculationDiscountResult == null) { if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
// return shoppingCartGoodsResponseVo;
} }
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType());
...@@ -1020,6 +1012,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1020,6 +1012,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
addShoppingCartGoodsRequestVo.getShopId(), shoppingCartGoodsResponseVo, addShoppingCartGoodsRequestVo.getOrderType(), "", shoppingCartBaseService); addShoppingCartGoodsRequestVo.getShopId(), shoppingCartGoodsResponseVo, addShoppingCartGoodsRequestVo.getOrderType(), "", shoppingCartBaseService);
if (checkCartRequest.getShoppingCartGoodsResponseVo() != null) { if (checkCartRequest.getShoppingCartGoodsResponseVo() != null) {
shoppingCartGoodsResponseVo.setToastMsg(checkCartRequest.getShoppingCartGoodsResponseVo().getToastMsg()); shoppingCartGoodsResponseVo.setToastMsg(checkCartRequest.getShoppingCartGoodsResponseVo().getToastMsg());
shoppingCartGoodsResponseVo.setChanged(checkCartRequest.getShoppingCartGoodsResponseVo().getChanged());
} }
List<CartGoods> allCartGoodsList = JSONArray.parseArray(JSONObject.toJSONString(checkCartRequest.getCartGoodsList()), CartGoods.class); List<CartGoods> allCartGoodsList = JSONArray.parseArray(JSONObject.toJSONString(checkCartRequest.getCartGoodsList()), CartGoods.class);
...@@ -1166,10 +1159,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1166,10 +1159,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
*/ */
private void setAddAndUpdateResponse(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult private void setAddAndUpdateResponse(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult
, List<CartGoods> cartGoodsList, String toastMsg, String partnerId, String storeId, String userId, String opt, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) { , List<CartGoods> cartGoodsList, String toastMsg, String partnerId, String storeId, String userId, String opt, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
//updateCartGoodsResponse(shoppingCartGoodsResponseVo, calculationDiscountResult);
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
shoppingCartGoodsResponseVo.setProductsCount(cartGoodsList.size()); shoppingCartGoodsResponseVo.setProductsCount(cartGoodsList.size());
if (StringUtils.isNotEmpty(toastMsg)) { if (StringUtils.isNotEmpty(toastMsg)) {
toastMsg=shoppingCartInfoRequestVo!=null && ObjectUtils.equals(1, shoppingCartInfoRequestVo.getFlag())?SHOPPING_CART_EMPTY_GOODS_LIST:SHOPPING_CART_INVALIAD_GOODS;
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, toastMsg); setToastMsgIfNotExist(shoppingCartGoodsResponseVo, toastMsg);
} }
// 给前端展示 // 给前端展示
...@@ -1197,7 +1190,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1197,7 +1190,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
shoppingCartGoodsResponseVo.setOriginalTotalAmount(originalTotalAmount); shoppingCartGoodsResponseVo.setOriginalTotalAmount(originalTotalAmount);
shoppingCartGoodsResponseVo.setTotalAmount(totalAmount); shoppingCartGoodsResponseVo.setTotalAmount(totalAmount);
} }
shoppingCartGoodsResponseVo.setChanged(false);
} }
/** /**
......
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