开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):课程管理-删除课程(后端)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11396
课程管理-删除课程(后端)
内容介绍:
一、外键
二、课程删除架构
三、EdcourseController.Java 代码演示
四、EdcourseService.Java 代码演示
五、EdcourseServiceImpl.Java
六、EduVedioService.Java 代码演示
七、EduVedioServiceImpl.Java 代码演示
一、外键
1.图示
2. 说明
在多的那一方创建字段,作为外键,指向一的那一方的主键。
3. 强调
外键一般不建议声明出来。
二、课程删除架构
课程删除
1、课程里面有课程描述、章节、小节、视频。删除课程把视频、小节、章节描述、课程本身都删除。
2.端口
代码1:
@DeleteMapping("{courseId}")
public R deleteCourse(@PathVariable String courseId){
courseService.removeCourse(courseid):
return R.ok():
//删除课程
3.方法
代码2:
@Override
public void removeVideoByCourseId(String courseId) {
QueryWrapperwrapper=new QueryWrapper<>() wrapper.eq(column:"course_id",courseId); baseMapper.delete(wrapper);
}
//删小节
//根据课程 id 除小节
// TODO 删除小节,删除对应视频文件
代码3:
@0verride
public void removeChapterByCourseId(String courseId){
QueryWrapperwrapper=new QueryWrapper<>() wrapper.eq(column:"course_id",courseId); baseMapper. delete(wrapper):
}
//删章节
//2根据课程 id 册除章节
代码4:
courseDescriptionService.removeById(courseId);
//删描述
//3根据课程 id 删除描述
代码5:
int result =baseMapper.deleteById(courseId); if(result ==0) { //失败返回
throw new GuliException(20001,"删除失败”)
}
//删本身
//4根据课程 id 删除课程本身
三、EdcourseController.Java 代码演示
代码64-83
return R.ok().data("publishCourse",coursePublishVo);
}
//课程最终发布
//修改课程状态
@PostMapping("publishCourse/{id)")
public R publishCourse(@PathVariable String id){
EduCourse eduCourse=new EduCourse(): eduCourse.setId(id);
eduCourse.setStatus("Normal”);//设置课程发布状态 courseService.updateById(eduCourse): return R.ok():
}
//删除课程
@
Deletellapping("(courseId)")
public R deleteCourse(CPathVariable String courseId) {
courseService. removeCourse(courseId);
return R. ok();
}
}
四、EdcourseService.Java 代码演示
代码16-34
@
since 2020-03-02
*/
public interface EduCourseService extends IService{
//添加课程基本信息的方法
String saveCourseInfo(CourseInfoVo courseInfoVo):
//根据课程id查询课程基本信息
CourseInfoVo getCourseInfo(String courseId);
//修改课程信息
void updateCourseInfo(CourseInfoVo courseInfoVo):
//根据课程id查询课程确认信息
CoursePublishVo publishCourseInfo(String id);
//
删
除课程
void removeCourse(String courseId);
五、EdcourseServiceImpl.Java 代码演示
代码1-104
package com.atguigu.eduservice.service.impl
;
Import
...
/**
*
*
课程服务实现类
*
*
*@a
uthor testjava
*
@since 2020-03-02
*/
@Service
public class EduCourseServiceImpl extends ServiceImpl
//课程
概
述注入
@
Autowired
private EduCourseDescriptionService courseDescriptionService
//注入小节和章节service
@
Autowired
private EduVideoService eduVideoService:
@
Autowired
private EduChapterService chapterService;
//添加课程基本信息的方法
@
Override
public String saveCourseInfo(CourseInfoVo courseInfoVo){
//1 向课程表添加课程基本信息
//CourseInfoVo对象转换eduCourse对象
EduCourse eduCourse = new EduCourse
()
:
BeanUtils.copyProperties(courseInfoVo,eduCourse)
int insert =baseMapper.insert(eduCourse):
if(insert == 0) {
//添加失败
throw new GuliException(20001,"添加课程信息失败”)
;
}
//获取添加之后课程id
String cid =eduCourse.getId0:
//2 向课程简介表添加课程简介
/
/edu course description
EduCourseDescription courseDescription = new
E
duCourseDescription
()
: courseDeseription.setDescription(courseInfoVo.getDeseription())
;
//设置
描
述id就是课
程
id
courseDescription.setId(cid):
courseDescriptionService.save(courseDescription)
;
return cid;
}
/
/根据课程id查询深程基本信息
@
Override
public CourseInfoVo getCourseInfo(String courseId){
//1 查询课程表
EduCourse eduCourse = baseMapper.selectById(courseId): CourseInfoVo courseInfoVo=new CourseInfoVo0: BeanUtils.copyProperties(eduCourse,courseInfoVo);
//2查询
描
述表
EduCourseDeseription courseDescription =courseDescriptionService.getById(courseId) courseInfoVo.setDescription(courseDescription.getDescription());
return courseInfoVo:
}
//修改课程信息
@Override
public void updateCourseInfo(CourseInfoVo courseInfoVo) {
//1修改课程表
EduCourse eduCourse = new EduCourse():
BeanUtils.copyProperties(courseInfoVo,eduCourse);
int update =baseMapper.updateById(eduCourse);
if(update == 0) {
throw new GuliException(20001,"修改课程信息失败”):
}
//2 修改描述表
EduCourseDescription description = new EduCourseDescription(); description.setId(courseInfoVo.getId0):
description.setDescription(courseInfoVo.getDeseriptionO); courseDescriptionService.updateById(description):
}
//根据课程id查询课程砖认信息
@
Override
public CoursePublishVo publishCourseInfo(String id) {
//调用mapper
CoursePublishVo publishCourseInfo =baseMapper.getPublishCourseInfo(id):
return publishCourseInfo:
//删除课程
@Override
@
Override
public CoursePublishVo publishCourseInfo(String id) {
//调用mapper
CoursePublishVo publishCourseInfo = baseMapper.getPublishCourseInfo(id); return publishcourseInfo:}
//删除
课
程
@Override
public void removeCourse(String courseId){
//1 根据课程id删除小节
eduVideoService.renoveVideoByCourseId(courseId)
//2根据课程 id 删除章节
//3根据课程 id 删除描述
//根据课程 id 删除课程本身
六、EduVedioService.Java 代码演示
package com. atguigu.eduservice.service;
Import
...
*课程视频服务类
*
>
* @uthor testjava
* @since 2020-03-02
*/
public interface EduVideoService extends IService{
//根据课程id
删
除小节
void removeVideoByCourseId(String courseId)
;
七、EduVedioServiceImpl.Java 代码演示
代码1-29
package com. atguigu.eduservice.service
Impl
;
Import
...
*课程视频服务类
*
>
*
@uthor testjava
*@since 2020-03-02
*
@Service
public class EduVideoServiceImpl extends ServiceImpl implements EduVideoService
{
//1 根据课程id删验小节
// T000 删除小节,
删
除对应视频文件
@Override
public void removeVideoByCourseId(String courseId) {
QueryWrapper wrapper =new QueryWrapper>o: wrapper.eq(column:"course id".courseId); baseMapper. delete(wrapper)
;
}
}