複製倉庫:使用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 檔案供下載。
查詢課程分類:課程分類資訊「懶加載」 展示。
新增課程:填入課程必要訊息,選擇課程分類訊息,上傳課程封面。
刪除課程
編輯課程
查詢課程:可依課程分類資訊、課程名稱以及課程講師資訊查詢課程。
課程訪客統計
編輯課程大綱:一門課程下有多個章節,一個章節包含多個小節,一個課程小節對應一份課程影片。
新增課程章節
上傳課程小節影片:選擇課程小節視頻,上傳到騰訊雲視訊點播平台。
發布課程:將課程修改為已發布狀態。
新增優惠券
刪除優惠券
編輯優惠券
優惠券詳情:展示優惠券及已使用的優惠券資訊。
加入公眾號選單
修改公眾號選單
同步公眾號選單:同步公眾號選單後最新的選單資訊將同步到微信公眾號。
公眾號選單列表
訂單查詢:根據訂單號碼、手機號碼等資訊查詢使用者的課程訂單資訊。
新增直播
刪除直播
編輯直播
直播配置
直播帳號
關注公眾號
關於我子選單
關鍵字查詢課程
課程分類子菜單
課程分類列表
課程詳情
課程影片播放
購買課程
兌換優惠券
不可用優惠券
可用優惠券
模擬訂單支付
課程購買成功
支付訊息推播
MIT License
Copyright (c) 2023 Spring-_-Bear
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.