本文共 4112 字,大约阅读时间需要 13 分钟。
3.3.3 API接口
1)添加课程计划@ApiOperation("添加课程计划") public ResponseResult addTeachplan(Teachplan teachplan);
3.3.4 课程管理服务 3.3.3.1 Dao
public interface TeachplanRepository extends JpaRepository{ //定义方法根据课程id和父结点id查询出结点列表,可以使用此方法实现查询根结点 public List findByCourseidAndParentid(String courseId,String parentId); }
3.3.3.2 Service //获取课程根结点,如果没有则添加根结点 public String getTeachplanRoot(String courseId){ //校验课程id Optionaloptional = courseBaseRepository.findById(courseId); if(!optional.isPresent()){ return null; } CourseBase courseBase = optional.get(); //取出课程计划根结点List teachplanList = teachplanRepository.findByCourseidAndParentid(courseId, "0"); if(teachplanList == null || teachplanList.size()==0){ //新增一个根结点 Teachplan teachplanRoot = new Teachplan(); teachplanRoot.setCourseid(courseId); teachplanRoot.setPname(courseBase.getName()); teachplanRoot.setParentid("0"); teachplanRoot.setGrade("1");//1级 teachplanRoot.setStatus("0");//未发布 teachplanRepository.save(teachplanRoot); return teachplanRoot.getId(); } Teachplan teachplan = teachplanList.get(0); return teachplan.getId(); } //添加课程计划 @Transactional public ResponseResult addTeachplan(Teachplan teachplan){ //校验课程id和课程计划名称 if(teachplan == null || StringUtils.isEmpty(teachplan.getCourseid()) || StringUtils.isEmpty(teachplan.getPname())){ ExceptionCast.cast(CommonCode.INVALIDPARAM); } //取出课程id String courseid = teachplan.getCourseid(); //取出父结点id String parentid = teachplan.getParentid(); if(StringUtils.isEmpty(parentid)){ //如果父结点为空则获取根结点 parentid= getTeachplanRoot(courseid); } //取出父结点信息 Optional teachplanOptional = teachplanRepository.findById(parentid); if(!teachplanOptional.isPresent()){ ExceptionCast.cast(CommonCode.INVALIDPARAM); } //父结点 Teachplan teachplanParent = teachplanOptional.get(); //父结点级别 String parentGrade = teachplanParent.getGrade(); //设置父结点 teachplan.setParentid(parentid); teachplan.setStatus("0");//未发布 //子结点的级别,根据父结点来判断 if(parentGrade.equals("1")){ teachplan.setGrade("2"); }else if(parentGrade.equals("2")){ teachplan.setGrade("3");} //设置课程id teachplan.setCourseid(teachplanParent.getCourseid()); teachplanRepository.save(teachplan); return new ResponseResult(CommonCode.SUCCESS); }3.3.3.3 controller //添加课程计划 @Override @PostMapping("/teachplan/add") public ResponseResult addTeachplan(@RequestBody Teachplan teachplan) { return courseService.addTeachplan(teachplan); }3.3.3.4 测试 复杂一些的业务逻辑建议写完服务端代码就进行单元测试。使用swagger-ui或postman测试上边的课程计划添加接口。 3.3.5前端 3.3.5.1 Api调用 1、定义 api方法/*添加课程计划*/ export const addTeachplan = teachplah => { return http.requestPost(apiUrl+'/course/teachplan/add',teachplah) }
2、调用 api
} //设置课程id teachplan.setCourseid(teachplanParent.getCourseid()); teachplanRepository.save(teachplan); return new ResponseResult(CommonCode.SUCCESS); } //添加课程计划 @Override @PostMapping("/teachplan/add") public ResponseResult addTeachplan(@RequestBody Teachplan teachplan) { return courseService.addTeachplan(teachplan); } addTeachplan(){ this.$refs.teachplayForm.validate((valid) => { if (valid) { //添加课程计划时带上课程id this.teachplanActive.courseid = this.courseid; courseApi.addTeachplan(this.teachplanActive).then((res) => { if(res.success){ this.$message.success('提交成功'); //清空表单 this.teachplanActive = {} //刷新整个树 this.findTeachplan();}else{ this.$message.error('提交失败'); } }); } }) },
3.3.5 测试
测试流程:1、新建一个课程2、向新建课程中添加课程计划添加一级结点添加二级结点转载于:https://blog.51cto.com/13517854/2355651