2.2.3 Dao
创建TeachplanMediaPub表的Dao,向TeachplanMediaPub存储信息采用先删除该课程的媒资信息,再添加该课 程的媒资信息,所以这里定义根据课程id删除课程计划媒资方法:

[mw_shl_code=applescript,true]public interface TeachplanMediaPubRepository extends JpaRepository {  
   //根据课程id删除课程计划媒资信息  
   long deleteByCourseId(String courseId); 
} //从TeachplanMedia查询课程计划媒资信息 public interface TeachplanMediaRepository extends JpaRepository {
     List findByCourseId(String courseId); }
[/mw_shl_code]

2.2.4 Service
编写保存课程计划媒资信息方法,并在课程发布时调用此方法。
1、保存课程计划媒资信息方法
本方法采用先删除该课程的媒资信息,再添加该课程的媒资信息。


[mw_shl_code=applescript,true]//保存课程计划媒资信息 private void saveTeachplanMediaPub(String courseId){ 
    //查询课程媒资信息   
  List teachplanMediaList = teachplanMediaRepository.findByCourseId(courseId);   
  //将课程计划媒资信息存储待索引表    
teachplanMediaPubRepository.deleteByCourseId(courseId);  
   List teachplanMediaPubList = new ArrayList<>();  
   for(TeachplanMedia teachplanMedia:teachplanMediaList){  
       TeachplanMediaPub teachplanMediaPub =new TeachplanMediaPub();   
      BeanUtils.copyProperties(teachplanMedia,teachplanMediaPub);    
     teachplanMediaPubList.add(teachplanMediaPub);
     }   
teachplanMediaPubRepository.saveAll(teachplanMediaPubList); }
[/mw_shl_code]

2、课程发布时调用此方法 修改课程发布的service方法:


[mw_shl_code=applescript,true].... 
//保存课程计划媒资信息到待索引表 saveTeachplanMediaPub(courseId); 
//页面url String pageUrl = cmsPostPageResult.getPageUrl(); 
return new CoursePublishResult(CommonCode.SUCCESS,pageUrl); 
.....[/mw_shl_code]

3.2.5 测试
测试课程发布后是否成功将课程媒资信息存储到teachplan_media_pub中,测试流程如下:
1、指定一个课程
2、为课程计划添加课程媒资
3、执行课程发布
4、观察课程计划媒资信息是否存储至teachplan_media_pub中
注意:由于此测试仅用于测试发布课程计划媒资信息的功能,可暂时将cms页面发布的功能暂时屏蔽,提高测试效 率。