SpringCloud+Vue前后端分离在线视频课程系统
疫情过后的今天学生对在线学习热情有增不减,这种能灵活分配时间的学习方式广受大众喜爱,如今不仅是学生,上班族也在使用在线学习平台为大脑充电。
Maven工具管理依赖,Mybatis操作数据库,Idea平台开发,使用redis缓存验证码,目前没有小程序版本,可有偿远程启动及调试项目,项目保证质量,最下方扫码加Q联系我获取。
图示:
新增页面:
编辑页面:
内容页面:
排序:
点击大章后进入:
点击小节后:
前端页面:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210309205206231.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01hczE0NjEyNjEzODg=,size_16,color_FFFFFF,t_70
部分数据库设计:
表 course,存储课程的基本信息
表 course_category,存储课程对应的分类
代码示例:
1.课程信息查询接口类
package com.course.business.controller.admin;
import com.course.server.dto.CourseContentFileDto;
import com.course.server.dto.ResponseDto;
import com.course.server.service.CourseContentFileService;
import com.course.server.util.ValidatorUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@RestController
@RequestMapping("/admin/course-content-file")
public class CourseContentFileController {
private static final Logger LOG = LoggerFactory.getLogger(CourseContentFileController.class);
public static final String BUSINESS_NAME = "课程内容文件";
@Resource
private CourseContentFileService courseContentFileService;
/**
* 列表查询
*/
@GetMapping("/list/{courseId}")
public ResponseDto list(@PathVariable String courseId) {
ResponseDto responseDto = new ResponseDto();
List<CourseContentFileDto> fileDtoList = courseContentFileService.list(courseId);
responseDto.setContent(fileDtoList);
return responseDto;
}
/**
* 保存,id有值时更新,无值时新增
*/
@PostMapping("/save")
public ResponseDto save(@RequestBody CourseContentFileDto courseContentFileDto) {
// 保存校验
ValidatorUtil.require(courseContentFileDto.getCourseId(), "课程ID");
ValidatorUtil.length(courseContentFileDto.getUrl(), "地址", 1, 100);
ValidatorUtil.length(courseContentFileDto.getName(), "文件名", 1, 100);
ResponseDto responseDto = new ResponseDto();
courseContentFileService.save(courseContentFileDto);
responseDto.setContent(courseContentFileDto);
return responseDto;
}
/**
* 删除
*/
@DeleteMapping("/delete/{id}")
public ResponseDto delete(@PathVariable String id) {
ResponseDto responseDto = new ResponseDto();
courseContentFileService.delete(id);
return responseDto;
}
}
2.课程信息查询服务类
package com.course.server.service;
import com.course.server.domain.CourseContentFile;
import com.course.server.domain.CourseContentFileExample;
import com.course.server.dto.CourseContentFileDto;
import com.course.server.mapper.CourseContentFileMapper;
import com.course.server.util.CopyUtil;
import com.course.server.util.UuidUtil;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.List;
@Service
public class CourseContentFileService {
@Resource
private CourseContentFileMapper courseContentFileMapper;
/**
* 列表查询
*/
public List<CourseContentFileDto> list(String courseId) {
CourseContentFileExample example = new CourseContentFileExample();
CourseContentFileExample.Criteria criteria = example.createCriteria();
criteria.andCourseIdEqualTo(courseId);
List<CourseContentFile> fileList = courseContentFileMapper.selectByExample(example);
return CopyUtil.copyList(fileList, CourseContentFileDto.class);
}
/**
* 保存,id有值时更新,无值时新增
*/
public void save(CourseContentFileDto courseContentFileDto) {
CourseContentFile courseContentFile = CopyUtil.copy(courseContentFileDto, CourseContentFile.class);
if (StringUtils.isEmpty(courseContentFileDto.getId())) {
this.insert(courseContentFile);
} else {
this.update(courseContentFile);
}
}
/**
* 新增
*/
private void insert(CourseContentFile courseContentFile) {
courseContentFile.setId(UuidUtil.getShortUuid());
courseContentFileMapper.insert(courseContentFile);
}
/**
* 更新
*/
private void update(CourseContentFile courseContentFile) {
courseContentFileMapper.updateByPrimaryKey(courseContentFile);
}
/**
* 删除
*/
public void delete(String id) {
courseContentFileMapper.deleteByPrimaryKey(id);
}
}
3.课程信息实体类
package com.course.server.dto;
public class CourseContentFileDto {
/**
* ID
*/
private String id;
/**
* 课程ID
*/
private String courseId;
/**
* 地址
*/
private String url;
/**
* 文件名
*/
private String name;
/**
* 大小|字节B
*/
private Integer size;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCourseId() {
return courseId;
}
public void setCourseId(String courseId) {
this.courseId = courseId;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getSize() {
return size;
}
public void setSize(Integer size) {
this.size = size;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", courseId=").append(courseId);
sb.append(", url=").append(url);
sb.append(", name=").append(name);
sb.append(", size=").append(size);
sb.append("]");
return sb.toString();
}
}
项目需要可以找我私聊。