map在实际项目的中妙用

1.需求描述:在批量编辑购物车的时候,考虑到因为阶梯价不同,导致商品编辑的库存超过总库存!比如这样的数据:[{"cartId":"1","goodsId":1,"skuId":"1","deliveyId":"1","number":1},{"cartId":"2","goodsId":1,"skuId":"1","deliveyId":"2","number":1},{"cartId":"3","goodsId":2,"skuId":"2","deliveyId":"1","number":1},{"cartId":"3","goodsId":2,"skuId":"2","deliveyId":"2","number":1}],

这个时候假设这个sku的库存是3那我这个时候编辑数据,把随机的一条购物车记录调整为4,那这个时候我是可以编辑的!这与事实不符合。

如何去做调整呢?本质:对比传入的数量与商品sku的总数量!---》如何分别获取每个商品sku商品数量总和?---》使用map作数据整合,以商品的skuId为key,value为数量的总和!部分代码如下:

Map<Integer,Integer> numberMap=new HashMap<>();

 for (CartsEntity carts : list) {
                if(numberMap.get(carts.getSkuId())==null||numberMap.get(carts.getSkuId())==0){
                    numberMap.put(carts.getSkuId(),carts.getNumber());
                }else{
                    numberMap.put(carts.getSkuId(), numberMap.get(carts.getSkuId())+carts.getNumber());
                }
                if(numberMap.get(carts.getSkuId())>goodsSku.getStock()){
                    return ResponseEntity.ok(JsonResultUtils.error(MessageEnum.PRODUCT_STOCK_NULL.getCode(), MessageEnum.PRODUCT_STOCK_NULL.getMessage()));
                }

 }
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值