简介
本项目是在newbee-mall项目的基础上改造而来, 使用mybatis-plus,集成RedisSearch作为商城搜索中间件,商城首页集成tianai-captcha作为滑块验证码,还添加了高级秒杀、优惠劵以及完善可用的后台全部功能,喜欢的话麻烦给我个star
- 商城集成RedisSearch中文分词搜索,支持商品名称、简介、标签作为搜索项,以及新品、价格排序
- 首页使用滑块验证码登录
- 集成Pace页面,添加网页进度条
- 前台添加了秒杀专区,可以购买秒杀商品
- 前台添加了优惠卷领取页面,再订单结算页面可以选择优惠卷使用
- 支付时添加了支付宝沙箱支付
- 后台管理模块添加了优惠卷管理、秒杀管理,统计分析
- 添加Spring事件监听机制,解耦下单流程
- 集成spring-session-redis,支持分布式部署
- 本项目秉持原作者简单易用的原则,代码书写清晰,注释完整,便于新人理解,快速上手
- 多数据源配置在Springboot2.7分支,通过jta和seata支持分布式事务
- 本项目源码
- 在线地址
2023年1月2日更新日志
- newbee-mall V2.4.0发布
- Springboot版本升级至3.0.1
- Mybatis plus升级至3.5.2支持Springboot3.0
2022年11月17日更新日志
newbee-mall V2.3.0发布
功能更新:
- Springboot版本升级至2.7.5,jdk升级至17
- 使用switch表达式语法扩展,优化switch语句
- 使用instanceof类型匹配语法简化,直接给对象赋值
- 使用文本块优化现有lua脚本显示
- 添加@Serial注解表示序列化字段和方法
- 代码优化,删除无用导入
- 升级项目依赖
bug修复:
- 修复优惠券使用bug
2022年9月04日更新日志
newbee-mall 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 ,与tinyMCE比较
- 添加站点演示模式,通过拦截器对不允许操作的后台路径进行错误提示处理
- 升级pom文件部分依赖
2021年1月14日 秒杀接口升级
本次升级主要在原有秒杀功能的基础上进行了完善,秒杀优化如下:
- 秒杀页面静态化
- 添加了秒杀接口限流,基于springAOP实现
- 添加了秒杀接口防止重复提交,基于spring拦截器实现
- 使用令牌桶算法过滤用户请求
- 使用redis-set数据结构判断用户是否买过秒杀商品
- 使用redis配合lua脚本进行原子自减,判断商品缓存库存是否大于0
- 获取商品缓存,判断秒杀商品是否再有效期内
- 执行存储过程(减库存 + 记录购买行为)
- 使用redis-set数据结构记录购买过的用户
- 返回用户秒杀成功VO
- 下单后启用秒杀订单5分钟未支付超期任务
- 订单5分钟内未支付则自动取消订单并回退库存
开发部署
# 1. 克隆项目
git clone git@github.com:wayn111/newbee-mall.git
# 2. 导入项目依赖
将newbee-mall目录用idea打开,导入maven依赖
# 3. 安装Mysql8.0+、Redis3.0+(RediSearch2.0+)、Jdk8+、Maven3.5+
# 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
这里推荐另一套H5商城项目, waynboot-mall 是一套全部开源的微商城项目,包含一个运营后台、h5商城和api接口。
实现了一个商城所需的首页展示、商品分类、商品详情、sku详情、商品搜索、加入购物车、结算下单、订单状态流转、商品评论等一系列功能。
技术上基于Springboot2.0,整合了Redis、RabbitMQ、ElasticSearch等常用中间件,
贴近生产环境实际经验开发而来不断完善、优化、改进中。
在线地址:http://82.157.141.70/mall
在线截图
商城首页 | 商品搜索 |
---|---|
购物车 | 订单结算 |
订单列表 | 支付页面 |
分类管理 | 会员管理 |
优惠劵管理 | 商品管理 |
秒杀管理 | 订单管理 |
秒杀专区
秒杀专区为用户展示了后台设置的秒杀商品,在秒杀有效期内可以进行商品秒杀操作. 秒杀接口使用了接口限流、Redis以及储存过程提高秒杀操作的tps
优惠劵领取
优惠劵页面为用户展示了后台设置的可用优惠劵,在下单时可以使用优惠卷减少下单金额
商城15天交易额统计
商城15天交易额统计可以为商城运营人员展示商城近期总交易金额
感谢
- newbee-mall 项目原作者十三提供的基础项目支持
参考资料
推荐一下本人的后台权限管理系统 ,集成了消息通知,任务调度,代码生成等常用功能,易于上手,学习,使用二次开发
后话
本人之前一直是在传统公司上班,接触的都是政企项目,公司各系统业务繁多数据库表设计复杂,多是业务逻辑庞大使用技术也都不算新, 算是j2ee时代的遗留产物,鉴于现在springboot、微服务、中间件等等风生水起, 又因本人对商城系统情有独钟,因此打算先用springboot搭建一个商城系统,刚好发现了newbee-mall项目 ,就在此项目的基础上添加了一些自己没有接触过的新功能,一起进步。