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

来源: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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...