文章目录
一.需求分析
用户操作流程:
1、进入课程计划页面,点击“添加课程计划”
2、打开添加课程计划页面,输入课程计划信息
一级 | 二级 | 三级 |
---|---|---|
跟节点 | 大章节 | 小章节 |
上级结点 不填写的情况下:
-
不选择上级结点,表示当前添加的课程计划的父节点为课程的根结点,此时使用当前课程的courseid去查询根节点具体信息(当然包括根节点的id)。
-
若此时找不到根节点,则要自动添加课程的根结点。
-
点击提交。
二.API接口
文件位置:xcEduService01\xc-service-api\src\main\java\com\xuecheng\api\course\CourseControllerApi.java
@ApiOperation("添加课程计划")
public ResponseResult addTeachplan(Teachplan teachplan);
三.后端
1.Dao
文件位置:EduService01\xc-service-manage-course\src\main\java\com\xuecheng\manage_course\dao\TeachplanRepository.java
public interface TeachplanRepository extends JpaRepository<Teachplan, String> {
//定义方法根据课程id和父结点id查询出结点列表,可以使用此方法实现查询根结点
public List<Teachplan> findByCourseidAndParentid(String courseId,String parentId);
}
2.Service
文件位置:xcEduService01\xc-service-manage-course\src\main\java\com\xuecheng\manage_course\service\CourseService.java
@Transactional
public ResponseResult addTeachplan(Teachplan teachplan) {
if(teachplan == null ||
StringUtils.isEmpty(teachplan.getPname()) ||
StringUtils.isEmpty(teachplan.getCourseid())){
ExceptionCast.cast(CommonCode.INVALID_PARAM);
}
//课程id
String courseid = teachplan.getCourseid();
//父结点的id
String parentid = teachplan.getParentid();
if(StringUtils.isEmpty(parentid)){
//获取课程的根结点
parentid = getTeachplanRoot(courseid);
}
//查询根结点信息
Optional<Teachplan> optional = teachplanRepository.findById(parentid);
Teachplan teachplan1 = optional.get();
//父结点的级别
String parent_grade = teachplan1.getGrade();
//创建一个新结点准备添加
Teachplan teachplanNew = new Teachplan();
//将teachplan的属性拷贝到teachplanNew中
BeanUtils.copyProperties(teachplan,teachplanNew);
//要设置必要的属性
teachplanNew.setParentid(parentid);
if(parent_grade.equals("1")){
teachplanNew.setGrade("2");
}else{
teachplanNew.setGrade("3");
}
teachplanNew.setStatus("0");//未发布
teachplanRepository.save(teachplanNew)