3.3.4 前端开发 3.3.4.1 API方法
定义api方法,调用课程管理服务保存媒资信息接口
[mw_shl_code=applescript,true]/保存媒资信息/
export const savemedia = teachplanMedia => {
return http.requestPost(apiUrl+'/course/savemedia',teachplanMedia); }
[/mw_shl_code]
3.3.4.2 API调用
在课程视频方法中调用api:
[mw_shl_code=applescript,true]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)
} }) },[/mw_shl_code]
3.3.4测试
1、向叶子结点课程计划保存媒资信息
操作结果:保存成功
2、向非叶子结点课程计划保存媒资信息
操作结果:保存失败
3.4 查询视频信息 3.4.1 需求分析 课程计划的视频信息保存后在页面无法查看,本节解决课程计划页面显示相关联的媒资信息。 解决方案: 在获取课程计划树结点信息时将关联的媒资信息一并查询,并在前端显示,下图说明了课程计划显示的区域。
3.4.2 Dao 修改课程计划查询的Dao: 1、修改模型 在课程计划结果信息中添加媒资信息
[mw_shl_code=applescript,true]@Data
@ToString public class TeachplanNode extends Teachplan {
List<TeachplanNode> children;
//媒资信息
private String mediaId;
private String mediaFileOriginalName;
}[/mw_shl_code]
2、修改sql语句,添加关联查询媒资信息
添加mediaId、mediaFileOriginalName
[mw_shl_code=applescript,true]<resultMap type="com.xuecheng.framework.domain.course.ext.TeachplanNode" id="teachplanMap" > <id property="id" column="one_id"/>
<result property="pname" column="one_name"/>
<result property="grade" column="one_grade"/>
<collection property="children" ofType="com.xuecheng.framework.domain.course.ext.TeachplanNode">
[/mw_shl_code]
[mw_shl_code=applescript,true]<id property="id" column="two_id"/>
<result property="pname" column="two_name"/>
<result property="grade" column="two_grade"/>
<collection property="children" ofType="com.xuecheng.framework.domain.course.ext.TeachplanNode">
<id property="id" column="three_id"/>
<result property="pname" column="three_name"/>
<result property="grade" column="three_grade"/>
<result property="mediaId" column="mediaId"/>
<result property="mediaFileOriginalName" column="mediaFileOriginalName"/>
</collection>
</collection>
</resultMap>
<select id="selectList" resultMap="teachplanMap" parameterType="java.lang.String" >
SELECT
a.id one_id,
a.pname one_name,
a.grade one_grade,
a.orderby one_orderby,
b.id two_id,
b.pname two_name,
b.grade two_grade,
b.orderby two_orderby,
c.id three_id,
c.pname three_name,
c.grade three_grade,
c.orderby three_orderby,
media.media_id mediaId,
media.media_fileoriginalname mediaFileOriginalName
FROM teachplan a LEFT JOIN teachplan b
ON a.id = b.parentid
LEFT JOIN teachplan c
ON b.id = c.parentid
LEFT JOIN teachplan_media media
ON c.id = media.teachplan_id
WHERE a.parentid = '0'
<if test="_parameter!=null and _parameter!=''">
and a.courseid=#{courseId}
</if>
ORDER BY a.orderby,
b.orderby,
c.orderby
</select>
[/mw_shl_code]