# edu_xujinqiang **Repository Path**: gitxjq/edu_xujinqiang ## Basic Information - **Project Name**: edu_xujinqiang - **Description**: 许金强小组 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-27 - **Last Updated**: 2024-11-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

小组分配

注册,登录


负责人:刘鹤

业务流程及技术点:

手机号进行登录:
用户在登录页面输入手机号和密码,前端将用户输入的手机号和密码发送到后端进行验证,后端验证手机号和密码的正确性,如果验证通过则生成并返回一个身份令牌,前端接收到令牌后,将其保存到本地。
第三方进行登录:
用户在登录页面选择使用qq或者微信进行登录,前端触发相应的第三方登录流程,
通常会跳转到第三方登录页面进行授权认证,用户在第三方登录页面进行授权操作,同意应用获取其信息,
第三方登录服务返回授权凭证给前端,前端将凭证发送到后端进行验证,
后端验证凭证的有效性,并根据第三方返回的用户信息生成并返回一个身份验证令牌给前端,
前端接收到令牌后,同样将其保存在本地。
注册:
1.用户填写注册信息:
用户在注册页面输入手机号、图形验证码、短信验证码和密码等注册信息。
2.校验图形验证码:
前端将用户输入的图形验证码发送到后端进行验证。
后端验证图形验证码的正确性,通常会使用验证码库或者生成的方式对图形验证码进行验证。
3.发送腾讯短信验证码:
后端接收到手机号后,向腾讯短信平台发送短信验证码请求。
腾讯短信平台发送验证码到用户填写的手机号上。
4.校验腾讯短信验证码:
用户在注册页面输入收到的短信验证码。
前端将用户输入的短信验证码发送到后端进行验证。
后端验证短信验证码的正确性,确保与腾讯短信平台发送的验证码一致。
5.注册用户:
如果所有信息校验通过,后端将用户的手机号和密码等信息保存到数据库中,并返回注册成功的提示给前端。

首页(轮播图,课程)


负责人:刘富

业务流程及技术点:

1.后台添加轮播图: 后台管理系统新增轮播图模块,可以对页面轮播图进行添加和删除(需要进行图片上传)
2.前台展示轮播图: 首页面轮播图可随意切换,主要是以swiper轮播插件实现
3.最新课程列表: 主要是通过redis中的list获取最新课程的前4个(更具最新的课程创建时间进行判断)
4.查看全部课程: 查看全部课程用solr或者es做复杂查询,比如分页排序,全文检索。好评升序降序,销量升序降序之类的

课程详情(课程介绍和课程大纲),视频播放(阿里云播放器)


负责人:袁子蔚

业务流程及技术点:

1.课程大纲:,前面几节课可以设置成免费试听,后面的付费后才能观看,视频要加密并且加水印播放,保护咱们的版权
2.阿里云视频的弹幕功能: 需要进行一些开发工作,主要涉及到与阿里云视频相关的API调用和前端页面交互
3.集成阿里云视频SDK:首先,在我的Java项目中,我需要集成阿里云视频的SDK,这样才能够通过Java代码与阿里云视频进行交互。我可以在阿里云官方 网站或者开发者文档中找到相应的SDK和使用教程。了解阿里云视频的API和SDK,并编写对应的后端和前端代码
4.课程大纲:通过list查询章节和课时的所有数据返回tree树给前端页面,购买后的视频更改权限,让他能够正常观看

课程评论列表,讲师详情


负责人:刘铮

业务流程及技术点:

1.课程评论列表: 在总体页面右边使用一个div包装一个template里面包装三个按钮,分别是好评、中评、差评按钮,
点击对应按钮根据对应评论id,以及课程数据等等传递到后端,方法判断后查询内容,并映射到前端,展示对应的评论内容
学生在课程详情页面查看课程信息后,可以选择提交对该课程的评论。评论内容可能包括对课程内容、
教学质量、教师表现等方面的评价。我会继续添加一个发布评论的按钮和text文本框,
用来发布评论以及选择发布的是好评,还是中评,还是差评。并做判断,只有购买了课程的用户才能发布评论。
2.讲师详情: 首先根据id查询所有讲师内容并映射到前端,基本信息展示,展示讲师的基本信息,包括姓名、照片、联系方式等
然后映射讲师对应课程有哪些,用户点击讲师课程跳转课程详情页面

购买流程(生成订单,个人中心),讲师详情


负责人:许金强

业务流程及技术点:

1)支付宝扫码支付生成订单(沙箱支付): a. 用户在前端页面选择商品,填写相关信息后发起生成订单请求。
b. 后端接收到生成订单请求后,使用MyBatisPlus进行链表查询,获取订单相关信息,并将订单信息持久化到数据库中。
c. 后端返回生成订单成功的消息和支付宝扫描支付的二维码信息给前端页面。
2)个人中心: a. 我的资料:用户可以在个人中心修改密码、默认头像、昵称等信息。
3)我的订单: a. 待支付订单:用户可以查看待支付的订单列表。 b. 已支付订单:用户可以查看已支付的订单列表
4)我的评论,我的弹幕: 查看我的评论: a. 用户在个人中心页面可以查看自己发过的评论列表。
删除评论: a. 用户在个人中心页面可以选择删除自己发过的评论。
修改评论: a. 用户在个人中心页面可以选择修改自己发过的评论。
查看我的弹幕: a. 用户在个人中心页面可以查看自己发过的弹幕列表。
删除弹幕: a. 用户在个人中心页面可以选择删除自己发过的弹幕。
修改弹幕: a. 用户在个人中心页面可以选择修改自己发过的弹幕。

系统整体流程图

![输入图片说明](pic/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2.jpg)

数据库设计

1、课程描述表(edu_course_description) | id | 课程ID | | --- | --- | | description | 课程简介 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 2、章节表(edu_chapter) | 名 | 注解 | | --- | --- | | id | 章节ID | | course_id | 课程ID | | title | 章节名称 | | sort | 显示排序 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 3、讲师表(edu_teacher) | 名 | 注解 | | --- | --- | | id | 讲师ID | | name | 讲师姓名 | | intro | 讲师简介 | | career | 讲师资历,一句话说明讲师 | | level | 头衔1高级讲师 2首席讲师 | | avatar | 讲师头像 | | sort | 排序 | | is_deleted | 逻辑删除1(true)已删除, 0(false)未删除 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 4、订单表(edu_order) | id | id | | --- | --- | | order_no | 订单号 | | course_id | 课程id | | course_title | 课程名称 | | course_cover | 课程封面 | | teacher_name | 讲师名称 | | member_id | 会员id | | nickname | 会员昵称 | | mobile | 会员手机 | | total_fee | 订单金额(分) | | pay_type | 支付类型(1:微信 2:支付宝) | | --- | --- | | status | 订单状态(0:未支付 1:已支付) | | is_deleted | 逻辑删除1(true)已删除, 0(false)未删除 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 5、用户表(edu_acl_role) | 名 | 注解 | | --- | --- | | id | | | role_name | 角色名称 | | role_code | 角色编码 | | remark | 备注 | | is_deleted | 逻辑删除 1(true)已删除, 0(false)未删除 | | edu_create | 创建时间 | | edu_modified | 更新时间 | | role_code | 角色编码 | 6、资源表(edu_acl_permission) | 名 | 注解 | | --- | --- | | id | 编号 | | pid | 所属上级 | | name | 名称 | | type | 类型(1:目录,2:菜单,3按钮) | | permission_value | 权限值 | | path | 访问路径 | | component | 组件路径 | | icon | 图标 | | status | 状态(0:禁止,1:正常) | | is_deleted | 逻辑删除 1(true)已删除, 0(false)未删除 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 7、角色资源中间表(edu_acl_role_permission) | 名 | 注解 | | --- | --- | | id | id | | role_id | 角色id | | permission_id | 资源id | | is_deleted | 逻辑删除 1(true)已删除, 0(false)未删除 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 8、后台用户(edu_acl_user) | id | 会员id | | --- | --- | | username | 微信openid | | password | 密码 | | nick_name | 昵称 | | salt | 用户头像 | | token | 用户签名 | | is_deleted | 逻辑删除1(true)已删除, 0(false)未删除 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 9、支付记录表(edu_pay_log) | id | | | --- | --- | | order_no | 订单号 | | pay_time | 支付完成时间 | | total_fee | 支付金额(分) | | transaction_id | 交易流水号 | | trade_state | 交易状态 | | pay_type | 支付类型(1:微信 2:支付宝) | | attr | 其他属性 | | is_deleted | 逻辑删除1(true)已删除, 0(false)未删除 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 10、轮播图表(edu_banner) | 名 | 注解 | | --- | --- | | id | ID | | title | 标题 | | image_url | 图片地址 | | link_url | 链接地址 | | sort | 排序 | | is_deleted | 逻辑删除1(true)已删除, 0(false)未删除 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 11、课程分类表(edu_subject) | id | 课程类别ID | | --- | --- | | title | 类别名称 | | parent_id | 父ID | | sort | 排序字段 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 12、课程小节表(edu_video) | 名 | 注解 | | --- | --- | | id | 视频ID | | course_id | 课程ID | | chapter_id | 章节ID | | title | 节点名称 | | video_source_id | 云端视频资源 | | video_original_name | 原始文件名称 | | sort | 排序字段 | | play_count | 播放次数 | | is_free | 是否可以试听:0收费 1免费 | | duration | 视频时长(秒) | | status | Empty未上传 Transcoding转码中 Normal正常 | | size | 视频源文件大小(字节) | | version | 乐观锁 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 13、前台用户表(会员表)(edu_member) | id | 会员id | | --- | --- | | openid | 微信openid | | email | | | mobile | 手机号 | | password | 密码 | | nickname | 昵称 | | sex | 性别1 女,2 男 | | age | 年龄 | | avatar | 用户头像 | | sign | 用户签名 | | is_disabled | 是否禁用1(true)已禁用, 0(false)未禁用 | | --- | --- | | reason | | | is_deleted | 逻辑删除1(true)已删除, 0(false)未删除 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 14、课程表(edu_course) | 名 | 注解 | | --- | --- | | id | 课程ID | | teacher_id | 课程讲师ID | | subject_id | 课程专业ID-二级分类 | | subject_parent_id | 课程专业父级ID-一级分类 | | title | 课程标题 | | price | 课程销售价格,设置为0则可免费观看 | | lesson_num | 总课时 | | cover | 课程封面图片路径 | | buy_count | 销售数量 | | view_count | 浏览数量 | | version | 课程状态Draft未发布 Normal已发布 | | status | 逻辑删除1(true)已删除, 0(false)未删除 | | is_deleted | 创建时间 | | edu_create | 更新时间 | | edu_modified | 课程状态Draft未发布 Normal已发布 | 15、后台用户角色中间表(edu_acl_user_role) | 名 | 注解 | | --- | --- | | id | id | | role_id | 角色id | | user_id | 用户id | | is_deleted | 逻辑删除1(true)已删除, 0(false)未删除 | | edu_create | 创建时间 | | edu_modified | 更新时间 | 16、评论表(edu_comment) | id | 讲师ID | | --- | --- | | course_id | 课程id | | teacher_id | 讲师id | | member_id | 会员id | | nickname | 会员昵称 | | avatar | 会员头像 | | content | 评论内容 | | is_deleted | 逻辑删除1(true)已删除, 0(false)未删除 | | edu_create | 创建时间 | | edu_modified | 更新时间 |

预计多长开发周期:3周