1. 程式人生 > >實現購物車的實現原理

實現購物車的實現原理

1.在使用者沒有登陸的情況下,在商品詳情介面,點選“加入購物車”把商品id傳遞給Controller,Controller接收id,Controller呼叫Service根據商品id查詢商品基本資訊。把商品寫入cookie中,加入cookie之前先從cookie中把購物車的商品取出來判斷當前購物車商品列表中是否有此商品,如果有數量加一,如果沒有新增一個商品,數量為1。展示給使用者購物車列表。

此時,點選提交訂單按鈕,伺服器進行攔截,讓我們進行強制登陸,登陸成功後,用我們的使用者名稱作為redis中的key,取對應的value,此時的value是我們要在購物車中展示的商品集合。同時從cookie中取我們剛才新增進去的商品。遍歷這個集合,把集合中的元素id和cookie的商品id進行比較,若相同,數量+1,若沒有相同的,則作為新商品融合進從redis中取出來的value中,融合完畢後,再把這一對key-value重新存入redis中,因為前後兩次的key相同,所以會對原來的value進行覆蓋,同時,將cookie中的資料清除。然後再展示到購物車列表。

2.如果先進行登陸,在登陸的同時,根據使用者名稱取redis中的value,同時取cookie中的資料,如果有的話,進行上述的操作:比較id,相同的加數量,沒有相同的,則作為新商品融合進從redis中取出來的value中,融合完畢後,再把這一對key-value重新存入redis中,因為前後兩次的key相同,所以會對原來的value進行覆蓋,同時,將cookie中的資料清除。此時,

在商品詳情介面,點選“加入購物車”把商品id傳遞給Controller,Controller接收id,Controller呼叫Service根據商品id查詢商品基本資訊。把商品寫入redis中,加入redis之前先從redis中使用者名稱這個key把購物車的商品取出來判斷當前購物車商品列表中是否有此商品,如果有數量加一,如果沒有新增一個商品,數量為1。展示給使用者購物車列表。