# yiran_springcloud_vue **Repository Path**: suzhoukk_git/yiran_springcloud_vue ## Basic Information - **Project Name**: yiran_springcloud_vue - **Description**: 基于springcloud、vue、SpringBoot、Redis 、RabbitMQ、Websocket 、ElasticSearch的电商项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 2 - **Created**: 2024-05-31 - **Last Updated**: 2025-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 1. 项目技术栈 `JDK1.8、Mybatis-plus、SpringBoot2、SpringCloud(Alibaba)、RabbitMQ、Redis、JWT、沙箱环境支付、阿里云短信服务、阿里云OSS对象存储、Elasticsearch7、Vue、axios` ## 2. 项目描述: >“依然在线商城”本项目属于B2C电商模式,运营商将自己的产品发布到网站上,用户注册后,可以浏览、搜索商品,可以将商品加入购物车并下单,用户还可以参加秒杀与抢购,前后端分离模式(商品服务、订单服务、秒杀服务、文件上传服务) > >(1)用户注册、登录、退出登录; > >(2)首页商品模糊查询; > >(3)多级菜单查看商品分类,品牌分类; > >(4)商品列表多条件筛选; > >(5)查看商品详情商品评价以及收藏商品; > >(6)商品添加购物车选择支付; > >(7)下单确认收货地址,确认订单,支付订单,订单超时自动取消; > >(8)订单管理; > >(9)优惠券秒杀,优惠券管理; > >(10)用户个人信息,头像上传到第三方云服务器; > > ## 3. 主要功能 #### **(1) 注册登录** > 1、这里使用的RSA+AES加密,全程保证保证用户的信息安全。 > 2、短信登录注册调用阿里云短信验证API,加入redis技术,将验证码放进redis五分钟,并且设置一分钟内不能再次获取验证码。 > 3、JWT单点登录、用户登录时,如果登录成功,后台返回用户信息token,前端将token保存到cookie中,axios请求拦截器会在每次请求时,将cookie中的token 放在head中,所有请求均经过网关,网关会根据token校验权限,如果用户未登录,获取token非法,或者token过期,会返回错误码。如果token校验通过,则将token中的信息解析出来,将用户id放进token中,下发到下游服务 > > ![](img/1.png) #### **(2) 主页** **使用了Redis热商品加载、多级菜单、品牌分类、ElasticSearch高亮搜索, ELK同步数据** ![](img/2.png) ![](img/3.png) #### **(3) 商品服务** **查看商品进行选购。也可查看商品详情,且可多条件查询商品,根据喜好来选择自己喜欢的商品。** ![](img/4.png) ![](img/5.png) #### **(4) 收藏模块** ​ 首先判断用户是否登录,未登录会被拦截到登陆页面,已登录先判断用户是否已经收藏,若已收藏,点击则会取消收藏,点击我的收藏,可以看到用户已经收藏的所有商品。 ![](img/6.png) #### (5) 优惠券模块 ​ 优惠券领取页面将可抢的优惠券加载到Redis缓存中设置过期时间24小时,用户抢优惠券时采用Redis分布式锁增加已领取优惠券的数量防止优惠券超发, ​ 然后数据库更新,数据库生成用户优惠券。采用RabbitMQ延时队列以及定时任务设置未使用的优惠券到期自动过期。 ![](img/7.png) ![](img/8.png) #### (6) 购物车模块 ​ 用户选购商品后加入购物车,在购物车中来选择批量结算或者单条结算。也可选择是否使用优惠券。 ![](img/9.png) #### (7) 订单提交模块 ​ 用户在提交订单前选择收获地址并提交订单。调用远程接口查询是否使用优惠券,并计算优惠后的金额,创建订单,扣减库存Redis分布式锁,删除购物车 ![](img/10.png) ![](img/11.png) #### (8) 订单支付模块 ​ 在提交订单后同时发送延时消息(订单号)RabbitMq。2分钟过后若订单未支付,则自动取消订单,恢复库存。若两分钟内支付,调用支付宝支付接口,同步回调跳转页面,异步回调处理业务逻辑(发送订单已完成的消息)。此时,订单模块收到支付成功消息。创建流水,修改订单状态。 ![](img/12.png) ![](img/13.png) #### (9) 个人中心订单状态模块 前端订单管理可以查询所有订单信息。且可分类查看(全部、待付款、待发货、待收获、已完成)订单、支付订单、收货订单。 ![](img/14.png) ![](img/15.png)