項目總結

商品id生成策略:當前時間毫秒值+兩位隨機數,不足兩位前面補零。(因爲須要不斷的導入導出,不適合自增加)java

添加商品,返回的是自定義結構(包括響應狀態,響應消息,響應數據),查詢商品表和商品描述表。redis

內容服務系統:數據庫

內容分類表:tb_content_category   id,名字,是否父節點,父id。主鍵返回。   json

內容表:tb_content   id,分類id,標題,副標題,url,圖片,建立時間,更新時間。跨域

首頁展現加緩存,使用hash數據類型,哈希的表名本身定義好比content,由於是固定的,單獨分離出來寫在配置文件中。瀏覽器

Key:cid緩存

Value:內容列表。須要把java對象轉換成json。(writeValueAsString)服務器

搜索用like %name%.cookie

展現商品詳情時:根據商品id查詢商品信息(tb_item)獲得一個TbItem對象,缺乏images屬性,能夠建立一個pojo繼承TbItem,添加一個getImages方法。session

展現商品數據時添加緩存,設置緩存過時時間緩解數據壓力。因爲hash不能設置某個filed的過時時間。

須要使用String類型來保存商品數據。能夠加前綴方法對象redis中的key進行歸類。ITEM_INFO:123456:BASE、ITEM_INFO:123456:DESC。value就是商品數據

若是把二維表保存到redis:一、表名就是第一層二、主鍵是第二層三、字段名第三次

三層使用:」分隔做爲keyvalue就是字段中的內容。

單點登陸:

一、可使用Session服務器,保存Session信息,使每一個節點是無狀態。須要模擬Session單點登陸系統是使用redis模擬Session,實現Session的統一管理。

用戶表:用戶名、密碼、電話號碼,郵箱,建立時間,更新時間。

登錄以前作校驗:

參數:從url中取參數1String param(要校驗的數據)2Integer type(校驗的數據類型)

 響應的數據:json數據。e3Result,封裝的數據校驗的結果true:成功false:失敗。

登陸的處理流程:

一、登陸頁面提交用戶名密碼。

二、登陸成功後生成tokenToken至關於原來的jsessionid,字符串,可使用uuid

三、把用戶信息保存到redisKey就是tokenvalue就是TbUser對象轉換成json

四、使用String類型保存Session信息。可使用「前綴:token」爲key

五、設置key的過時時間。模擬Session的過時時間。通常半個小時。

六、token寫入cookie中。

七、Cookie須要跨域。例如www.e3.com\sso.e3.com\order.e3.com,可使用工具類。

八、Cookie的有效期。關閉瀏覽器失效。

九、登陸成功。

添加購物車

在不登錄的狀況下也能夠添加購物車。把購物車信息寫入cookie

優勢:一、不佔用服務端存儲空間二、用戶體驗好。三、代碼實現簡單。

缺點:一、cookie中保存的容量有限。最大4k   二、把購物車信息保存在cookie中,更換設備購物車信息不能同步。

一、cookie中查詢商品列表。二、判斷商品在商品列表中是否存在。三、若是存在,商品數量相加。四、不存在,根據商品id查詢商品信息。五、把商品添加到購車列表。

六、把購車商品列表寫入cookie

 

登陸狀態下,須要把購物車數據保存到服務端。須要永久保存,能夠保存到數據庫中。能夠把購物車數據保存到redis中。

二、redis使用的數據類型

 

a) 使用hash數據類型b) Hashkey應該是用戶idHash中的field是商品idvalue能夠把商品信息轉換成json

 

判斷用戶是否登陸

應該使用攔截器實現。

一、實現一個HandlerInterceptor接口。

二、在執行handler方法以前作業務處理

三、cookie中取token。使用CookieUtils工具類實現。

四、沒有取到token,用戶未登陸。放行

五、取到token,調用sso系統的服務,根據token查詢用戶信息。

六、沒有返回用戶信息。登陸已通過期,未登陸,放行。

七、返回用戶信息。用戶是登陸狀態。能夠把用戶對象保存到request中,在Controller中能夠經過判斷request中是否包含用戶對象,肯定是否爲登陸狀態。

訂單服務時:

 

一、cookie中取token

 

二、若是沒有取到,沒有登陸,跳轉到sso系統的登陸頁面。攔截

 

三、若是取到token。判斷登陸是否過時,須要調用sso系統的服務,根據token取用戶信息

 

四、若是沒有取到用戶信息,登陸已通過期,從新登陸。跳轉到登陸頁面。攔截(登錄成功返回到原來的頁面可使用回調,在原頁面保存url,而後登錄成功返回到原來的url)

 

五、若是取到用戶信息,用戶已是登陸狀態,把用戶信息保存到request中。放行

 

六、判斷cookie中是否有購物車信息,若是有合併購物車

 

 

 

 

八、

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息