最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

在線學習|基于SpringBoot的在線學習系統(tǒng)的設計與實現(xiàn)

2023-05-15 10:30 作者:指南針畢業(yè)設計  | 我要投稿


項目編號:無

一,環(huán)境介紹

語言環(huán)境:Java:? jdk1.8

數(shù)據庫:Mysql: mysql5.7

應用服務器:Tomcat:? tomcat8.5.31

開發(fā)工具:IDEA或eclipse

二,項目簡介

Online Education系統(tǒng)(簡稱:OE)是一個在線學習系統(tǒng),包含微信公眾號服務和后臺管理系統(tǒng)兩大部分。用戶通過微信授權登錄公眾號,用戶在公眾號上進行查看課程詳情和點播課程在線學習;用戶也可以分享教學視頻和公眾號。在線學習系統(tǒng)支持阿里云視頻點播、微信授權登錄、微信菜單、微信消息與騰訊云文件存儲等一系列功能,為用戶構建了一個全方位的在線學習平臺。[3]

本文采用前后端分離架構思想,在基于其他OE系統(tǒng)實際運營情況下,設計開發(fā)出的一個基于微信公眾號B2C模式下的在線學習平臺。在整個系統(tǒng)的開發(fā)周期中,系統(tǒng)前端采用主流前端框架VUE和Element-UI等,使用Node.js作為JavaScript運行環(huán)境,微信公眾號采用H5頁面顯示;后端采用SpringBoot技術,使用mybatis-plus進行持久層的操作,選用MYSQL數(shù)據庫進行數(shù)據的存儲和Redis內存緩存,并且綜合應用了騰訊云文件存儲和阿里云視頻點播來實現(xiàn)。主要完成以下幾個方面的研究:

1.分析在系統(tǒng)開發(fā)過程中,采用的C/S結構和B/S結構的優(yōu)缺點,提供介紹了一種基于微信公眾號B2C模式下的在線學習課程體系的一種基本的實現(xiàn)和方法。

2.對功能需求詳細分析,并且也對非功能需求以及系統(tǒng)運行環(huán)境進行簡單分析,分析該在線學習系統(tǒng)內各個功能模塊的設計和實現(xiàn)。

3.實現(xiàn)了講師管理、點播課程管理、在線點播課程、公眾號菜單管理、公眾號消息等功能。

隨著二十一世紀的到來,移動互聯(lián)網時代也接踵而至。各種各樣的移動技術,方便著人們的生活,例如車聯(lián)網和自動駕駛,AR/VR技術,智能電網智慧家居等;還有層出不窮的新型移動電話,例如智能手機和電腦。正是這些新興的移動技術,讓二零一九年因為新冠疫情被迫宅家的人們有了新思路。為了滿足人們對學習的最新要求,各式各樣的線上學習系統(tǒng)相繼出現(xiàn)。在線學習的新時代,就此誕生。

在傳統(tǒng)課堂的教學環(huán)境中,受到地點和環(huán)境的限制,各個地方的教育學習資源、課程資源分布不均,容易導致學生獲取的知識不夠廣泛。而在線學習系統(tǒng)是一種新型學習模式,采用互聯(lián)網技術,實現(xiàn)師生分離,使得高質量的教育資源能夠不受時間和地點的限制,通過互聯(lián)網技術不斷傳播,為知識提供了更高效的傳播通道。這種隨時隨地能夠多形式的在線學習系統(tǒng),能夠讓學生了解到更廣泛全面的知識和技術。[5]


在線學習系統(tǒng)是一個基于微信公眾號B2C模式實現(xiàn)的在線學習平臺,系統(tǒng)包含微信公眾號服務和后臺管理系統(tǒng)兩大部分。本系統(tǒng)由角色可分為兩類,微信用戶和管理員角色。

微信用戶通過微信授權登錄,關注該公眾號,就可以在線進行選擇課程、在線播放課程視頻等一系列操作。根據分析顯示,在線學習系統(tǒng)微信用戶需實現(xiàn)的功能有:微信授權登錄,點播課程,查看課程詳情,查詢講師,公眾號分享,公眾號消息等。微信用戶的用例圖如圖3-1所示:

編輯

圖3-1 用戶用例圖



管理員通過賬號密碼登錄后臺管理系統(tǒng)后,可以對講師、課程、公眾號菜單等進行管理。根據分析顯示,后臺管理員角色需要實現(xiàn)的功能有:登錄,講師管理,課程分類管理,點播課程管理,公眾號菜單管理,營銷管理等。系統(tǒng)管理員的用例圖如圖3-2所示:

編輯



圖3-2 系統(tǒng)管理員用例圖

系統(tǒng)技術架構圖如下圖4-1所示:

編輯



圖4-1 系統(tǒng)技術架構圖

數(shù)據庫概念結構的設計目的就是建立在數(shù)據庫需要進行分類處理的邏輯基礎框架之上,設定構造出一個可以同時滿足數(shù)據庫需要功能的各類邏輯實體,以及其之間相互或之間必要的邏輯關聯(lián),作為數(shù)據庫以后應用的基本邏輯結構的設計基礎。這是一開始階段完全可以不必再去考慮你所要的采用一個什么樣類型的數(shù)據庫存儲和管理數(shù)據庫的系統(tǒng)、操作系統(tǒng)種類、機器類型等等問題。[15]這個階段可以使用到的工具很多。用的最多的是E-R圖(Entity-Relation,實體-關系圖),另外還有許多計算機輔助工具(Computer Aided Software Engineering,CASE)可以幫助進行設計。[9]本系統(tǒng)采用了E-R圖的方法進行數(shù)據庫概念結構設計。E-R圖是描述數(shù)據實體關系的一種直觀描述工具。這種圖中有:

(1)實體:用方框表示,方框內為實體的名稱。

(2)實體的各種屬性:用橢圓表示,橢圓內為屬性名稱。使用線段將其和響應的實體連接起來。

(3)實體之間的聯(lián)系:用菱形表示,菱形內為聯(lián)系的名稱。

實體和實體之間的聯(lián)系較多,比較常見的聯(lián)系有l(wèi):1,l:N和M:N這三種。

本系統(tǒng)的E-R圖如下圖4-10所示:

編輯



圖4-10 系統(tǒng)E-R圖

三,系統(tǒng)展示

講師管理

編輯

?

編輯


編輯

編輯

課程管理

編輯

編輯



四,核心代碼展示

package com.order.controller;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.model.model.order.OrderInfo;import com.model.vo.order.OrderInfoQueryVo;import com.order.service.OrderInfoService;import com.service.result.R;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.Map;/** * <p> * 訂單表 訂單表 前端控制器 * </p> * * @author ZYD * @since 2022-07-16 */@RestController@Api(tags = "訂單控制器")@RequestMapping("/admin/order/orderInfo")public class OrderInfoController { ? ?@Autowired ? ?private OrderInfoService orderInfoService; ? ?@ApiOperation("訂單列表條件分頁查詢") ? ?@GetMapping("{page}/{limit}") ? ?public R listOrder(@PathVariable Long page, @PathVariable Long limit, OrderInfoQueryVo orderInfoQueryVo){ ? ? ? ?Page<OrderInfo> pageParam = new Page<>(page,limit); ? ? ? ?Map<String,Object> map = orderInfoService.selectOrderInfoPage(pageParam,orderInfoQueryVo); ? ? ? ?return R.ok(map); ? ?} }


package com.order.api;import com.model.vo.order.OrderFormVo;import com.order.service.OrderInfoService;import com.service.result.R;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;@Api(tags = "優(yōu)惠券接口")@RestController@RequestMapping("api/order/orderInfo")public class OrderInfoApiController { ? ?@Autowired ? ?private OrderInfoService orderInfoService; ? ?@ApiOperation("新增點播課程訂單") ? ?@PostMapping("submitOrder") ? ?public R submitOrder(@RequestBody OrderFormVo orderFormVo, HttpServletRequest request) { ? ? ? ?//返回訂單id ? ? ? ?Long orderId = orderInfoService.submitOrder(orderFormVo); ? ? ? ?return R.ok(orderId); ? ?} }

五,項目總結

數(shù)據庫表結構展示如下

在線學習系統(tǒng)數(shù)據庫中各個表格的設計結果如下面的幾個表所示。每個表表示在數(shù)據庫中的一個表。


  1. 用戶表:user_info

用戶表用于存儲用戶的基本信息,其主鍵是id。用戶表設計如下表4-1所示:

表4-1 用戶表


字段名


類型


描述


id


bigint


用戶編號


phone


Varchar(20)


手機號


nick_name


Varchar(100)


用戶昵稱


sex


tinyint


性別 0:女 1:男


avatar


varchar(200)


頭像


subscribe


tinyint


0:未訂閱 1:已訂閱


recommend_id


bigint


推薦人用戶id


create_time


timestamp


創(chuàng)建時間


update_time


timestamp


更新時間


is_deleted


tinyint


0:未刪除 1:已刪除




  1. 講師表:teacher

講師表用于存儲本系統(tǒng)中講師的各種信息,其主鍵是id。講師表設計如下表4-2所示:

表4-2 講師表


字段名


類型


描述


id


bigint


講師編號


name


varchar(20)


講師姓名


intro


varchar(500)


講師簡介


career


varchar(500)


講師資歷


level


int


頭銜 1高級講師? 2首席講師


avatar


varchar(255)


講師頭像


sort


int


排序


join_date


date


入駐時間


create_time


timestamp


創(chuàng)建時間


update_time


timestamp


更新時間


is_deleted


tinyint


0:未刪除 1:已刪除




  1. 課程科目表:subject

課程科目表用來存儲課程所屬的科目的相關信息,其主鍵為id。課程科目表設計如下表4-3所示:

表4-3 課程科目表


字段名


類型


描述


id


bigint


課程科目編號


title


varchar(10)


科目名稱


parent_id


bigint


父ID


create_time


timestamp


創(chuàng)建時間


update_time


timestamp


更新時間


is_deleted


tinyint


0:未刪除 1:已刪除




  1. 課程表:course

課程表存儲了所有課程的相關信息,其主鍵為id。課程表設計如下表4-4所示:

表4-4 課程表


字段名


類型


描述


id


bigint


課程編號


teacher_id


bigint


課程講師ID


subject_id


bigint


課程科目ID


title


varchar(50)


課程名稱


price


decimal


課程銷售價格,設置為0則可以免費觀看


lesson_num


int


總課時


duration_sum


int


視頻總時長(秒)


cover


varchar(255)


課程封面圖片路徑


buy_count


bigint


銷售數(shù)量


view_count


bigint


瀏覽數(shù)量


status


tinyint


課程狀態(tài) 0未發(fā)布 1已發(fā)布


publish_time


datetime


課程發(fā)布時間


create_time


timestamp


創(chuàng)建時間


update_time


timestamp


更新時間


is_deleted


tinyint


0:未刪除 1:已刪除




  1. 課程章節(jié)表:chapter

課程章節(jié)表在線學習系統(tǒng)中課程的所有章節(jié)的相關信息,其主鍵為id.課程章節(jié)表設計如下表4-5所示:

表4-5 課程章節(jié)表


字段名


類型


描述


id


bigint


章節(jié)編號


course_id


bigint


課程ID


title


varchar(50)


章節(jié)名稱


sort


int


排序


create_time


timestamp


創(chuàng)建時間


update_time


timestamp


更新時間


is_deleted


tinyint


0:未刪除 1:已刪除




  1. 課程簡介表:course_description

課程簡介表是用于存儲課程中課程簡介的所有相關信息的,其主鍵為id。課程簡介表設計如下表4-6所示:

表4-6 課程簡介表


字段名


類型


描述


id


bigint


簡介編號


course_id


bigint


課程ID


description


text


課程簡介


create_time


timestamp


創(chuàng)建時間


update_time


timestamp


更新時間


is_deleted


tinyint


0:未刪除 1:已刪除




  1. 課程視頻表:video

課程視頻表用于存儲每個課程中不同章節(jié)的視頻的所有相關信息,其主鍵為id.課程視頻表設計如下表4-7所示:

表4-7 課程視頻表


字段名


類型


描述


id


bigint


簡介編號


course_id


bigint


課程ID


chapter_id


bigint


章節(jié)ID


title


varchar(50)


視頻名稱


video_source_id


varchar(100)


云端視頻資源


video_original_name


varchar(100)


原始文件名稱


sort


int


排序


play_count


bigint


播放次數(shù)


is_free


tinyint


是否可以試聽:0收費 1免費


duration


float


視頻時長(秒)


size


bigint


視頻源文件大小(字節(jié))


version


bigint


樂觀鎖


status


tinyint


狀態(tài)


create_time


timestamp


創(chuàng)建時間


update_time


timestamp


更新時間


is_deleted


tinyint


0:未刪除 1:已刪除




  1. 視頻來訪者記錄表:video_visitor

視頻來訪者記錄表用于存儲每個視頻訪問該視頻的用戶的相關信息,其主鍵為id。視頻來訪者記錄表計如下表4-8所示:

表4-8 視頻來訪者記錄表


字段名


類型


描述


id


bigint


來訪者記錄編號


course_id


bigint


課程ID


video_id


bigint


視頻id


user_id


bigint


來訪者用戶id


nick_name


varchar(100)


昵稱


join_time


varchar(30)


進入時間


leave_time


varchar(30)


離開時間


duration


bigint


用戶停留的時間(秒)


create_time


timestamp


創(chuàng)建時間


update_time


timestamp


更新時間


is_deleted


tinyint


0:未刪除 1:已刪除




  1. 公眾號菜單表:menu

公眾號菜單表用于存儲微信用戶端公眾號頁面的菜單的所有相關信息,其主鍵為id。公眾號菜單表計如下表4-9所示:

表4-9 公眾號菜單表


字段名


類型


描述


id


bigint


菜單編號


name


varchar(50)


菜單名稱


type


varchar(10)


類型


url


varchar(100)


網頁鏈接,用戶點擊菜單可打開鏈接


menu_key


varchar(20)


菜單key值,用于消息接口推送


sort


tinyint


排序


create_time


timestamp


創(chuàng)建時間


update_time


timestamp


更新時間


is_deleted


tinyint


0:未刪除 1:已刪除




  1. 優(yōu)惠券信息表:coupon_info

優(yōu)惠券信息表用于存儲發(fā)放給用戶的優(yōu)惠券的所有信息,其主鍵為id。優(yōu)惠券信息表設計如下表4-10所示:

表4-10 優(yōu)惠券信息表


字段名


類型


描述


id


bigint


優(yōu)惠券編號


coupon_type


tinyint


優(yōu)惠券類型


coupon_name


varchar(100)


優(yōu)惠券名字


amount


decimal(10,2)


金額


condition_amount


decimal(10,2)


使用門檻 0->沒門檻


start_time


date


開始日期


end_time


date


結束日期


range_type


tinyint


適用范圍[1->全場通用]


rule_desc


varchar(200)


規(guī)則描述


publish_count


int


發(fā)行數(shù)量


per_limit


int


每人限領張數(shù)


use_count


int


已使用數(shù)量


receive_count


int


領取數(shù)量


expire_time


datetime


過期時間


publish_status


tinyint(1)


發(fā)布狀態(tài) 0:未發(fā)布 1:已發(fā)布


create_time


timestamp


創(chuàng)建時間


update_time


timestamp


更新時間


is_deleted


tinyint


0:未刪除 1:已刪除






在線學習|基于SpringBoot的在線學習系統(tǒng)的設計與實現(xiàn)的評論 (共 條)

分享到微博請遵守國家法律
马尔康县| 孙吴县| 临江市| 湾仔区| 巩义市| 修文县| 涪陵区| 高平市| 乌鲁木齐市| 扎赉特旗| 榕江县| 茌平县| 昌平区| 北碚区| 丹巴县| 昌图县| 陆丰市| 寻甸| 平度市| 谢通门县| 盱眙县| 兴安县| 芒康县| 聂拉木县| 来凤县| 敦煌市| 邓州市| 林周县| 珲春市| 青神县| 灵武市| 彭水| 泽库县| 宁陕县| 抚顺市| 高清| 曲麻莱县| 旬邑县| 永寿县| 环江| 湟源县|