开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):课程管理-课程最终发布】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11394
课程管理-课程最终发布
目录:
一、课程最终发布
二、根据 id 查询课程发布信息
一、课程最终发布
点击发布课程之后,前台用户登录系统看课程,现在虽然在数据库中,但是用户看不到,因为没有最终发布,所以需要做最终的发布功能。课程最终发布,首先查看课程表里面它的字段里,
Status varchar (10) NUL 课程状态 Draft 未友布 Nornal 已发布
Status 的意思就是状态,在里边做了一个约定,如果状态是 D 开头的,就表示未发布,如果状态是 N 开头的,就表示已发布。
默认都是一种未发布状态,修改为 Nornal 之后才叫已发布。
之前的数据,最新的数据都是未发布状态。
它有一个默认值,看到默认未发布状态,如果未发布发布需要把它改成已发布。所以最终发布事情就是修改课程里的状态,表示已发布。
发布之后怎么知道是什么发布,发布用这 D 和 N 两个单词来判断说明。
代码:
//课程最终发布
//修改课程状态
@PostMapping(“publishCourse/{id}”)
p
ublic R publishCourse(@PathVariables String id) {
EduCourse eduCourse = new EduCourse();
eduCourse.setId(id);
eduCourse.setStatus(“Normal”); //设置课程发布的状态
courseService.updateById(eduCourse);
R
eturn R.ok();
}
来到前端书写代码:
//课程最终发布
publishCourse(id) {
return request<{
U
rl: ‘/eduservice/course/publishCourse/’+id,
M
ethod: ‘post’
}>
}
调用接口:
course.publishCourse(this.courseId)
.them(response => {
//提示
this.$message({
type: ‘success’,
M
essage: ‘课程发布成功!’
});
//课程跳转页面
this.$router.push({ path: ‘/course/list’})
})
最终课程发布成功
首先第一个值,需要 ID,然后第二个要设置课程的发布的状态,课程如果说是未发布是 D 开头,已发布是 N 开头。
已发布就是把状态改成 Nornal,应使用这种做法或者进行细致完善,已发布和未发布两个值,可以放到一个常量类,然后取里面那个值。直接写字符串,完成修改。
修改之后直接返回 OK,可以再进行判断,课程最终发布就完成了。根据课程id去修改课程状态,改成 Nornal ,修改成功之后,就表示已发布。然后写完之后,最后把前端快速整合。前端后端一起整合才可把功能都实现。
//在前端里边,首先还是把方法定义,之后再去调用,这方法就是课程的最终发布。
//发布要根据 ID,传进一个 id,下面写下接口,后面传入一个 ID,提交方式方法之后,来到页面中进行发布,首先找到它那个按钮”发布课程“,这个方法就叫publish,调用接口即可。
二、根据 id 查询课程发布信息
方式一:业务层组装多个表多次的查询结果
方式二:数据访问层进行关联查询
1. 定义 vo
P
ackage com.guli.edu.vo;
@ApiModel(value = “课程最终发布信息”)
@Data
P
ublic class CoursePublishVo implements Serializable {
private static final long serialVersionUID = 1L;
private String title;
private String cover;
private Integer IessonNum;
private String subjectLevelOne;
private String subjectLevelTwo;
private String teacherName;
private String price;//只用于显示
}