找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

6117

积分

0

好友

777

主题
发表于 前天 21:38 | 查看: 0| 回复: 0

项目简介

本文给大家推荐博主自己开源的电商项目 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 git@github.com: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 中。

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. Spring Boot 版本升级至 3.0.2
  2. MyBatis-Plus 升级至 3.5.3.1,支持 Spring Boot 3.0

2022年11月17日更新日志

newbee-mall-pro V2.3.0 发布。

更新内容:

  1. Spring Boot 版本升级至 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

富文本编辑器界面

  1. 添加站点演示模式,通过拦截器对不允许操作的后台路径进行错误提示处理

商品分类管理后台演示模式提示

  1. 升级 pom 文件部分依赖

2021年1月14日秒杀接口升级

本次升级主要在原有秒杀功能的基础上进行了完善,秒杀优化如下:

  1. 秒杀页面静态化
  2. 添加了秒杀接口限流,基于 Spring AOP 实现
  3. 添加了秒杀接口防止重复提交,基于 Spring 拦截器实现
  4. 使用令牌桶算法过滤用户请求
  5. 使用 Redis Set 数据结构判断用户是否买过秒杀商品
  6. 使用 Redis 配合 Lua 脚本进行原子自减,判断商品缓存库存是否大于 0
  7. 获取商品缓存,判断秒杀商品是否在有效期内
  8. 执行存储过程(减库存 + 记录购买行为)
  9. 使用 Redis Set 数据结构记录购买过的用户
  10. 返回用户秒杀成功 VO
  11. 下单后启用秒杀订单 5 分钟未支付超期任务
  12. 订单 5 分钟内未支付则自动取消订单并回退库存

三、秒杀专区

秒杀专区为用户展示了后台设置的秒杀商品,在秒杀有效期内可以进行商品秒杀操作。秒杀接口使用了接口限流、Redis 以及存储过程来提高秒杀操作的 TPS。

新蜂商城秒杀专区页面

华为Mate30秒杀商品详情

华为Mate30 Pro秒杀商品详情

红米7秒杀商品详情


四、优惠券领取

优惠券页面为用户展示了后台设置的可用优惠券,在下单时可以使用优惠券减少下单金额。

新蜂商城优惠券推荐区域

订单确认页面可用优惠券


五、在线截图

商城首页 1 商品搜索
新蜂商城首页轮播图 无印良品商品搜索结果
购物车 订单结算
购物车页面 订单确认页面
订单列表 支付页面
我的订单列表 微信支付页面
分类管理 会员管理
分类管理后台 会员管理后台
优惠券管理 商品管理
优惠券管理后台 商品管理后台
秒杀管理 订单管理
秒杀管理后台 订单管理后台

总结

欢迎大家参与使用 newbee-mall-pro 项目,使用中遇到问题欢迎提出,我都会一一查看并回复。再附 newbee-mall-pro 项目地址:

如果你正在寻找一个功能完整的 Spring Boot 电商实战项目,这个项目无论是用来学习 Redis 高级特性、秒杀架构设计,还是作为二次开发的基础,都值得一试。




上一篇:RediSearch 全文搜索实战:创建索引并关联 Redis 源数据详解
下一篇:实测 Matt Pocock Skills:两个 Subagent 真跑一遍后,我还敢放心用吗?
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-9-13 17:51 , Processed in 1.370657 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表