黑马程序员技术交流社区

标题: 【郑州校区】Java的新项目学成在线笔记-day14(十一) [打印本页]

作者: 谷粒姐姐    时间: 2019-6-3 11:14
标题: 【郑州校区】Java的新项目学成在线笔记-day14(十一)
3.3 保存视频信息
3.3.1 需求分析

用户进入课程计划页面,选择视频,将课程计划与视频信息保存在课程管理数据库中。
用户操作流程:
1、进入课程计划,点击”选择视频“,打开我的媒资查询页面
2、为课程计划选择对应的视频,选择“选择” 3、前端请求课程管理服务保存课程计划与视频信息。
  3.3.2 数据模型
在课程管理数据库创建表 teachplan_media 存储课程计划与媒资关联信息,如下:

创建teachplanMedia 模型类:

[AppleScript] 纯文本查看 复制代码
@Data  
@ToString  @Entity
  @Table(name="teachplan_media")  
@GenericGenerator(name = "jpa‐assigned", strategy = "assigned")  public class TeachplanMedia implements Serializable {      private static final long serialVersionUID = ‐916357110051689485L;
     @Id   
   @GeneratedValue(generator = "jpa‐assigned")  
    @Column(name="teachplan_id")   
   private String teachplanId;  
      @Column(name="media_id")   
   private String mediaId;   
    @Column(name="media_fileoriginalname")  
    private String mediaFileOriginalName;   
      @Column(name="media_url")  
    private String mediaUrl;      
        @Column(name="courseid")  
    private String courseId;    }

3.3.3  API接口
此接口作为前端请求课程管理服务保存课程计划与视频信息的接口:
在课程管理服务增加接口:

[AppleScript] 纯文本查看 复制代码
@ApiOperation("保存媒资信息") 
public ResponseResult savemedia(TeachplanMedia teachplanMedia);

3.3.4  服务端开发 3.3.3.1 DAO
创建TeachplanMediaRepository用于对TeachplanMedia的操作。

[AppleScript] 纯文本查看 复制代码
public interface TeachplanMediaRepository extends JpaRepository<TeachplanMedia, String> {  
}   

3.3.3.2 Service
[AppleScript] 纯文本查看 复制代码
//保存媒资信息 public ResponseResult savemedia(TeachplanMedia teachplanMedia) {  
   if(teachplanMedia == null){      
   ExceptionCast.cast(CommonCode.INVALIDPARAM);   
  }     
//课程计划  
   String teachplanId = teachplanMedia.getTeachplanId();  
     //查询课程计划  
   Optional<Teachplan> optional = teachplanRepository.findById(teachplanId);  
   if(!optional.isPresent()){     
    ExceptionCast.cast(CourseCode.COURSE_MEDIA_TEACHPLAN_ISNULL);
    }   
  Teachplan teachplan = optional.get();
    //只允许为叶子结点课程计划选择视频   
  String grade = teachplan.getGrade();  
   if(StringUtils.isEmpty(grade) || !grade.equals("3")){   
      ExceptionCast.cast(CourseCode.COURSE_MEDIA_TEACHPLAN_GRADEERROR);   
  }   
TeachplanMedia one = null;  
   Optional<TeachplanMedia> teachplanMediaOptional =  teachplanMediaRepository.findById(teachplanId);  
   if(!teachplanMediaOptional.isPresent()){      
   one = new TeachplanMedia();   
  }else{      
   one = teachplanMediaOptional.get();   
  }   
//保存媒资信息与课程计划信息  
   one.setTeachplanId(teachplanId);   
  one.setCourseId(teachplanMedia.getCourseId());  
   one.setMediaFileOriginalName(teachplanMedia.getMediaFileOriginalName());  
   one.setMediaId(teachplanMedia.getMediaId());   
  one.setMediaUrl(teachplanMedia.getMediaUrl());   
teachplanMediaRepository.save(one);   
  return new ResponseResult(CommonCode.SUCCESS);
  }

3.3.3.3 Controller
[AppleScript] 纯文本查看 复制代码
@Override
@PostMapping("/savemedia") public ResponseResult savemedia(@RequestBody TeachplanMedia teachplanMedia) {     return courseService.savemedia(teachplanMedia);
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2