一、簡(jiǎn)介
本文給大家推薦博主自己開源的電商項(xiàng)目newbee-mall-pro。在newbee-mall項(xiàng)目的基礎(chǔ)上搭建而來, 使用 mybatis-plus 作為 orm 層框架,并添加了一系列高級(jí)功能以及代碼優(yōu)化并且已經(jīng)升級(jí)至 Spring Boot3.0
,項(xiàng)目功能特性如下:
- 商城首頁(yè) 【為你推薦】 欄目添加協(xié)同過濾算法。按照 UserCF 基于用戶的協(xié)同過濾、ItemCF 基于物品的協(xié)同過濾,實(shí)現(xiàn)了兩種不同的推薦邏輯。
- RedisSearch:支持中文分詞搜索,支持商品名稱、簡(jiǎn)介、標(biāo)簽作為搜索項(xiàng),以及新品、價(jià)格排序。
RediSearch 是一個(gè)源碼可用的 Redis 模塊,可以對(duì) Redis 進(jìn)行查詢、二級(jí)索引和全文搜索。這些功能支持在文本查詢之上進(jìn)行多字段查詢、聚合、精確短語匹配、數(shù)字過濾、地理過濾和矢量相似性語義搜索。
- 秒殺專區(qū):支持功能完備,生產(chǎn)可用的高級(jí)秒殺功能。
- 優(yōu)惠卷專區(qū):支持優(yōu)惠卷后臺(tái)配置、用戶注冊(cè)贈(zèng)卷、下單頁(yè)面優(yōu)惠卷使用等功能。
- 商城首頁(yè)支持使用滑塊驗(yàn)證碼登錄。
- 支付時(shí)集成了支付寶沙箱支付,可以在開發(fā)環(huán)境體驗(yàn)支付寶支付效果。
- 集成 Pace 頁(yè)面,添加網(wǎng)頁(yè)進(jìn)度條,頁(yè)面跳轉(zhuǎn)美化。
- 添加 Spring 事件監(jiān)聽機(jī)制,異步解耦下單流程。
- 集成spring-session-redis,支持分布式部署。
- 集成mybatis-xmlreload,支持xml文件熱加載。
newbee-mall-pro 項(xiàng)目地址:
- 源碼地址:https://github.com/wayn111/newbee-mall-pro
- 在線地址:http://121.4.124.33/newbeemall
二、特性簡(jiǎn)介
2.1 推薦算法
商城首頁(yè)? 【為你推薦】 ?欄目添加協(xié)同過濾算法。按照UserCF基于用戶的協(xié)同過濾、ItemCF基于物品的協(xié)同過濾。?實(shí)現(xiàn)了兩種不同的推薦邏輯。
-
UserCF:基于用戶的協(xié)同過濾。當(dāng)一個(gè)用戶A需要個(gè)性化推薦的時(shí)候,我們可以先找到和他有相似興趣的其他用戶,然后把那些用戶喜歡的,而用戶A沒有聽說過的物品推薦給A。
假設(shè)用戶 A 喜歡物品 A、物品 C,用戶 B 喜歡物品 B,用戶 C 喜歡物品 A?、物品 C 和物品 D;從這些用戶的歷史喜好信息中,我們可以發(fā)現(xiàn)用戶 A 和用戶 C 的口味和偏好是比較類似的,同時(shí)用戶 C 還喜歡物品 D,那么我們可以推斷用戶 A 可能也喜歡物品 D,因此可以將物品 D 推薦給用戶 A。?具體代碼在?ltd.newbee.mall.recommend.core.UserCF
?中。 -
itemCF:基于物品的協(xié)同過濾。預(yù)先根據(jù)所以用戶的歷史偏好數(shù)據(jù)計(jì)算物品之間的相似度,然后把與用戶喜歡的物品相類似的物品推薦給用戶。?
假如用戶A喜歡物品A和物品C,用戶B喜歡物品A、物品B和物品C,用戶C喜歡物品A,從這些用戶的歷史喜好中可以認(rèn)為物品A與物品C比較類似,喜歡物品A的都喜歡物品C,基于這個(gè)判斷用戶C可能也喜歡物品C,所以推薦系統(tǒng)將物品C推薦給用戶C。?具體代碼在?ltd.newbee.mall.recommend.core.ItemCF
?中。
2.2 中文分詞
商城添加RedisSearch搜索,支持中文分詞搜索,推薦、新品、價(jià)格排序搜索
- 添加RedisSearch測(cè)試用例
- 后臺(tái)添加RedisSearch同步按鈕
- 商城支持RedisSearch中文分詞搜索
2.3 依賴集成、升級(jí)
- 集成
tianai-captcha
滑塊驗(yàn)證碼,支持后端驗(yàn)證碼校驗(yàn) - 添加 Spring 事件監(jiān)聽機(jī)制,解耦下單流程,將下單流程拆解為訂單校驗(yàn)、生成訂單號(hào)、發(fā)送事件異步保存訂單流程
- 集成spring-session-redis,支持分布式部署
2.3 秒殺專區(qū)
秒殺功能如下:
- 秒殺頁(yè)面靜態(tài)化
- 添加了秒殺接口限流,基于springAOP實(shí)現(xiàn)
- 添加了秒殺接口防止重復(fù)提交,基于spring攔截器實(shí)現(xiàn)
- 使用令牌桶算法過濾用戶請(qǐng)求
- 使用redis-set數(shù)據(jù)結(jié)構(gòu)判斷用戶是否買過秒殺商品
- 使用redis配合lua腳本進(jìn)行原子自減,判斷商品緩存庫(kù)存是否大于0
- 獲取商品緩存,判斷秒殺商品是否再有效期內(nèi)
- 執(zhí)行存儲(chǔ)過程(減庫(kù)存 + 記錄購(gòu)買行為)
- 使用redis-set數(shù)據(jù)結(jié)構(gòu)記錄購(gòu)買過的用戶
- 返回用戶秒殺成功VO
- 下單后啟用秒殺訂單5分鐘未支付超期任務(wù)
- 訂單5分鐘內(nèi)未支付則自動(dòng)取消訂單并回退庫(kù)存
秒殺專區(qū)為用戶展示了后臺(tái)設(shè)置的秒殺商品,在秒殺有效期內(nèi)可以進(jìn)行商品秒殺操作。
三、在線截圖
商城首頁(yè) ![]() |
商品搜索 ![]() |
---|---|
購(gòu)物車 ![]() |
訂單結(jié)算 ![]() |
訂單列表 ![]() |
支付頁(yè)面 ![]() |
分類管理 ![]() |
會(huì)員管理 ![]() |
優(yōu)惠劵管理 ![]() |
商品管理 ![]() |
秒殺管理 ![]() |
訂單管理 ![]() |
總結(jié)
歡迎大家參與使用newbee-mall-pro項(xiàng)目,使用中遇到問題歡迎大家提出。我都會(huì)一一查看并回復(fù)。再附newbee-mall-pro項(xiàng)目地址:文章來源:http://www.zghlxwxcb.cn/news/detail-405549.html
- 源碼地址:https://github.com/wayn111/newbee-mall-pro
- 在線地址:http://121.4.124.33/newbeemall
最后再說一句,感興趣的朋友可以點(diǎn)贊加關(guān)注,你的支持將是我更新動(dòng)力??。文章來源地址http://www.zghlxwxcb.cn/news/detail-405549.html
到了這里,關(guān)于推薦一款優(yōu)秀電商開源項(xiàng)目的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!