オンラインの研究 - 14日目 - 講演 - メディアアセットマネジメント5

3.3  動画情報を保存 
3.3.1  の需要の分析 
授業計画のページを入力するには、ユーザー、ビデオを選択し、ビデオは、データベースに格納されたレッスンプランやコース管理情報となります。 
:ユーザーは手順操作する 
1をクリックし、レッスンプランの中に、選択した映像、」私のメディア情報照会ページ開き、 
2を選択し、対応するカリキュラム計画ビデオを選択し、選択」 
3 レッスンプランとビデオ情報を保存するために、フロントエンド要求コース管理サービスを。 
3.3.2  データモデル 
コース管理データベースにテーブルを作成するための  teachplan_mediaの  ストアレッスンプランやメディア情報関連情報として、以下のとおり
 
作成teachplanMediaの  モデルクラスを:, 

@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のへのインタフェース 
:授業計画と要求ビデオ・インターフェース・プログラム管理サービスを保存するためのフロントエンドとして、このインターフェース 
インターフェースプログラム管理サービスを向上させます:

@ApiOperation("保存媒资信息")
public ResponseResult savemedia(TeachplanMedia teachplanMedia);

3.3.4  サーバー開発 
3.3.3.1 DAOを
作成TeachplanMediaRepository ためTeachplanMediaの操作を。

public interface TeachplanMediaRepository extends JpaRepository<TeachplanMedia, String> {
}

3.3.3.2サービス

//保存媒资信息
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コントローラ

@Override
@PostMapping("/savemedia")
public ResponseResult savemedia(@RequestBody TeachplanMedia teachplanMedia) {
return courseService.savemedia(teachplanMedia);
}

3.3.4  フロントエンド開発 
3.3.4.1 APIのメソッド 
定義されたAPIの方法は、コース管理サービス・インターフェース情報保存されたメディア資産と呼ばれています

/*保存媒资信息*/
export const savemedia = teachplanMedia => {
return http.requestPost(apiUrl+'/course/savemedia',teachplanMedia);
}

3.3.4.2 APIの呼び出し 
コースのメソッドビデオ通話でのAPI

choosemedia(mediaId,fileOriginalName,mediaUrl){
this.mediaFormVisible = false;
//保存课程计划与视频对应关系
let teachplanMedia = {};
teachplanMedia.teachplanId = this.activeTeachplanId;
teachplanMedia.mediaId = mediaId;
teachplanMedia.mediaFileOriginalName = fileOriginalName;
teachplanMedia.mediaUrl = mediaUrl;
teachplanMedia.courseId = this.courseid;
//保存媒资信息到课程数据库
courseApi.savemedia(teachplanMedia).then(res=>{
if(res.success){
this.$message.success("选择视频成功")
}else{
this.$message.error(res.message)
}
})
},

3.3.4はテスト 
1は、リーフノード情報保存されたメディア情報ポイントレッスンプランの 
結果:成功したセーブ 
2は、メディア資産情報は非リーフノードレッスンプランに保存されている 
結果:保存に失敗しました 

835元記事公開 ウォンの賞賛152 ビューに14万+を

おすすめ

転載: blog.csdn.net/qq_40208605/article/details/104195449