購物車的一些思路

2021-09-08 23:50:24 字數 1934 閱讀 4603

問題一:你們的購物車是怎麼做的(使用者未登入的時候購物車資料存放到**了,登入時又存放到**了)redis裡

session不能用,session是有生命週期的,瀏覽器一關就沒有了cookie容量太小了(4kb),沒辦法存放太多的資料,解決方案,新增多了提示購物車已滿mysql和redis效能比較差

往redis裡放是key-value形式key可以是sessionid或者uuid,存放到瀏覽器的cookie裡了需要下次開啟瀏覽器,key是一致的。下次還需要拿這個key訪問的拿著cookie裡的user-key當子redis裡面的key,把字串存放到cookie下次在開啟是從cookie裡獲得user-key,之後把user-key的值獲取後當成redis裡的key

key:sessionid或者uuid value:商品資料 :list cartlist;

未登入時:把購物車資料都放到redis中,把sessionid或者uuid作為redis的key,為了能在下次訪問時使用同樣的key系需要把key放在redis中登入時:把購物車資料放在redis中,把userid做為key

購物車物件類(cart)包括:string sellername/商家名稱 ,string sellerid/商家id ,listorderitemlist/要買的商品

未登入時:

1、查詢購物車:findcardlist(通過key:sessionid或者uuid)

2、新增購物車:addgoodstocartlist?itemid=xx&num=xx建立乙個新增購物車的方法,方法需要兩個引數(1、商品id,2、商品數量)

當你把商品加入購物車的時候,

1、首先判斷當前的商品對應的商家有沒有購物車物件(商家)

2、如果存在購物車物件,需要判斷我即將新增的商品有沒有對應的商家,有沒有購物車物件

3、如果有,商品是否重複,重複就把數量加一

4、如果沒有或者不重複,新建商品物件

把商品加入購物車,老的購物車會發生改變,向已有的購物車裡加入資料

1、查詢之前的購物車資料

2、向購物車中追加資料

3、把新的購物車資料放到redis中

細節一:當商品數量小於1時,商品從orderitemlist中移除,判斷此桑吉是否有商品,如果orderitemlist的長度等於0 ,表示商家沒有商品,把商家對應的cart(購物車)物件從cartlist中移除

細節二: 判斷,若果商品數量num小於1(建立orderitem時),丟擲異常數量非法。如果id不存在,丟擲異常商品不存在(新增商品到購物車時)

登入時:用userid作為redis的key(例如:從springsecurity安全框架家中獲取userid)未登入時獲取的id一定是『anonymoususer』,登入時候獲取的userid是使用者名稱xx。

在addgoodstocartlist方法中判斷,如果未登入時,儲存到redis中的key是cookie中的value(uuid)。如果登入了,儲存到redis中的key是獲取到的userid

理解版本一:

1、在findcardlist判斷,同乙個瀏覽器。

2、未登入時儲存到購物車的商品,在登入後,和原有購物車裡面的商品進行合併

3、合併後清空清空(uuid作為redis的key)的購物車(未登入狀態的購物車)

4、儲存合併後的購物車到redis(userid作為redis的key)

理解版本二:查詢未登入時的購物車資料

1、判斷是否登入否:直接返回購物車資料是:根據userid查詢購物車資料

2、判斷登入時是否有購物車資料否:直接返回根據userid查詢到的購物車資料是:合併購物車(登入和未登入時)

3、清空未登入時查詢到的購物車資料

4、把合併後的購物車資料放到redis中(userid作為key)

和並購物車的方法:

1、需要判斷uuid購物車和userid購物車裡的商家和商品是否重複,建議呼叫新增購物車的邏輯

2、遍歷uuid購物車,獲得購物車資料,

PHP購物車實現的思路

商品的基本屬性,只要使用者新增一任意一件商品放購物車,該類就會被例項化一次並且物件會儲存到購物車裡。author hojust class product extends model 如果購買相同商品,該商品的數量相應增加 public function incrementquantity quan...

小程式購物車做題思路

思路 首先要改變前邊框的狀態,找到要選擇的項的下標以及狀態,判斷他的狀態,把狀態設乙個值然後存起來,整個新陣列,在新陣列中根據下表找到狀態然後讓它等於你存起來的狀態,然後把存起來的新陣列的狀態給原陣列 思路 先判斷全選前的狀態,整個新陣列,然後判斷全選前框框的值,迴圈遍歷新的陣列的狀態,跳出迴圈,把...

AJAX實現購物車功能的思路

新增到購物車 1 商品頁面ajax提交productid和num數量給後台。2 後台從session中儲存當前使用者userid 接收ajax傳過來的資料,根據productid和userid查購物車表是否已存有同樣的資料,如果有就更新操作 where productid和userid更數num 表...