# sa-cloudDemo **Repository Path**: zhangqiao24/sa-cloudDemo ## Basic Information - **Project Name**: sa-cloudDemo - **Description**: 用来构建使用sa-token的微服务快速开发项目 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-04-26 - **Last Updated**: 2025-07-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sa-cloudDemo ## 项目介绍 现在,这个项目的大致功能已经完成了。简单介绍一下这个项目的大致功能。 这个项目是一个B2C的商城项目,目前主要分为两个端,前台的用户端和后台的管理端。 需要注意的是,这两个端是两个不同的项目,但是他们使用同一个前端项目。 这是一个基于springcloud和spring cloudAlibaba为支撑的一个微服务项目, 使用到了sa-token作为这个项目的安全框架,使用vue3作为前端开发。 使用mybatis-plus作为数据库操作框架,使用redis作为项目的缓存,使用nacos作为注册中心和配置中心。 使用minio存储文件,使用docker部署用到的组件,前端用到的技术有vue3,element-plus,axios,echarts,route等。 技术栈版本:jdk17 springboot3.1.5 springcloud2022.0.2 mysql8.0.30 vue3 ## 功能介绍: 1. 用户端: - 用户注册登录 - 用户信息管理 - 查看商品 - 加入购物车 - 清空购物车 - 立即购买商品 - 订单管理 2. 后台管理端: - 后台人员管理 - RBAC的权限管理 - 商品管理 - 订单管理 - 日志管理 项目的大致功能介绍就这些,下面介绍一下项目的大致架构。 项目的大致架构图如下: ![img.png](img.png) 项目的功能演示: 前台的用户端: ![img_1.png](img_1.png) 用户可以选择登录或者注册,也可以直接查看商品。但是用户需要登录之后才能使用购物车功能。和下单功能 用户登录之后就可以查看自己的个人信息,可以修改密码和头像。 ![img_2.png](img_2.png) 还可以根据自己的邮箱来找回密码。 购物车功能: - 用户可以将商品加入购物车,查看购物车 ![img_3.png](img_3.png) 用户可以选择清空购物车,也可以选择立即购买商品。 ![img_4.png](img_4.png) 由于是个人项目,所以没有导入支付功能,只是简单的模拟了一下支付 用户可以根据自己的需求来查看订单信息。 可以根据需要搜索商品,也可以直接点击一级分类来查看商品。 后台管理端 需要访问/login来登录,默认的用户名和密码 张乔 123456 (这里只允许用户登录,不允许注册。后台的账号只能由相应权限的账号来创建) ![img_6.png](img_6.png) 登录之后就可以看到后台的页面了。 张乔用户拥有所有权限,可以查看所有的数据。 ![img_7.png](img_7.png) 登录的人员可以查看自己的个人信息,修改密码和头像。 后台管理是基于RBAC模型看来设计的。权限(或者叫菜单也是动态的) 点击系统管理,可以看到所有的权限、用户和角色。(当然这里还可以将权限进行进一步的细分。(如增加、修改、删除功能等)) ![img_8.png](img_8.png) 这个进行系统权限的修改时,一定要谨慎。因为所有的角色、权限和用户都会受到这个修改的影响。 商品管理: 可以查看商品的分类,品牌的分类,商品的信息。以及对商品进行一些操作。 ![img_9.png](img_9.png) 你在这个系统下做的所有操作都可以反馈到前台用户端。(使用同样的商品数据库) 订单管理: 这个管理可以查看用户的订单信息,可以对订单进行修改。 在前端引入了echarts,可以查看用户的订单情况。 ![img_10.png](img_10.png) 最后是日志管理: 可以查看用户的操作日志。 ![img_11.png](img_11.png) 日志的实现是在后端使用AOP来记录用户的操作。并存放在数据库中。 至此,项目的大致功能介绍就这些。 注意,我使用了邮件来代替手机号来找回密码。 所以,需要自己配置一下邮箱。 我的项目中,使用的是qq邮箱。在公共模块中引入了mail的依赖。 但是由于我每一个模块都要使用到mail,所以我把公共模块的配置文件放在了nacos中。 你启动项目的时候,需要配置一下mail的邮件配置。。。。。。。。。。 本项目还有很多可以改进的地方。但都不影响功能的使用。 如使用seata保证分布式事务的一致性。 使用sentinel做限流处理 使用es改进商品搜索的性能优化 使用消息中间件RabbitMQ等做异步优化。 使用链路追踪监控整个微服务。。。。。 在此说明,本人是一个后端开发,前端用的很少。 所有项目中的前端页面可能看起来很丑,但是功能是有的。 如果有什么建议,欢迎提出。