推荐一款优秀电商开源项目

2023-11-02

简介

本文给大家推荐博主自己开源的电商项目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 项目地址:

  • 源码地址:https://github.com/wayn111/newbee-mall-pro
  • 在线地址:http://121.4.124.33/newbeemall

一、开发部署

# 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发布

更新内容:

  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项目地址:

  • 源码地址:https://github.com/wayn111/newbee-mall-pro
  • 在线地址:http://121.4.124.33/newbeemall

最后再说一句,感兴趣的朋友可以点赞加关注,你的支持将是我更新动力

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

推荐一款优秀电商开源项目 的相关文章

随机推荐

  • 【javaSE】 枚举与枚举的使用

    文章目录 枚举的背景及定义 枚举特性总结 枚举的使用 switch语句 常用方法 示例一 示例二 枚举优点缺点 枚举和反射 枚举是否可以通过反射 拿到实例对象呢 枚举总结 总结 枚举的背景及定义 枚举是在JDK1 5以后引入的 主要用途是
  • Android 解决“Could not resolve all artifacts for configuration ‘:classpath‘”报错问题

    在开发的过程中 同步代码的时候 突然出现这个报错信息 Caused by org gradle api internal artifacts ivyservice DefaultLenientConfiguration ArtifactRe
  • GAMES101课程学习笔记—Lec 10~12:Geometry 几何、隐式与显式、曲线与曲面、网格

    1 几何的表达方式 几何表达分为显式和隐式 1 1 隐式几何 举个例子 用空间中一个点来表示面 隐式的几何不会告诉我们这些点在哪里 而会告诉我们这些点满足的函数关系隐式的表达很难直接看出它的形状是什么 但是判断点的位置关系 在内在外在表面
  • PyQt主窗口、对话框

    PyQt的各类窗口 一 主窗口 QMainWindow 1 窗口样式 2 窗口模态 二 对话窗口 QDialog 1 消息窗口 QMessageBox 2 输入窗口 QInputDialog 3 字体窗口 QFontDialog 4 文件窗
  • python编程题题库及答案

    1 Python编程题怎么写 2 python编程问题 3 Python编程题求助 Python编程题怎么写 1 根据题意 头的总数为35 用变量head来记录头的总数 head 35 而腿的总数为94 用变量foot来记录腿的总数 foo
  • 前端开发者快速入门安卓开发(安卓嵌入式开发课程经验总结)

    目录 1 安卓开发结构 2 xml 3 java 使用xml的标签 Bitmap 4 开发注意 1 安卓开发结构 安卓开发和前端有异曲同工之处 只是js换成了Java 它的界面层是xml格式的 布局全部放在layout下 2 xml 以la
  • 数据库课程设计------书店管理系统1后续

    数据库课程设计 书店管理系统 部分的展示图如下 具体请查看网址 https kisaaki github io 2021 12 11 E6 95 B0 E6 8D AE E5 BA 93 E8 AF BE E7 A8 8B E8 AE BE
  • NTC——热敏电阻的采集方法

    前言 最近在调试STM32ADC采集NTC热敏电阻的温度值 总结下NTC热敏电阻温度值的采集方法 硬件平台 STM32F205 软件平台 keil V5 函数库 标准库 NTC热敏电阻温度采集方法 热敏电阻的相关知识点见百度文库的介绍 传送
  • freetype描边和半透明实现

    可以参考官网的另外一个c 实现的版本 https www freetype org freetype2 docs tutorial example2 cpp 我把它转化为C代码如下 include
  • maven依赖找不到的解决:手动下载、多镜像导入。

    maven中央仓库 远在国外 没下载 因为网络原因迟迟下载不下来 所以我们就需要配置一些国内的镜像仓库 来进行jar包的下载 但是阿里的仓库并没有收录中央仓库的全部jar包 因此导致我们有些jar包下载不下来 爆红 整合网络上资料 可以考虑
  • Python入门基础知识总结

    目录 一 简介 二 Python基础语法 2 1 字面量 2 2 注释 2 3 数据类型转换 2 4 标识符 2 5 运算符 2 6 字符串 2 6 1 字符串的三种定义方式 2 6 2 字符串拼接 2 6 3 字符串格式化 2 6 4 格
  • 深度学习中Batch、Epoch、Iteration的理解

    Batch 每一次训练就是一次Batch Batch Size的大小表示一个Batch样本容量的大小 对于Batch Size的选择有多种策略 Batch Size越大 由于可以利用并行化的优势 处理速度就会越快 可以充分利用内存资源 但是
  • 基于 Mask R-CNN 的鸟类识别 app

    一个基于 Mask R CNN 的鸟类识别 APP 可以识别五种鸟类 mAP 83 前言 这是博主的毕设的课题 时间紧迫加上自身能力所限 最后的作品还有很多不足 还望各位不吝指正 代码已经上传到了 github 并附上了详细的使用说明 先放
  • 数据信息查询

    package com myjdbc import java sql Connection import java sql ResultSet import java sql SQLException import java sql Pre
  • TiDB 架构的演进和开发哲学

    本文来自 CSDN 程序员 2017 年 2 月的封面报道 对于一个从零开始的数据库来说 选择什么语言 整体架构怎么做 要不要开源 如何去测试 太多的问题需要去考量 在本篇文章中 PingCAP 联合创始人兼 CTO 黄东旭对 TiDB 的
  • 最小二乘的矩阵形式

    为m n的矩阵 b为m 1的矩阵 则Ax b表达了一个线性方程组 它的normal equation的形式为ATAx ATb 当Ax b有解时 即矩阵 A b 的秩与A的秩相同 Ax b与ATAx ATb的解集是一样 而当Ax b无解时 A
  • AT32F415 MSC IAP SpiFlash As Disk

    SC0097 AT32F415 MSC IAP SpiFlash As Disk 示例目的 提供USB外挂SPI FLASH模拟U盘 在通过U盘存储固件进行升级 注 本示例代码是基于雅特力提供的V2 x x板级支持包 BSP 而开发 对于其
  • HDU - 2100 Lovekey

    XYZ 26进制数是一个每位都是大写字母的数字 A B C X Y Z 分别依次代表一个0 25 的数字 一个 n 位的26进制数转化成是10进制的规则如下 A0A1A2A3 An 1 的每一位代表的数字为a0a1a2a3 an 1 则该X
  • 达梦数据库sql实现查询当天的数据

    1 库数据 2 sql语句 select
  • 推荐一款优秀电商开源项目

    简介 本文给大家推荐博主自己开源的电商项目newbee mall pro 在newbee mall项目的基础上搭建而来 使用 mybatis plus 作为 orm 层框架 并添加了一系列高级功能以及代码优化 特性如下 商城首页 为你推荐