课程管理-修改课程信息(最终实现) | 学习笔记

简介: 简介:快速学习课程管理-修改课程信息(最终实现)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):课程管理-修改课程信息(最终实现)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11382


课程管理-修改课程信息(最终实现)

 

内容介绍

一、修改课程信息

二、测试

三、总结

 

一、修改课程信息

1.将课程信息存入数据库中

最后将修改完成,就是在此页面中我们的数据回显了。比如标题、分类包括讲师等都可以修改,修改之后我们点击保存并下一步,就要将数据存入数据库内。此时我们便需要做到这一步

 image.png

要实现此步骤,修改课程信息接口已经写好,最终需要将前端代码写好。

l EduCourseController 中修改课程信息部分代码:

修改课程信息

@PostMapping("updateCourseInfo")

public R updateCourseInfo(@RequestBody CourseInfoVo courseInfoVo){

courseService. updateCourseInfo(courseInfovo);

return R.ok();

}

(1)addCourse()添加方法

首先在代码中找到保存并下一步按钮所在处,此时含有一些问题。当点击保存并下一步时,表达的含义可能是做了修改,也可能是添加,它在此的作用并不一样。

所以我们首先要确定此时做的是添加还是修改。我们找到 saveOrUpdate()方法,发现当时仅仅做了添加,为了明显区分我们将原来 saveOrUpdate() 方法中的方法体,放入新定义的 addCourse()中。因为我们还有修改操作的提示需要存在。

l 代码如下:

//添加课程

addCourse(){

course.addCourseInfo( this.courseInfo)

.then( response => {

//提示

this.$message({

type: " success',

message: '添加课程信息成功!'

});

//跳转到第二步,添加之后会返回课程id,用response得到

this.$router.push( {path : ' /course/chapter / ' +response.data.courseId})

})

},

(2)saveOrUpdate()方法

完成添加课程信息的代码后,我们紧接着添加一个修改课程的代码,叫做updateCourse()。

最终来到 saveOrUpdate()方法,根据之前代码,可以知晓在点击保存并下一步时调用的是 saveOrUpdate()方法,而此方法中既有添加又有修改,所以要在此方法中作一个判断:是添加还是修改。

判断方法是根据 courseInfo 有无 id 值进行判断,添加则无 id 值,修改则有 id 值。

l 代码如下

saveOrUpdate() {

//判断添加还是修改

if( !this.courseInfo.id) { //如果courseInfo如果没有id值

//为添加

this.addCourse()

}else {  //如果有id值

//为修改

this.updateCourse( )

}

}

(3)updateCourse()修改方法

最后对修改课程方法进行完善,注意其中更改提示信息为:修改课程信息成功!

同时最后添加时跳转会返回课程 id,但在修改跳转时并不会返回课程 id,所以将其修改为获得路由id值处获取到的修改返回的 id值。

l 获取路由id 值代码

//获取路由id值

if(this.$route.params && this.$route.params.id) {

//this.courseId为获取的修改时应跳转返回id值

this.courseId = this.$route.params. id

//调用根据id查询课程的方法

this.getInfo()

l 代码如下:

//修改课程

updateCourse() {

//添加course中的updateCourseInfo()方法,同时传入参数courseInfo的值

course. updateCourseInfo( this.courseInfo)

.then( response => { //提示跳转

//提示

this.$message({

type: "success',

//页面提示修改课程信息成功

message: ‘修改课程信息成功!‘

});

//跳转到第二步,但添加之后会返回课程id但修改后并不会。所以此处修改的跳转应该是修改 id 值,this.courseId 为获取路由id值中取到的修改跳转id。

this.$router.push({path : ' / course/chapter / ' +this.courseId})

})

},

到此修改代码全部完成。

 

二、测试

首先删除网址 http://localhost:9528/#/course/info 中

#/course/info 返回页面做重新展示。

先点击添加课程,任意输入课程信息。

课程标题:测试修改课程信息,课程分类:前端开发和 vue,课程讲师:王五,总课时:10,课程封面默认,课程价格:10。全部设置完毕后,点击保存并下一步。

image.png

看到显示添加课程信息成功。

在数据库中查看刚才添加的内容:测试修改课程信息。

image.png

之后再回到页面,点击上一步先做回显,将课程标题修改为:测试修改课程信息upup。其他内容不变,点击保存并下一步。

image.png

显示保存成功后,查看数据库中存储的数据内容,发现标题对应更改为测试修改课程信息 upup,则修改操作完成。

image.png

 

三、总结

到此,添加课程中的基本功能第一个为添加课程基本信息,其中包括一级二级,封面上传等完善。第二个课程大纲的列表功能,即用标签型做一个树状结构。类似于如下图的结构。

image.png

第三个为当点击修改可以回到创建课程大纲步骤,实现数据回显,之后可以修改课程中的内容,最后可以该数据库中的信息,这就是修改课程信息。

image.png

现在,将以上三个功能已经做到。同时在过程中发现在后端中并不是十分复杂,主要就是在修改和查询中需要查两张表的数据,而做的封装。而前端中较为复杂的点主要是课程分类的二级联动效果。

包括如何做到数据回显,包括二级分类的值默认为空,需要手动构建数据。

相关文章
|
XML SQL Java
课程管理-课程信息确认(加载问题) | 学习笔记
快速学习课程管理-课程信息确认(加载问题)
150 0
|
存储 前端开发 JavaScript
课程管理-修改课程信息(前端) | 学习笔记
简介:快速学习课程管理-修改课程信息(前端)
69 0
课程管理-修改课程信息(前端) | 学习笔记
|
前端开发 数据库 开发者
课程管理-课程最终发布 | 学习笔记
简介:快速学习课程管理-课程最终发布
54 0
|
前端开发 Java Nacos
课程管理-删除课程删除视频(最终测试) | 学习笔记
简介:快速学习课程管理-删除课程删除视频(最终测试)
86 0
课程管理-删除课程删除视频(最终测试) | 学习笔记
|
前端开发 数据库 开发者
课程管理-修改课程信息(后端) | 学习笔记
简介:快速学习课程管理-修改课程信息(后端)
107 0
课程管理-修改课程信息(后端) | 学习笔记
|
前端开发 开发者 数据格式
课程分类管理-课程分类显示接口(1) | 学习笔记
快速学习课程分类管理-课程分类显示接口(1)
49 0
|
开发者 微服务
课程分类管理-课程分类显示接口(2) | 学习笔记
快速学习课程分类管理-课程分类显示接口(2)
81 0
|
存储 前端开发 开发者
课程分类管理-课程分类显示接口(3) | 学习笔记
快速学习课程分类管理-课程分类显示接口(3)
56 0
|
JSON 前端开发 JavaScript
课程管理-修改课程信息(前端)| 学习笔记
简介:快速学习课程管理-修改课程信息(前端)
204 0
课程管理-修改课程信息(前端)| 学习笔记
|
前端开发 API 开发者
课程分类管理-课程分类显示前端 | 学习笔记
快速学习课程分类管理-课程分类显示前端
60 0