# spzx-parent **Repository Path**: spring-tree-bee/spzx-parent ## Basic Information - **Project Name**: spzx-parent - **Description**: 本项目是一个 b2c 模式的电子商务平台,包含后台管理系统和前台用户系统。项目采用前后端分离开发模式,基于 SpringBoot+SpringCloud 微服务架构,集众多主流技术于一身。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-21 - **Last Updated**: 2024-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电子商务平台 此项目是一个B2C模式的电子商务平台,包含后台管理系统和前台用户系统。项目采用前后端分离开发模式,基于SpringBoot + SpringCloud微服务架构,集众多主流技术于一身,是一款最适合新手入门的企业级项目。 **后台管理系统功能**:平台管理员用来维护系统相关的基础数据。包含用户登录、权限管理、商品管理、商品分类管理、商品规格管理、订单管理等 后台系统的架构 ![输入图片说明](imagesimage1.png) 后台登录 前端将用户名和密码、验证码作为参数请求登录接口,登录接口实现流程为:首先在Redis中检验验证码,通过后使用用户名在数据库中查出该用户的用户信息,然后拿传入的密码加密后进行匹对(因为是MD5加密不可以解密),匹对成功后将生成一个token作为key,用户信息作为value存入Redis中。 ![后台登录](imagesimage-20240322011613489.png) 除了登录接口和验证码接口外,其余访问后台接口的请求都会被自定义拦截器拦截。在拦截器中,首先检验请求是否带有token,如果有token,再以token为key检验能否在Redis中查出用户信息,若查出用户信息,则将会把信息JSON序列化存入TheadLocal中,实现同一个线程的所有接口的用户信息共享。 在进入后台系统后,将会根据登录用户的权限进行路由菜单的查询,将用户所具有的路由菜单返回给前端进行动态路由,实现权限菜单的显示。用户模型是标准的RBAC模型。后台大多数管理接口都是普通的增删改查,对于用户则具有分配角色功能,角色有分配菜单(权限)功能。 ![输入图片说明](image2.png) 对于商品分类的管理接口的编写,还要考虑到分类下的子分类。本项目固定三层分类结构,但也是用了递归进行子分类挂载到父分类上。 ![输入图片说明](image3.png) **前台用户系统功能**: 包含首页数据显示,分类显示、查询商品数据、用户注册登录、购物车模块、订单模块等 前台系统的架构 ![输入图片说明](image4.png) 前台登录 前台的登录实现思路跟后台的差不多,但TheadLocal和拦截规则是采用注解的形式进行注入,配置了Gateway网关进行请求的负载均衡和请求的过滤,将属于api前缀的接口进行拦截校验是否存在token。 ![输入图片说明](image5.png) 前台注册 前台注册用到了阿里云的短信功能,防止恶意刷接口导致数据库性能变差。实现流程:获取前端数据后,先进行用户名(手机号)的查重,然后根据用户去Redis中获取验证码(当用户点击发送验证码后将会把验证码缓存到Redis中,key为用户名),接着进行验证码的校验,校验成功后即可添加用户,最后将Redis中的缓存清除,注册完后就跟登录接口一样将token存入到Redis中。 ![输入图片说明](image6.png) 主页面和其他页面就简单的做一些条件查询进行商品的显示。 ![输入图片说明](image7.png) 此项目也基于一般电商平台将商品SPU和SKU,每一类商品就是一个SPU,每一类商品里有着不同的规格称为SKU,当用户点击商品后可以选择SKU然后将对应的SKU信息放入购物车,也可以直接单个购买跳转到订单页面,也可以点击购物车的支付跳转到订单页面,最后用到了阿里巴巴提供的支付宝接口进行支付,支付后相应的订单状态信息,库存等将会对应更改。 ![输入图片说明](image8.png) ![输入图片说明](image9.png)