开发时间 | Spring Cloud | Vant | ElementUI | 开源项目 |
---|---|---|---|---|
22/10/17 - 22/11/04 | Hxton | 2.6.11 | 2.13.2 | atguigu-course |
克隆仓库:使用 Git 克隆仓库或直接下载仓库压缩包到您的计算机来获取源代码。
打开工程:使用 IntelliJ IDEA 开发工具打开 course-server 后端服务系统模块,而后使用 Maven 项目构建工具更新工程模块依赖。
创建数据库并导入数据:登录 MySQL 控制台,依据 document/sql 目录下的 7 个 SQL 脚本文件创建七个数据库,并导入数据库表和数据。
修改配置:
可选配置:
course-server/service/service-live/**/application.properties:修改 欢拓云 直播平台配置信息,若不修改则后台管理系统(course-backend)中直播课程相关的 CRUD 功能异常。
course-server/service/service-user/**/application.properties:修改 微信公众号测试号 的应用 ID 信息和应用密钥以及用户同意授权个人信息后的回调地址。
注意此回调地址需为公网地址才能被微信平台识别,并且需要在微信公众号测试号中配置网页账号授权回调页面域名,详见 1.4。 若不修改则手机端微信公众号中的相关功能均不可用。
course-server/service/service-vod/**/application.properties:修改 腾讯云对象存储 的存储空间信息和 腾讯云视频点播 服务的应用 ID 信息。若不修改则腾讯云相关图片存储服务不可用,课程小节视频不能上传和查看。
course-server/service/service-wechat/**/application.properties:修改微信公众号测试号的配置信息以及接口配置信息,并且需要在微信公众号测试号中填写接口配置信息,详见 1.4。 若不修改则手机端微信公众号一切功能异常。同时还需要修改微信公众号页面的服务器地址,也即 course-mobile 项目的部署地址,此地址需为公网地址以供微信后台调用,若不修改则微信公众号中的查看课程信息功能异常,不能跳转到任何页面。
注:service-user 和 service-wechat 中用到的公网域名地址可通过配置内网穿透的方式实现,具体可参看 Ngrok 内网转发工具。具体来说,需要配置两个内网穿透地址:
工程名 | 子模块 | 端口 | 内网穿透地址 |
---|---|---|---|
course-server(后端服务系统) | |||
gateway | 8888 | http://course.5gzvip.91tunnel.com | |
service-vod | 8081 | ||
service-order | 8082 | ||
service-activity | 8083 | ||
service-user | 8084 | ||
service-wechat | 8085 | ||
service-live | 8086 | ||
course-mobile(移动应用系统) | 8080 | http://mobile.vipgz4.91tunnel.com | |
course-backend(后台管理系统) | 9528 |
启动 Nacos 服务:进入 Nacos 安装目录下的 bin 目录,在控制台以 startup.cmd -m standalone 命令以单机模式启动 Nacos 服务。
启动后端服务系统:在 IDEA 中批量启动所有后台服务,包括一个网关(gateway)和六个业务服务(service-*)。
注:请确保 1.1 后端服务系统 中的一个网关和六个业务服务正常启动以提供正常的接口功能。
注:请确保 1.1 后端服务系统 中的一个网关和六个业务服务正常启动以提供正常的接口功能。
申请 微信公众号测试号,在微信公众号测试号中配置网页账号授权回调页面域名。
配置公众号测试号的接口配置信息,只需要修改公网域名部分即可,即修改 course.5gzvip.91tunnel.com 为你自己的公网域名。
在后台管理系统中同步公众号菜单信息。
关注公众号并在手机端测试公众号的相关功能。
系统整个网络穿透配置和请求响应流程如下图:
硅谷课堂是尚硅谷与腾讯云官方合作推出的项目,是一款基于微信公众号 B2C 模式的在线学习平台,该平台包含三大模块:直播、教学与微信消息服务。
平台会定期推出直播课程,方便学员与名师之间的交流互动,学员也可以购买教学视频在线学习,分享直播与教学视频获取平台收益。平台支持直播、腾讯云视频点播、微信支付、微信授权登录、微信菜单、微信消息与腾讯云文件存储等一系列功能,为学员构建了一个全方位的在线学习平台。
硅谷课堂项目具有很强的实用性,业务场景贴近实际,技术应用紧跟市场潮流,完全按照市场需求开发。既是对主流 Java 技术的系统性梳理和整合,同时也是各种主流技术实际应用的练兵场,能够帮助 Java 程序员积累项目经验。
course-backend -- 父工程,统一依赖管理
├── client -- 客户端,通过 Spring Cloud Feign 提供服务
├── activity -- 营销活动相关服务
├── order -- 订单 api 接口
├── user -- 用户 api 接口
├── vod -- 课程点播 api 接口
├── common -- 通用模块
├── model -- 通用数据模型
├── util -- 通用工具类
├── gateway -- 服务网关,统一管理各种 service 服务,解决跨域问题
├── service -- 提供服务,为前后台提供具体服务
├── live -- 营销活动相关服务
├── model -- 直播课程相关服务
├── order -- 订单相关服务
├── user -- 用户相关服务
├── vod -- 课程点播相关服务
├── wechat -- 微信公众号相关服务
技术 | 说明 |
---|---|
Spring Boot | Spring 快速开发脚手架 |
Spring Cloud Gateway | Spring 网关 |
Spring Cloud Alibaba Nacos | 微服务注册中心 |
Spring Cloud Feign | 远程服务调用 |
MyBatis Plus | ORM 框架 |
MySQL | 关系数据库 |
Easy Excel | Java excel 操作工具 |
Swagger | 项目文档生成工具 |
JWT | 跨域认证解决方案 |
Lombok | 简化 POJO 类开发 |
Vue.js | JavaScript 框架 |
Axios | 请求库 |
ElementUI | 桌面端组件库 |
Vant | 移动端组件库 |
腾讯云对象存储 | 对象存储 |
腾讯云视频点播 | 视频点播 |
欢拓云直播 | 视频直播 |
微信公众号 | 公众号 |
管理员登录页
管理员欢迎页
新增讲师:填写讲师必要信息,上传讲师头像到腾讯云对象存储平台进行图片保存。
删除讲师
编辑讲师:选定需要编辑的讲师,回显讲师信息,保存后更新讲师信息。
查询讲师:可根据讲师姓名、头衔等信息查询展示讲师。
导入课程分类:选中保存有课程分类的 excel 文件,上传到服务器,由服务器解析并保存课程分类信息。
导出课程分类:选定导出课程分类按钮,由服务器处理课程分类信息并写入 excel 文件供下载。
查询课程分类:课程分类信息 “懒加载” 展示。
新增课程:填入课程必要信息,选择课程分类信息,上传课程封面。
删除课程
编辑课程
查询课程:可根据课程分类信息、课程名称以及课程讲师信息查询课程。
课程访客统计
编辑课程大纲:一门课程下有多个章节,一个章节包含多个小节,一个课程小节对应一份课程视频。
新增课程章节
上传课程小节视频:选择课程小节视频,上传到腾讯云视频点播平台。
发布课程:将课程修改为已发布状态。
新增优惠券
删除优惠券
编辑优惠券
优惠券详情:展示优惠券及已使用的优惠券信息。
添加公众号菜单
修改公众号菜单
同步公众号菜单:同步公众号菜单后最新的菜单信息将同步到微信公众号中。
公众号菜单列表
订单查询:根据订单号、手机号等信息查询用户的课程订单信息。
新增直播
删除直播
编辑直播
直播配置
直播账号
关注公众号
关于我子菜单
关键字查询课程
课程分类子菜单
课程分类列表
课程详情
课程视频播放
购买课程
兑换优惠券
不可用优惠券
可用优惠券
模拟订单支付
课程购买成功
支付消息推送