简介
本文给大家举荐博主本人开源的电商我的项目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 我的项目地址:
- 源码地址: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装置RediSearchdocker 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
中。
- UserCF:基于用户的协同过滤。当一个用户A须要个性化举荐的时候,咱们能够先找到和他有类似趣味的其余用户,而后把那些用户喜爱的,而用户A没有据说过的物品举荐给A。
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
滑块验证码,反对后端验证码校验
<img style="width:80%" src="https://files.mdnice.com/user/40549/04e155a9-4e99-46a1-ba61-6816663b3b6b.png">
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我的项目地址:
- 源码地址:https://github.com/wayn111/newbee-mall-pro
- 在线地址:http://121.4.124.33/newbeemall
最初再说一句,感兴趣的敌人能够点赞加关注,你的反对将是我更新能源。