private void cartCookieList(List<CartList> cartCookieList, SellerItem sellerItem) {
// 决定了第二和第三个条件是否能执行
boolean flag1=true;
boolean flag2=true;
// 标签 跳出多重循环
loop:for (CartList list : cartCookieList) {
// 先判断是否是同一个商家和同一个商品
for (Tb_item tb_item : list.getItemList()) {
// 商家ID和商品ID一致 追加购买数量追加总价格
if (list.getSeller().getId().intValue()==sellerItem.getSeller().getId().intValue()
&& tb_item.getId().intValue()==sellerItem.getItem().getId().intValue()) {
tb_item.setNum(tb_item.getNum() + sellerItem.getItem().getNum()); // 追加数量
// 商品单价*总数量
tb_item.setPrice(new BigDecimal(sellerItem.getItem().getPrice().intValue() * tb_item.getNum()));
// 此条件成立就不给其他条件机会
flag1=false;
flag2=false;
break loop;
}
}
}
if (flag1) {
for (CartList cartLists : cartCookieList) {
// 商家ID相符则追加商品
if (cartLists.getSeller().getId().intValue() == sellerItem.getSeller().getId().intValue()) {
cartLists.getItemList().add(sellerItem.getItem());
flag2=false;
break;
}
}
}
if (flag2) {
for (CartList cartList : cartCookieList) {
// 商家Id不符合则创建商家并添加商品
if(cartList.getSeller().getId().intValue() != sellerItem.getSeller().getId().intValue()){
CartList newCartList = newCartList(sellerItem);
cartCookieList.add(newCartList);
break;
}
}
}
}
/**
* 传过来的sellerItem转成CartList对象
* @param sellerItem
* @return
*/
private CartList newCartList(SellerItem sellerItem){
CartList cartList = new CartList();
cartList.setSeller(sellerItem.getSeller());
List<Tb_item> items = new ArrayList<>();
items.add(sellerItem.getItem());
cartList.setItemList(items);
return cartList;
}
购物车 未登录状态下合并Cookie
于 2022-03-24 15:28:17 首次发布