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

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 推荐一款优秀电商开源项目

image.png

一、简介

本文给大家推荐博主自己开源的电商项目newbee-mall-pro。在newbee-mall项目的基础上搭建而来, 使用 mybatis-plus 作为 orm 层框架,并添加了一系列高级功能以及代码优化并且已经升级至 Spring Boot3.0,项目功能特性如下:

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


二、特性简介

2.1 推荐算法

商城首页  【为你推荐】  栏目添加协同过滤算法。按照UserCF基于用户的协同过滤、ItemCF基于物品的协同过滤。 实现了两种不同的推荐逻辑。

  • UserCF:基于用户的协同过滤。当一个用户A需要个性化推荐的时候,我们可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的,而用户A没有听说过的物品推荐给A。

image.png

  • 假设用户 A 喜欢物品 A、物品 C,用户 B 喜欢物品 B,用户 C 喜欢物品 A 、物品 C 和物品 D;从这些用户的历史喜好信息中,我们可以发现用户 A 和用户 C 的口味和偏好是比较类似的,同时用户 C 还喜欢物品 D,那么我们可以推断用户 A 可能也喜欢物品 D,因此可以将物品 D 推荐给用户 A。 具体代码在 ltd.newbee.mall.recommend.core.UserCF 中。
  • itemCF:基于物品的协同过滤。预先根据所以用户的历史偏好数据计算物品之间的相似度,然后把与用户喜欢的物品相类似的物品推荐给用户。

image.png

  • 假如用户A喜欢物品A和物品C,用户B喜欢物品A、物品B和物品C,用户C喜欢物品A,从这些用户的历史喜好中可以认为物品A与物品C比较类似,喜欢物品A的都喜欢物品C,基于这个判断用户C可能也喜欢物品C,所以推荐系统将物品C推荐给用户C。 具体代码在 ltd.newbee.mall.recommend.core.ItemCF 中。

2.2 中文分词

商城添加RedisSearch搜索,支持中文分词搜索,推荐、新品、价格排序搜索

  1. 添加RedisSearch测试用例
  2. 后台添加RedisSearch同步按钮
  3. 商城支持RedisSearch中文分词搜索

2.3 依赖集成、升级

  1. 集成tianai-captcha滑块验证码,支持后端验证码校验
  2. image.png
  3. 添加 Spring 事件监听机制,解耦下单流程,将下单流程拆解为订单校验、生成订单号、发送事件异步保存订单流程
  1. 集成spring-session-redis,支持分布式部署

2.3 秒杀专区

秒杀功能如下:

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

image.png

image.png

image.png

image.png

秒杀专区为用户展示了后台设置的秒杀商品,在秒杀有效期内可以进行商品秒杀操作。


三、在线截图

image.png

image.png

image.png

总结

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

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

本文正在参加「金石计划」



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
12月前
|
Prometheus 监控 Cloud Native
如何推广你的开源项目?
如何推广你的开源项目?
148 0
|
3月前
|
编解码 测试技术 开发工具
绘梦有形,快手开源「可图 Kolors」,等你来玩
近期,快手开源了名为Kolors(可图)的文本到图像生成模型,该模型具有对英语和汉语的深刻理解,并能够生成高质量、逼真的图像。
|
12月前
|
Cloud Native Linux Go
开源项目的资金来源:捐赠、赞助与商业模式
开源项目的资金来源:捐赠、赞助与商业模式
249 0
|
消息中间件 机器学习/深度学习 人工智能
中国科协发布 2021 开源创新榜,阿里巴巴 2 大开源社区、5 大开源项目上榜
3 月 8 日消息,日前,中国科协正式发布 2021“科创中国”开源创新榜单,推选出 50 项年度优秀开源产品及相关机构。
中国科协发布 2021 开源创新榜,阿里巴巴 2 大开源社区、5 大开源项目上榜
|
前端开发 JavaScript 安全
阿里淘系优质开源项目推荐(下)
开源推动着互联网技术的发展。多年来,阿里巴巴淘系技术一直积极拥抱开源事业,无论是开源软件的应用、回馈以至自研技术的开源都非常活跃,近两年我们更是开源了MNN、飞冰ICE、3D-FUTURE & 3D-FRONT 等项目,在开源社区中,也获得了广泛开发者的支持和使用。 还记得《阿里淘系优质开源项目推荐(上)》文末的问题吗?你知道淘系还有哪些开源项目?大家的留言橙子也看到了~现在就来揭晓正确答案。(文末有惊喜!!!)
阿里淘系优质开源项目推荐(下)
|
机器学习/深度学习 移动开发 前端开发
阿里淘系优质开源项目推荐
开源推动着互联网技术的发展。多年来,阿里巴巴淘系技术一直积极拥抱开源事业,无论是开源软件的应用、回馈以至自研技术的开源都非常活跃,近两年我们更是开源了MNN、飞冰ICE、3D-FUTURE & 3D-FRONT 等项目,在开源社区中,也获得了广泛开发者的支持和使用。 为了让开发者们更好的应用到自己的项目中,橙子对淘系新兴和经典开源项目做了一次汇总,另附视频讲解及文章介绍,以供大家学习参考。(文末有惊喜!!!)
阿里淘系优质开源项目推荐
|
传感器 人工智能 Oracle
云+社区技术沙龙丨解析腾讯最新开源项目背后的技术栈
云+社区技术沙龙丨解析腾讯最新开源项目背后的技术栈
云+社区技术沙龙丨解析腾讯最新开源项目背后的技术栈
|
SQL 小程序 JavaScript
美团 5 大最受欢迎的开源项目,牛批!
美团 5 大最受欢迎的开源项目,牛批!
551 0
|
NoSQL druid Dubbo
阿里巴巴,排行前10的开源项目
FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
459 0
|
前端开发 Dubbo JavaScript
阿里开源项目
阿里开源项目
543 0