A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

3.3.4 前端开发 3.3.4.1  API方法
定义api方法,调用课程管理服务保存媒资信息接口
[AppleScript] 纯文本查看 复制代码
/*保存媒资信息*/ 
 export const savemedia = teachplanMedia => {   
 return http.requestPost(apiUrl+'/course/savemedia',teachplanMedia);  } 

3.3.4.2  API调用
在课程视频方法中调用api:

[AppleScript] 纯文本查看 复制代码
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、向非叶子结点课程计划保存媒资信息
操作结果:保存失败

3.4 查询视频信息
3.4.1 需求分析
课程计划的视频信息保存后在页面无法查看,本节解决课程计划页面显示相关联的媒资信息。
解决方案:
在获取课程计划树结点信息时将关联的媒资信息一并查询,并在前端显示,下图说明了课程计划显示的区域。

1559532033(1).jpg
3.4.2 Dao
修改课程计划查询的Dao: 1、修改模型
在课程计划结果信息中添加媒资信息

[AppleScript] 纯文本查看 复制代码
@Data
  @ToString  public class TeachplanNode extends Teachplan {     
   List<TeachplanNode> children;     
   //媒资信息    
  private String mediaId;   
   private String mediaFileOriginalName; 
 }

2、修改sql语句,添加关联查询媒资信息
添加mediaId、mediaFileOriginalName

[AppleScript] 纯文本查看 复制代码
<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"> 

[AppleScript] 纯文本查看 复制代码
<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> 




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马