变更购物车会导致优惠券金额错误问题处理

This commit is contained in:
Chopper 2022-06-27 17:57:48 +08:00
parent f4c8e5d493
commit 170aa01946

View File

@ -199,9 +199,9 @@ public class CartServiceImpl implements CartService {
this.checkGoodsSaleModel(dataSku, tradeDTO.getSkuList()); this.checkGoodsSaleModel(dataSku, tradeDTO.getSkuList());
tradeDTO.setCartTypeEnum(cartTypeEnum); tradeDTO.setCartTypeEnum(cartTypeEnum);
//如购物车发生更改则重置优惠券
tradeDTO.setStoreCoupons(null); remoteCoupon(tradeDTO);
tradeDTO.setPlatformCoupon(null);
this.resetTradeDTO(tradeDTO); this.resetTradeDTO(tradeDTO);
} catch (ServiceException serviceException) { } catch (ServiceException serviceException) {
throw serviceException; throw serviceException;
@ -245,6 +245,9 @@ public class CartServiceImpl implements CartService {
@Override @Override
public void checked(String skuId, boolean checked) { public void checked(String skuId, boolean checked) {
TradeDTO tradeDTO = this.readDTO(CartTypeEnum.CART); TradeDTO tradeDTO = this.readDTO(CartTypeEnum.CART);
remoteCoupon(tradeDTO);
List<CartSkuVO> cartSkuVOS = tradeDTO.getSkuList(); List<CartSkuVO> cartSkuVOS = tradeDTO.getSkuList();
for (CartSkuVO cartSkuVO : cartSkuVOS) { for (CartSkuVO cartSkuVO : cartSkuVOS) {
if (cartSkuVO.getGoodsSku().getId().equals(skuId)) { if (cartSkuVO.getGoodsSku().getId().equals(skuId)) {
@ -257,6 +260,9 @@ public class CartServiceImpl implements CartService {
@Override @Override
public void checkedStore(String storeId, boolean checked) { public void checkedStore(String storeId, boolean checked) {
TradeDTO tradeDTO = this.readDTO(CartTypeEnum.CART); TradeDTO tradeDTO = this.readDTO(CartTypeEnum.CART);
remoteCoupon(tradeDTO);
List<CartSkuVO> cartSkuVOS = tradeDTO.getSkuList(); List<CartSkuVO> cartSkuVOS = tradeDTO.getSkuList();
for (CartSkuVO cartSkuVO : cartSkuVOS) { for (CartSkuVO cartSkuVO : cartSkuVOS) {
if (cartSkuVO.getStoreId().equals(storeId)) { if (cartSkuVO.getStoreId().equals(storeId)) {
@ -269,6 +275,9 @@ public class CartServiceImpl implements CartService {
@Override @Override
public void checkedAll(boolean checked) { public void checkedAll(boolean checked) {
TradeDTO tradeDTO = this.readDTO(CartTypeEnum.CART); TradeDTO tradeDTO = this.readDTO(CartTypeEnum.CART);
remoteCoupon(tradeDTO);
List<CartSkuVO> cartSkuVOS = tradeDTO.getSkuList(); List<CartSkuVO> cartSkuVOS = tradeDTO.getSkuList();
for (CartSkuVO cartSkuVO : cartSkuVOS) { for (CartSkuVO cartSkuVO : cartSkuVOS) {
cartSkuVO.setChecked(checked); cartSkuVO.setChecked(checked);
@ -276,6 +285,15 @@ public class CartServiceImpl implements CartService {
cache.put(this.getOriginKey(CartTypeEnum.CART), tradeDTO); cache.put(this.getOriginKey(CartTypeEnum.CART), tradeDTO);
} }
/**
* 当购物车商品发生变更时取消已选择当优惠券
* @param tradeDTO
*/
private void remoteCoupon(TradeDTO tradeDTO){
tradeDTO.setPlatformCoupon(null);
tradeDTO.setStoreCoupons(new HashMap<>());
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void delete(String[] skuIds) { public void delete(String[] skuIds) {