学成在线-第15天-讲义-媒资管理系统集成1学习页面查询课程计划1.1需求分析到目前为止,我们已可以编辑课程计划信息并上传课程视频,下一步我们要实现在线学习页面动态读取章节对应的视频并进行播放。在线学习页面所需要的信息有两类:一类是课程计划信息、一类是课程学习信息(视频地址、学习进度等),如下图:在线学习集成媒资管理的需求如下:1、在线学习页面显示课程计划2、点击课程计划播放该课程计划对应的视频本章节实现学习页面动态显示课程计划,进入不同课程的学习页面右侧动态显示当前课程的课程计划。1.2Api接口课程计划信息从哪里获取?目前课程计划信息在课程管理数据库和ES索引库中存在,考虑性能要求,课程发布后对课程的查询统一从ES索引库中查询。前端通过请求搜索服务获取课程信息,需要单独在搜索服务中定义课程信息查询接口。本接口接收课程id,查询课程所有信息返回给前端。北京市昌平区建材城西路金燕龙办公楼一层电话:400-618-9090返回的课程信息为json结构:key为课程id,value为课程内容。1.3服务端开发在搜索服务中开发查询课程信息接口。1.3.1Service在搜索服务中增加查询课程信息接口的service@ApiOperation("根据id查询课程信息")publicMapgetall(Stringid);publicMapgetall(Stringid){//设置索引库SearchRequestsearchRequest=newSearchRequest(es_index);//设置类型searchRequest.types(es_type);SearchSourceBuildersearchSourceBuilder=newSearchSourceBuilder();//查询条件,根据课程id查询searchSourceBuilder.query(QueryBuilders.termsQuery("id",id));//取消source源字段过虑,查询所有字段//searchSourceBuilder.fetchSource(newString[]{"name","grade","charge","pic"},newString[]{});searchRequest.source(searchSourceBuilder);SearchResponsesearchResponse=null;try{//执行搜索searchResponse=restHighLevelClient.search(searchRequest);}catch(IOExceptione){e.printStackTrace();}//获取搜索结果SearchHitshits=searchResponse.getHits();SearchHit[]searchHits=hits.getHits();Mapmap=newHashMap<>();for(SearchHithit:searchHits){StringcourseId=hit.getId();MapsourceAsMap=hit.getSourceAsMap();StringcourseId=(String)sourceAsMap.get("id");Stringname=(String)sourceAsMap.get("name");Stringgrade=(String)so...