首行占位

一、项目需求分析,业务逻辑分析

项目需求:

  1.首页展示

  2.用户登录注册

  3.课程展示,课程详情展示

  4.视频播放

  5.添加购物车,购物车调整

  6.创建订单

  7.支付

 

业务逻辑:

  1.进入首页

  2.点击查看课程列表

  3.点击进入课程详情

  4.点击播放视频

  5.未登录则跳转到登录页面,已登录的就检查是否有权限,有权限则进入播放页面,无权限提醒购买

  6.加入购物车,创建订单,支付

 

首页模块

轮播图:接口提供image+link

导航:name+link

 

登录注册

登录:

  基于Django默认提供的认证系统,在项目中引入了JWT认证机制来代替Session机制,将用户的身份凭据存放在Token中,然后对接Django的认证系统,实现登录

  Django REST framework JWT提供了登录获取token的视图,可以直接使用默认的返回值仅有token,为了方便在客户端页面中显示当前登录用户,修改了jwt视图的默认返回值,增加id跟username

  Django认证系统中提供的用户模型类及方法很方便,但无法满足本项目需求,如无保存手机号的字段,所以我们扩展了它提供的用户模型类

 

多条件登录:JWT扩展的登录视图,在收到用户名与密码时,也是调用Django的认证系统中提供的authenticate()来检查用户名与密码是否正确。
我们通过修改Django认证系统的认证后端(主要是authenticate方法)来支持登录账号既可以是用户名也可以是手机号

 

 极验验证:

  1.页面加载向后端请求验证流水号

  2.滑动成功完成,向后端发送滑动结果进行校验,校验成功给前端返回允许点击登录按钮的消息

 

 短信注册:

  1.点击发送短信

  2.将短信保存在redis,并提醒前端发送成功

  3.点击注册,将输入的验证码与redis里面的验证码对比,成功则进行下一步

 

 课程

通过django-filter模块实现课程分类展示,使用drf的排序和分页功能实现课程的分页与排序

 

课程分类:

  默认不分类,显示所有

课程展示:

  展示的课程包含课程分类,课程信息,课程章节,课时信息,老师信息,价格策略这些内容

 详情页:

   CKEditor富文本编辑器,保利威,用户向后端请求token并播放视频

 

视频播放

  使用保利威视频服务平台,来实现收费视频的播放,借助保利威的开发文档

  具体流程是:前端向后端请求视频播放的token,后端验证无误后向前端发送可以获取视频的token,前端拿到token后向保利威获取视频。

 

购物

添加购物车:

  使用Redis,管道(事务)

 

状态更改:

  切换勾选状态和课程有效期

 

移除购物车:

 

订单

生成订单(订单记录与订单详情): 

  用户提交订单,后端进行校验信息,确保课程等信息无误有效,计算真实价格,开始生成订单,使用事务生成订单,成功删除购物车里面的数据,失败回滚操作

 

 支付

步骤:

  1.前端请求支付

  2.后端验证请求支付宝生成支付连接,发送给前端

  3.前端进行支付

  4.支付成功后,支付宝会发送两个请求,get到前端,post到后端,后端进行验证添加购买记录

 

版权声明:本文为yijue-lu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yijue-lu/p/11210790.html