推薦一款優秀電商開源項目

来源:https://www.cnblogs.com/waynaqua/archive/2023/04/08/17299626.html
-Advertisement-
Play Games

簡介 本文給大家推薦博主自己開源的電商項目newbee-mall-pro。在newbee-mall項目的基礎上搭建而來, 使用 mybatis-plus 作為 orm 層框架,並添加了一系列高級功能以及代碼優化,特性如下: 商城首頁 【為你推薦】 欄目添加協同過濾演算法。按照 UserCF 基於用戶的 ...


簡介

本文給大家推薦博主自己開源的電商項目newbee-mall-pro。在newbee-mall項目的基礎上搭建而來, 使用 mybatis-plus 作為 orm 層框架,並添加了一系列高級功能以及代碼優化,特性如下:

  1. 商城首頁 【為你推薦】 欄目添加協同過濾演算法。按照 UserCF 基於用戶的協同過濾、ItemCF 基於物品的協同過濾,實現了兩種不同的推薦邏輯。
  2. RedisSearch:支持中文分詞搜索,支持商品名稱、簡介、標簽作為搜索項,以及新品、價格排序。

RediSearch 是一個源碼可用的 Redis 模塊,可以對 Redis 進行查詢、二級索引和全文搜索。這些功能支持在文本查詢之上進行多欄位查詢、聚合、精確短語匹配、數字過濾、地理過濾和矢量相似性語義搜索。

  1. 秒殺專區:支持功能完備,生產可用的高級秒殺功能。
  2. 優惠捲專區:支持優惠捲後臺配置、用戶註冊贈捲、下單頁面優惠捲使用等功能。
  3. 商城首頁支持使用滑塊驗證碼登錄。
  4. 支付時集成了支付寶沙箱支付,可以在開發環境體驗支付寶支付效果。
  5. 集成 Pace 頁面,添加網頁進度條,頁面跳轉美化。
  6. 添加 Spring 事件監聽機制,非同步解耦下單流程。
  7. 集成spring-session-redis,支持分散式部署。
  8. 集成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發佈

更新內容:

  1. 商城首頁為你推薦欄目添加協同過濾演算法。按照UserCF基於用戶的協同過濾、ItemCF基於物品的協同過濾。
    實現了兩種不同的推薦邏輯。
    • UserCF:基於用戶的協同過濾。當一個用戶A需要個性化推薦的時候,我們可以先找到和他有相似興趣的其他用戶,然後把那些用戶喜歡的,而用戶A沒有聽說過的物品推薦給A。
      具體代碼在 ltd.newbee.mall.recommend.core.UserCF 中。
    • itemCF:基於物品的協同過濾。預先根據所以用戶的歷史偏好數據計算物品之間的相似度,然後把與用戶喜歡的物品相類似的物品推薦給用戶。
      具體代碼在 ltd.newbee.mall.recommend.core.ItemCF 中。

2023年3月27日更新日誌

newbee-mall-pro V2.4.1發佈

更新內容:

  1. 集成mybatis-xmlreload,支持xml文件熱載入
  2. 代碼優化,通過阿裡巴巴代碼規範檢測
  3. 升級部分依賴至最新

2023年1月2日更新日誌

newbee-mall-pro V2.4.0發佈

更新內容:

  1. Springboot版本升級至3.0.2
  2. Mybatis plus升級至3.5.3.1支持Springboot3.0

2022年11月17日更新日誌

newbee-mall-pro V2.3.0發佈

更新內容:

  1. Springboot版本升級至2.7.5,jdk升級至17
  2. 使用switch表達式語法擴展,優化switch語句
  3. 使用instanceof類型匹配語法簡化,直接給對象賦值
  4. 使用文本塊優化現有lua腳本顯示
  5. 添加@Serial註解表示序列化欄位和方法
  6. 代碼優化,刪除無用導入
  7. 升級項目依賴

bug修複:

  1. 修複優惠券使用bug

2022年9月04日更新日誌

newbee-mall-pro V2.2.0發佈

更新內容:

  1. 後臺添加商品標簽集成select2,支持商品標簽不存在即創建
  2. 添加Spring事件監聽機制,解耦下單流程
  3. 集成Pace,美化商城頁面
  4. 集成RedisSearch中文分詞搜索
  5. 集成tianai-captcha滑塊驗證碼
  6. 優化商城搜索頁面邏輯
  7. 升級項目依賴
  8. 添加docker-compose部署

bug修複:

  1. 修複商城搜索bug
  2. 修複優惠券使用bug
  3. 修複定時任務bug

2022年5月08日更新日誌

商城RediSearch支持商品上下架搜索

2022年4月23日更新日誌

商城登錄頁面添加滑塊驗證碼登錄,優化登錄體驗

  1. 集成tianai-captcha滑塊驗證碼,支持後端驗證碼校驗

2022年4月12日更新日誌

使用Spring事件監聽機制,解耦下單流程,集成Pace美化商城進度條

  1. 添加Spring事件監聽機制,解耦下單流程,將下單流程拆解為訂單校驗、生成訂單號、發送事件非同步保存訂單流程
  2. 集成Pace頁面,添加網頁進度條,美化商城頁面

2022年3月27日更新日誌

商城添加RedisSearch搜索,支持中文分詞搜索,推薦、新品、價格排序搜索

  1. 添加RedisSearch測試用例
  2. 後臺添加RedisSearch同步按鈕
  3. 商城支持RedisSearch中文分詞搜索

2022年3月21日更新日誌

升級版本號至2.1.3,是一個功能完善版本

  1. 支持分散式部署
  2. 升級spring版本至2.6.4
  3. 升級mybatis-plus至3.5.1
  4. 添加Dockerfile文件支持容器部署

2021年5月30日更新日誌

升級版本號至2.1.2,是一個代碼優化版本

  1. 秒殺專區購物車數量顯示錯誤bug修複

  2. 支付寶沙箱支付bug修複,顯示沙箱賬號

  3. 將預設編輯器替換為froala editor

  4. 添加站點演示模式,通過攔截器對不允許操作的後臺路徑進行錯誤提示處理

  5. 升級pom文件部分依賴

2021年1月14日秒殺介面升級

本次升級主要在原有秒殺功能的基礎上進行了完善,秒殺優化如下:

  1. 秒殺頁面靜態化
  2. 添加了秒殺介面限流,基於springAOP實現
  3. 添加了秒殺介面防止重覆提交,基於spring攔截器實現
  4. 使用令牌桶演算法過濾用戶請求
  5. 使用redis-set數據結構判斷用戶是否買過秒殺商品
  6. 使用redis配合lua腳本進行原子自減,判斷商品緩存庫存是否大於0
  7. 獲取商品緩存,判斷秒殺商品是否再有效期內
  8. 執行存儲過程(減庫存 + 記錄購買行為)
  9. 使用redis-set數據結構記錄購買過的用戶
  10. 返回用戶秒殺成功VO
  11. 下單後啟用秒殺訂單5分鐘未支付超期任務
  12. 訂單5分鐘內未支付則自動取消訂單並回退庫存

三、秒殺專區

秒殺專區為用戶展示了後臺設置的秒殺商品,在秒殺有效期內可以進行商品秒殺操作. 秒殺介面使用了介面限流、Redis以及儲存過程提高秒殺操作的tps




四、優惠劵領取

優惠劵頁面為用戶展示了後臺設置的可用優惠劵,在下單時可以使用優惠捲減少下單金額

五、線上截圖

商城首頁 index 商品搜索 search
購物車 cart 訂單結算 settle
訂單列表 orders 支付頁面 settle
分類管理 分類管理 會員管理 會員管理
優惠劵管理 優惠劵管理 商品管理 商品管理
秒殺管理 秒殺管理 訂單管理 訂單管理

總結

歡迎大家參與使用newbee-mall-pro項目,使用中遇到問題歡迎大家提出。我都會一一查看並回覆。再附newbee-mall-pro項目地址:

最後再說一句,感興趣的朋友可以點贊加關註,你的支持將是我更新動力

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 摘要:StampedLock是一種在讀取共用變數的過程中,允許後面的一個線程獲取寫鎖對共用變數進行寫操作,使用樂觀讀避免數據不一致的問題,並且在讀多寫少的高併發環境下,比ReadWriteLock更快的一種鎖。 本文分享自華為雲社區《一文徹底理解併發編程中非常重要的票據鎖——StampedLock》 ...
  • 隨著技術的發展,ASP.NET Core MVC也推出了好長時間,經過不斷的版本更新迭代,已經越來越完善,本系列文章主要講解ASP.NET Core MVC開發B/S系統過程中所涉及到的相關內容,適用於初學者,在校畢業生,或其他想從事ASP.NET Core MVC 系統開發的人員,僅供學習分享使用 ...
  • 救急 臨時文件 WIN+R 打開啟動命令輸入 %TEMP% 其實就是打開系統用戶下的臨時文件夾 文件夾下的文件都是應用的臨時文件,刪掉也會重覆創建。選中所有文件直接shift+Delete直接刪除不走回收站。 臨時文件其實也不是很大 虛擬記憶體 Windows的虛擬記憶體技術會拿出一部分硬碟空間充當記憶體 ...
  • 實驗證明,巨集定義 LV_MEM_CUSTOM 從 0 改為 1,對 LVGL+TFT_eSPI 編譯時不再提示 “section `.rodata' will not fit in region `dram0_0_seg'” 或“section `.bss' is not within region... ...
  • 鎖屏面試題百日百刷,每個工作日堅持更新面試題。請看到最後就能獲取你想要的,接下來的是今日的面試題: 1.HBase內部機制是什麼? Hbase是一個能適應聯機業務的資料庫系統 物理存儲:hbase的持久化數據是將數據存儲在HDFS上。 存儲管理:一個表是劃分為很多region的,這些region分佈 ...
  • 1. 精靈圖 1.1 為什麼需要精靈圖 一個網頁中往往會應用很多小的背景圖像作為修飾,當網頁中的圖像過多時,伺服器就會頻繁地接收和發送請求圖片,造成伺服器請求壓力過大,這將大大降低頁面的載入速度。 因此,為了有效地減少伺服器接受和發送請求的次數,提高頁面的載入速度,出現了CSS精靈技術。 核心原理: ...
  • 今年是23年,互聯網大裁員,電腦行業的小伙伴也深有體會,那麼還沒有入行的我們要怎麼去選擇編程語言?一文簡單帶你分析你應該值得去學什麼 原文地址,未來會持續更新Python面試題、前後端分離項目,點擊鏈接前往 結論 值得去學Python,不管是作為第一編程語言還是第二編程語言,你都應該要學習Pyth ...
  • 效果 搭建一個spring源碼調試環境,創建一個spring-demo模塊,寫一些測試代碼。 給源碼添加註釋。 給源碼打包 ubantu環境下搭建spring6.0.x源碼環境 步驟 源碼網址 Spring Framework 下載代碼 fork到自己的GitHub倉庫,然後拉代碼 git clon ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...