簡介 本文給大家推薦博主自己開源的電商項目newbee-mall-pro。在newbee-mall項目的基礎上搭建而來, 使用 mybatis-plus 作為 orm 層框架,並添加了一系列高級功能以及代碼優化,特性如下: 商城首頁 【為你推薦】 欄目添加協同過濾演算法。按照 UserCF 基於用戶的 ...
簡介
本文給大家推薦博主自己開源的電商項目newbee-mall-pro。在newbee-mall項目的基礎上搭建而來, 使用 mybatis-plus 作為 orm 層框架,並添加了一系列高級功能以及代碼優化,特性如下:
- 商城首頁 【為你推薦】 欄目添加協同過濾演算法。按照 UserCF 基於用戶的協同過濾、ItemCF 基於物品的協同過濾,實現了兩種不同的推薦邏輯。
- RedisSearch:支持中文分詞搜索,支持商品名稱、簡介、標簽作為搜索項,以及新品、價格排序。
RediSearch 是一個源碼可用的 Redis 模塊,可以對 Redis 進行查詢、二級索引和全文搜索。這些功能支持在文本查詢之上進行多欄位查詢、聚合、精確短語匹配、數字過濾、地理過濾和矢量相似性語義搜索。
- 秒殺專區:支持功能完備,生產可用的高級秒殺功能。
- 優惠捲專區:支持優惠捲後臺配置、用戶註冊贈捲、下單頁面優惠捲使用等功能。
- 商城首頁支持使用滑塊驗證碼登錄。
- 支付時集成了支付寶沙箱支付,可以在開發環境體驗支付寶支付效果。
- 集成 Pace 頁面,添加網頁進度條,頁面跳轉美化。
- 添加 Spring 事件監聽機制,非同步解耦下單流程。
- 集成spring-session-redis,支持分散式部署。
- 集成mybatis-xmlreload,支持xml文件熱載入。
newbee-mall-pro 項目地址:
一、開發部署
# 1. 克隆項目
git clone [email protected]:wayn111/newbee-mall-pro.git
# 2. 導入項目依賴
將newbee-mall-pro目錄用idea打開,導入maven依賴
# 3. 安裝Mysql8.0+、Redis3.0+(RediSearch2.0+)、Jdk8+、Maven3.5+
docker安裝RediSearch
docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:lates
# 4. 導入sql文件
在項目根目錄下sql文件夾下,找到`newbee_mall_db_包含秒殺and優惠捲.sql`文件,新建mysql資料庫newbee_mall_db,導入其中
# 5. 解壓項目圖片
將項目根目錄下upload.zip文件加壓縮到D盤upload文件夾中,eg:D:\\upload
# 6. 修改Mysql、Redis連接配置
修改`application-dev.yml`文件中數據連接配置相關信息
# 7. 啟動項目
找到NewBeeMallApplication文件,右鍵`run AdminApplication`,啟動項目
# 8. 訪問
打開瀏覽器輸入:http://localhost:84/newbeemall
二、更新日誌
2023年4月08日更新日誌
newbee-mall-pro V2.4.2發佈
更新內容:
- 商城首頁為你推薦欄目添加協同過濾演算法。按照UserCF基於用戶的協同過濾、ItemCF基於物品的協同過濾。
實現了兩種不同的推薦邏輯。- UserCF:基於用戶的協同過濾。當一個用戶A需要個性化推薦的時候,我們可以先找到和他有相似興趣的其他用戶,然後把那些用戶喜歡的,而用戶A沒有聽說過的物品推薦給A。
具體代碼在ltd.newbee.mall.recommend.core.UserCF
中。 - itemCF:基於物品的協同過濾。預先根據所以用戶的歷史偏好數據計算物品之間的相似度,然後把與用戶喜歡的物品相類似的物品推薦給用戶。
具體代碼在ltd.newbee.mall.recommend.core.ItemCF
中。
- UserCF:基於用戶的協同過濾。當一個用戶A需要個性化推薦的時候,我們可以先找到和他有相似興趣的其他用戶,然後把那些用戶喜歡的,而用戶A沒有聽說過的物品推薦給A。
2023年3月27日更新日誌
newbee-mall-pro V2.4.1發佈
更新內容:
- 集成mybatis-xmlreload,支持xml文件熱載入
- 代碼優化,通過阿裡巴巴代碼規範檢測
- 升級部分依賴至最新
2023年1月2日更新日誌
newbee-mall-pro V2.4.0發佈
更新內容:
- Springboot版本升級至3.0.2
- Mybatis plus升級至3.5.3.1支持Springboot3.0
2022年11月17日更新日誌
newbee-mall-pro V2.3.0發佈
更新內容:
- Springboot版本升級至2.7.5,jdk升級至17
- 使用switch表達式語法擴展,優化switch語句
- 使用instanceof類型匹配語法簡化,直接給對象賦值
- 使用文本塊優化現有lua腳本顯示
- 添加@Serial註解表示序列化欄位和方法
- 代碼優化,刪除無用導入
- 升級項目依賴
bug修複:
- 修複優惠券使用bug
2022年9月04日更新日誌
newbee-mall-pro V2.2.0發佈
更新內容:
- 後臺添加商品標簽集成
select2
,支持商品標簽不存在即創建
- 添加Spring事件監聽機制,解耦下單流程
- 集成Pace,美化商城頁面
- 集成RedisSearch中文分詞搜索
- 集成
tianai-captcha
滑塊驗證碼 - 優化商城搜索頁面邏輯
- 升級項目依賴
- 添加docker-compose部署
bug修複:
- 修複商城搜索bug
- 修複優惠券使用bug
- 修複定時任務bug
2022年5月08日更新日誌
商城RediSearch支持商品上下架搜索
2022年4月23日更新日誌
商城登錄頁面添加滑塊驗證碼登錄,優化登錄體驗
- 集成
tianai-captcha
滑塊驗證碼,支持後端驗證碼校驗
2022年4月12日更新日誌
使用Spring事件監聽機制,解耦下單流程,集成Pace美化商城進度條
- 添加Spring事件監聽機制,解耦下單流程,將下單流程拆解為訂單校驗、生成訂單號、發送事件非同步保存訂單流程
- 集成Pace頁面,添加網頁進度條,美化商城頁面
2022年3月27日更新日誌
商城添加RedisSearch搜索,支持中文分詞搜索,推薦、新品、價格排序搜索
- 添加RedisSearch測試用例
- 後臺添加RedisSearch同步按鈕
- 商城支持RedisSearch中文分詞搜索
2022年3月21日更新日誌
升級版本號至2.1.3,是一個功能完善版本
- 支持分散式部署
- 升級spring版本至2.6.4
- 升級mybatis-plus至3.5.1
- 添加Dockerfile文件支持容器部署
2021年5月30日更新日誌
升級版本號至2.1.2,是一個代碼優化版本
-
秒殺專區購物車數量顯示錯誤bug修複
-
支付寶沙箱支付bug修複,顯示沙箱賬號
-
將預設編輯器替換為froala editor
-
添加站點演示模式,通過攔截器對不允許操作的後臺路徑進行錯誤提示處理
-
升級pom文件部分依賴
2021年1月14日秒殺介面升級
本次升級主要在原有秒殺功能的基礎上進行了完善,秒殺優化如下:
- 秒殺頁面靜態化
- 添加了秒殺介面限流,基於springAOP實現
- 添加了秒殺介面防止重覆提交,基於spring攔截器實現
- 使用令牌桶演算法過濾用戶請求
- 使用redis-set數據結構判斷用戶是否買過秒殺商品
- 使用redis配合lua腳本進行原子自減,判斷商品緩存庫存是否大於0
- 獲取商品緩存,判斷秒殺商品是否再有效期內
- 執行存儲過程(減庫存 + 記錄購買行為)
- 使用redis-set數據結構記錄購買過的用戶
- 返回用戶秒殺成功VO
- 下單後啟用秒殺訂單5分鐘未支付超期任務
- 訂單5分鐘內未支付則自動取消訂單並回退庫存
三、秒殺專區
秒殺專區為用戶展示了後臺設置的秒殺商品,在秒殺有效期內可以進行商品秒殺操作. 秒殺介面使用了介面限流、Redis以及儲存過程提高秒殺操作的tps
四、優惠劵領取
優惠劵頁面為用戶展示了後臺設置的可用優惠劵,在下單時可以使用優惠捲減少下單金額
五、線上截圖
商城首頁 | 商品搜索 |
---|---|
購物車 | 訂單結算 |
訂單列表 | 支付頁面 |
分類管理 | 會員管理 |
優惠劵管理 | 商品管理 |
秒殺管理 | 訂單管理 |
總結
歡迎大家參與使用newbee-mall-pro項目,使用中遇到問題歡迎大家提出。我都會一一查看並回覆。再附newbee-mall-pro項目地址:
最後再說一句,感興趣的朋友可以點贊加關註,你的支持將是我更新動力