项目启动
- 启动Nacos
- 启动Nginx
- 启动SpringBoot各个微服务模块
- 打开前端项目,选择在终端中打开,输入指令npm run dev
后台管理系统
登录页面与首页


教师管理模块
教师列表

添加教师

编辑教师

课程分类模块
-
添加课程分类
- 读取excel里的课程分类数据,添加到数据库中(easyexcel)

- 读取excel里的课程分类数据,添加到数据库中(easyexcel)
-
课程分类列表显示
- 使用树形结构显示课程分类列表

- 使用树形结构显示课程分类列表
课程管理模块
-
课程列表功能

-
添加课程
- 课程发布流程:
-
填写课程信息

-
添加课程大纲

-
课程信息确认

-
最终课程发布
-
- 课程发布流程:
-
视频上传功能

课程如何判断是否已经发布了?
- 根据数据库中status字段来判断
- 点击确认发布后,status会改成已发布状态
课程添加后没有最终发布,如果找到之前的课程继续发布?
- 课程列表中筛选未发布课程编辑课程信息
统计分析模块
-
生成统计数据

-
统计数据图表显示

前台用户系统
首页数据显示
- 显示幻灯片功能


- 热门课程以及名师显示


用户注册
- 获取手机验证码(阿里云短信服务)

用户登录

- 普通登录
- SSO(单点登录)
使用token实现
token生成方式(JWT)
JWT由三部分组成
- 头信息
- 有效载荷(包含主体信息,用户信息)
- 签名哈希,防伪标志
- 登录调用接口返回token字符串
- 把返回token字符串放到cookie里面
- 创建前端拦截器进行判断
- 如果cookie里面包含token字符串,把token放到header里面
- 根据token获取用户信息(调用接口)
- 把用户信息放入cookie进行显示
- 微信扫码登录
OAuth2
针对特定问题的解决方案
主要有两个问题:开放系统间授权,分布式访问问题
- 如何获取扫码人的信息(实现过程)
- 扫描之后,执行本地的callback方法,在callback获取两个值,在跳转的时候传递
- state:原因传递
- code:类似手机验证码,随机唯一的值
- 拿着第一步获取到的code值,请求微信提供固定的地址,获取到两个值
- access_token:访问凭证
- openid:每个微信唯一标识
- 拿着之前获取到的两个值,再去请求一个微信提供的固定地址,最终可以获取到微信扫描人的信息(头像,昵称)
教师列表功能

教师详情功能

课程列表功能
- 条件查询
- 分页

课程详情功能
- 课程信息的显示(包含课程基本信息,分类,讲师,课程大纲)
- 判断课程是否需要购买

课程视频在线播放

课程支付功能(微信支付)
- 生成课程订单
- 生成微信支付二维码
- 微信最终支付
微信支付实现流程
- 如果课程是收费课程,点击立即购买,生成课程订单
- 点击订单页面去支付,生成微信支付二维码
- 使用微信扫描二维码实现支付
- 支付之后,每隔三秒查询支付状态(是否支付成功),如果支付成功,更新订单状态(已经支付状态),向支付记录表中添加支付成功记录



2332

被折叠的 条评论
为什么被折叠?



