Skip to main content

一、后端实现

1、业务层

接口:CourseService.java

void updateCourseInfoById(CourseInfoForm courseInfoForm);

实现:CourseServiceImpl.java

@Override
public void updateCourseInfoById(CourseInfoForm courseInfoForm) {
//保存课程基本信息
Course course = new Course();
BeanUtils.copyProperties(courseInfoForm, course);
boolean resultCourseInfo = this.updateById(course);
if(!resultCourseInfo){
throw new GuliException(20001, "课程信息保存失败");
}

//保存课程详情信息
CourseDescription courseDescription = new CourseDescription();
courseDescription.setDescription(courseInfoForm.getDescription());
courseDescription.setId(course.getId());
boolean resultDescription = courseDescriptionService.updateById(courseDescription);
if(!resultDescription){
throw new GuliException(20001, "课程详情信息保存失败");
}
}

2、web层

@ApiOperation(value = "更新课程")
@PutMapping("update-course-info/{id}")
public R updateCourseInfoById(
@ApiParam(name = "CourseInfoForm", value = "课程基本信息", required = true)
@RequestBody CourseInfoForm courseInfoForm,

@ApiParam(name = "id", value = "课程ID", required = true)
@PathVariable String id){

courseService.updateCourseInfoById(courseInfoForm);
return R.ok();
}

二、前端实现

1、定义api

course.js

updateCourseInfoById(courseInfo) {
return request({
url: `${api_name}/update-course-info/${courseInfo.id}`,
method: 'put',
data: courseInfo
})
}

2、组件js

info.vue

updateData() {
this.saveBtnDisabled = true
course.updateCourseInfoById(this.courseInfo).then(response => {
this.$message({
type: 'success',
message: '修改成功!'
})
return response// 将响应结果传递给then
}).then(response => {
this.$router.push({ path: '/edu/course/chapter/' + response.data.courseId })
}).catch((response) => {
// console.log(response)
this.$message({
type: 'error',
message: '保存失败'
})
})
},