阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发

api内定义接口

阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第1张图片

controller内实现接口

阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第2张图片

阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第3张图片

 

service

service内定义添加课程的计划
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第4张图片
判断当前对象是否为空,对象的课程id 课程名称 是够为空 ,如果为空就抛出非法参数的异常。
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第5张图片

阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第6张图片

所有的课程的根节点的parentId是0
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第7张图片
这样就查到了根节点阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第8张图片

定义TeachplanRepository

阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第9张图片

准备通过courseId和parentId这两个字段来查询阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第10张图片

service内调用方法

先注入
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第11张图片

阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第12张图片
查询不到要自动添加根节点
注入课程的repository
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第13张图片
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第14张图片
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第15张图片

保存后就可以返回这个courseId了
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第16张图片

Mysql是有实物控制的 所以要加上@Transactional这个注解。增删改的操作一定要加上事务阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第17张图片

主方法调用

如果parentId没有选择,也就是传过来的值是空格的。就添加一条根节点的数据并返回回来这个parentid。
然后创建一个新的对象。把json对象传递过来的对象的属性值赋值给这个新的对象。
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第18张图片
父节点的级别是0那么它的子节点的grade级别就是1.如果父节点级别是2 那么子节点级别就是3了
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第19张图片
这样级别就设置好了。
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第20张图片

阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第21张图片

运行swaggerUI

阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第22张图片
里面就可以填写json数据
阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发_第23张图片

你可能感兴趣的:(阶段5 3.微服务项目【学成在线】_day06 页面发布 课程管理_19-课程计划添加-接口开发)