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

theme: channing-cyan
简介
本文给大家推荐博主自己开源的电商项目 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 项目地址:
一、开发部署
二、更新日志
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 发布
更新内容:
- 集成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 项目地址:
最后再说一句,感兴趣的朋友可以点赞加关注,你的支持将是我更新动力😘。
本文正在参加「金石计划」
版权声明: 本文为 InfoQ 作者【越长大越悲伤】的原创文章。
原文链接:【http://xie.infoq.cn/article/83feea383bb36de5c6abe066c】。文章转载请联系作者。











 
    
评论