视频学习|Springboot在线学习系统
最编程
2023-12-31 06:54:45
...
package com.onlineeducation.onlineeducation.controller;
import com.onlineeducation.onlineeducation.common.Constants;
import com.onlineeducation.onlineeducation.common.Result;
import com.onlineeducation.onlineeducation.common.ResultGenerator;
import com.onlineeducation.onlineeducation.config.annotation.TokenToTeacher;
import com.onlineeducation.onlineeducation.entity.*;
import com.onlineeducation.onlineeducation.service.*;
import com.onlineeducation.onlineeducation.utils.PageResult;
import com.onlineeducation.onlineeducation.utils.PageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Controller
public class CourseController {
@Autowired
private CourseService courseService;
@Autowired
private VideoService videoService;
@Autowired
private CoursewareService coursewareService;
@Autowired
private MessageService messageService;
@Autowired
private TestService testService;
@Autowired
private StudentService studentService;
@Autowired
private TeacherService teacherService;
@GetMapping("/courses/list")
@ResponseBody
public Result listCourse(@RequestParam Map<String, Object> params, @TokenToTeacher Teacher loginUser) {
if (StringUtils.isEmpty(params.get("page")) || StringUtils.isEmpty(params.get("limit"))) {
return ResultGenerator.genErrorResult(Constants.RESULT_CODE_PARAM_ERROR, "参数异常!");
}
PageUtil pageUtil = new PageUtil(params);
if(loginUser != null)
{
pageUtil.put("teacherID",loginUser.getId());
}
//查询列表数据
PageResult coursePage = courseService.getCoursePage(pageUtil);
return ResultGenerator.genSuccessResult(coursePage);
}
@PostMapping("/courses/save")
@ResponseBody
public Result saveCourse(@RequestBody Course course, @TokenToTeacher Teacher loginUser) {
if(loginUser == null){
return ResultGenerator.genErrorResult(Constants.RESULT_CODE_NOT_LOGIN, "未登录!");
}
//验证参数
if(StringUtils.isEmpty(course.getCourseName()) || StringUtils.isEmpty(course.getDescription())
|| StringUtils.isEmpty(course.getImageURL())){
return ResultGenerator.genErrorResult(Constants.RESULT_CODE_PARAM_ERROR,"参数异常!");
}
//向数据库中新增课程
if(courseService.saveCourse(course,loginUser) > 0){
return ResultGenerator.genSuccessResult();
}else {
return ResultGenerator.genFailResult("添加失败");
}
}
@GetMapping("/courses/info/{id}")
@ResponseBody
public Result detail(@PathVariable("id") Integer id) {
if (id < 1) {
return ResultGenerator.genErrorResult(Constants.RESULT_CODE_PARAM_ERROR, "参数异常!");
}
Course course = courseService.queryById(id);
if (course == null) {
return ResultGenerator.genErrorResult(Constants.RESULT_CODE_PARAM_ERROR, "暂无数据!");
} else {
return ResultGenerator.genSuccessResult(course);
}
}
@PostMapping( "/courses/update")
@ResponseBody
public Result updateCourse(@RequestBody Course course) {
if (course.getId()==null || course.getId() < 1 || StringUtils.isEmpty(course.getImageURL())
|| StringUtils.isEmpty(course.getCourseName()) || StringUtils.isEmpty(course.getDescription())) {
return ResultGenerator.genErrorResult(Constants.RESULT_CODE_PARAM_ERROR, "参数异常!");
}
// Course tempCourse = courseService.queryById(course.getId());
// if (tempCourse == null) {
// return ResultGenerator.genErrorResult(Constants.RESULT_CODE_PARAM_ERROR, "无此记录!");
// }
if (courseService.updateCourse(course) > 0) {
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult("修改失败");
}
}
@PostMapping("courses/checked")
@ResponseBody
public Result checkCourse(@RequestBody Course course) {
if (StringUtils.isEmpty(course.getIsChecked())) {
return ResultGenerator.genErrorResult(Constants.RESULT_CODE_PARAM_ERROR, "参数异常!");
}
if (courseService.checkCourse(course) > 0) {
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult("操作失败");
}
}
@DeleteMapping("courses/delete")
@ResponseBody
public Result deleteCourse(@RequestBody Integer[] ids) {
if (ids.length < 1) {
return ResultGenerator.genErrorResult(Constants.RESULT_CODE_PARAM_ERROR, "参数异常!");
}
if (courseService.deleteBatch(ids) > 0) {
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult("删除失败");
}
}
@GetMapping("teacher/courses/getTeacherCourses")
@ResponseBody
public Result getTeacherCourses(HttpServletRequest request,@TokenToTeacher Teacher loginTeacher){
if (loginTeacher == null) {
return ResultGenerator.genErrorResult(Constants.RESULT_CODE_PARAM_ERROR, "未登录!");
}
List<Course> teacherCourses = courseService.getTeacherCourseList(loginTeacher.getId());
request.setAttribute("teacherCourses",teacherCourses);
return ResultGenerator.genSuccessResult(teacherCourses);
}
@GetMapping("teacher/teacherStudent.html")
public String getTeacherCoursesInThymeleaf(HttpServletRequest request){
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if ("token".equals(cookie.getName())) {
String token = cookie.getValue();
Teacher loginTeacher = teacherService.getTeacherUserByToken(token);
Long tid = loginTeacher.getId();
List<Course> teacherCourses = courseService.getTeacherCourseList(tid);
request.setAttribute("teacherCourses",teacherCourses);
break;
}
}
return "teacher/teacherStudent";
}
// 学生端
@GetMapping("/index-login.html")
public String listStudentCourse(HttpServletRequest request) {
List<Course> courses = courseService.getCourseList();
request.setAttribute("courses",courses);
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if ("token".equals(cookie.getName())) {
String token = cookie.getValue();
Student loginStudent = studentService.getStudentUserByToken(token);
Long sid = loginStudent.getId();
request.setAttribute("sid",sid);
break;
}else{
request.setAttribute("sid",null);
}
}
return "index-login";
}
@GetMapping("/index.html")
public String listStudentCourseWithoutLogin(HttpServletRequest request) {
List<Course> courses = courseService.getCourseList();
request.setAttribute("courses",courses);
return "index";
}
@GetMapping("/myCourses/{sid}.html")
public String listMyCourse(@PathVariable("sid")Integer sid,HttpServletRequest request){
List<Course> myCourses = courseService.getMyCourseList(sid);
if(myCourses.size() > 0){
request.setAttribute("myCourses",myCourses);
}else{
request.setAttribute("myCourses",null);
}
return "myCourse";
}
@GetMapping("/courses/detail/{id}.html")
public String detailCourse(@PathVariable("id")Integer id,HttpServletRequest request){
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if ("token".equals(cookie.getName())) {
String token = cookie.getValue();
Student loginStudent = studentService.getStudentUserByToken(token);
if(loginStudent != null){
Long sid = loginStudent.getId();
request.setAttribute("sid",sid);
break;
}else{
break;
}
}else{
request.setAttribute("sid",null);
}
}
Course course = courseService.queryById(id);
String courseName = course.getCourseName();
List<Video> courseVideos = videoService.selectVideoByCourseName(courseName);
List<Courseware> coursewares = coursewareService.selectCoursewareByCourseName(courseName);
List<String> fileNames = new ArrayList<>();
for(int i = 0; i < coursewares.size(); i++) {
fileNames.add(coursewares.get(i).getCoursewareURL());
}
for(int j = 0; j < coursewares.size(); j++){
coursewares.get(j).setExtensions((fileNames.get(j).substring(fileNames.get(j).lastIndexOf("."))));
}
List<Test> tests = testService.selectByCourseName(courseName);
request.setAttribute("course",course);
if(courseVideos.size() > 0){
Video firstVideo = courseVideos.get(0);
request.setAttribute("firstVideo",firstVideo);
request.setAttribute("courseVideos",courseVideos);
}else{
request.setAttribute("firstVideo",null);
request.setAttribute("courseVideos",null);
}
if(coursewares.size() > 0){
request.setAttribute("coursewares",coursewares);
}else{
request.setAttribute("coursewares",null);
}
if(tests.size() > 0){
request.setAttribute("tests",tests);
}else{
request.setAttribute("tests",null);
}
/**
* 根据课程id查询该课程下的所有留言
*/
List<Message> allMessages = messageService.queryByCourseID(id);
if(allMessages == null || allMessages.size() == 0){
request.setAttribute("messages",null);
// return null;
}else{
List<Message> messages = new ArrayList<>();
List<Message> parents = new ArrayList<>();
for(Message message : allMessages){
if (message.getParentID() == null){
messages.add(message);
parents.add(message);
}else{
boolean foundParent = false;
for(Message parent : parents){
if (message.getParentID() == parent.getId()){
if(parent.getChild() == null){
parent.setChild(new ArrayList<>());
}
parent.getChild().add(message);
parents.add(message);
foundParent = true;
break;
}
}
if(!foundParent){
throw new RuntimeException("can not find the parent message");
}
}
}
request.setAttribute("messages",messages);
}
return "detail";
}
@GetMapping("/courses/detail/videoPlay/{courseID}/{videoID}.html")
public String videoPlay(@PathVariable("courseID")Integer courseID,@PathVariable("videoID")Integer videoID,HttpServletRequest request){
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if ("token".equals(cookie.getName())) {
String token = cookie.getValue();
Student loginStudent = studentService.getStudentUserByToken(token);
Long sid = loginStudent.getId();
request.setAttribute("sid",sid);
break;
}else{
request.setAttribute("sid",null);
}
}
Video video = videoService.getVideoById(videoID);
request.setAttribute("video",video);
Course course = courseService.queryById(courseID);
String courseName = course.getCourseName();
List<Video> courseVideos = videoService.selectVideoByCourseName(courseName);
List<Courseware> coursewares = coursewareService.selectCoursewareByCourseName(courseName);
List<String> fileNames = new ArrayList<>();
for(int i = 0; i < coursewares.size(); i++) {
fileNames.add(coursewares.get(i).getCoursewareURL());
}
for(int j = 0; j < coursewares.size(); j++){
coursewares.get(j).setExtensions((fileNames.get(j).substring(fileNames.get(j).lastIndexOf("."))));
}
List<Test> tests = testService.selectByCourseName(courseName);
request.setAttribute("course",course);
if(courseVideos.size() > 0){
Video firstVideo = courseVideos.get(0);
request.setAttribute("firstVideo",firstVideo);
<
推荐阅读
-
企业 OA 办公系统难建吗?是你打开的方式不对吧?
-
STM32H7 教程] 第 14 章 STM32H7 的电源、复位和时钟系统
-
YoloDeployCsharp]深度学习模型部署测试平台基于 .NET 的 YOLO 深度学习模型部署测试平台
-
[机器学习]自然语言引导的单目深度估计:泛化能力和鲁棒性的新挑战
-
第 18 章 STM32MP1 M4 裸机 HAL 库开发指南中的系统时钟配置实验
-
嵌入式系统] STM32 时钟系统 + 时钟配置功能分析
-
使用 HSE 配置系统时钟的 STM32 pit (VI) - 使用的 GPIO
-
系统时钟 SYSCLK、HSE、HSI 关于 "晶体和振荡器电路简介 "的说明
-
使用 HSE 或 HSI-II 重新配置系统时钟。配置步骤
-
STM32CubeMX-27 (补充) | 使用系统定时器 Systick