首页
登录 | 注册

Java的新项目学成在线笔记-day15(一)

1 学习页面查询课程计划 1.1 需求分析

到目前为止,我们已可以编辑课程计划信息并上传课程视频,下一步我们要实现在线学习页面动态读取章节对应的 视频并进行播放。在线学习页面所需要的信息有两类:一类是课程计划信息、一类是课程学习信息(视频地址、学 习进度等),如下图:

在线学习集成媒资管理的需求如下:
1、在线学习页面显示课程计划
2、点击课程计划播放该课程计划对应的视频
本章节实现学习页面动态显示课程计划,进入不同课程的学习页面右侧动态显示当前课程的课程计划。
1.2 Api接口
课程计划信息从哪里获取?
目前课程计划信息在课程管理数据库和ES索引库中存在,考虑性能要求,课程发布后对课程的查询统一从ES索引库 中查询。
前端通过请求搜索服务获取课程信息,需要单独在搜索服务中定义课程信息查询接口。
本接口接收课程id,查询课程所有信息返回给前端。


[mw_shl_code=applescript,true]@ApiOperation("根据id查询课程信息") 
public Map<String,CoursePub> getall(String id);[/mw_shl_code]

返回的课程信息为json结构:key为课程id,value为课程内容。 1.3 服务端开发
在搜索服务中开发查询课程信息接口。
1.3.1 Service
在搜索服务中增加查询课程信息接口的service


[mw_shl_code=applescript,true]public Map<String, CoursePub> getall(String id) {      
   //设置索引库       
  SearchRequest searchRequest = new SearchRequest(es_index);    
     //设置类型   
      searchRequest.types(es_type);       
  SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();    
     //查询条件,根据课程id查询    
     searchSourceBuilder.query(QueryBuilders.termsQuery("id", id));   
      //取消source源字段过虑,查询所有字段 //    
    searchSourceBuilder.fetchSource(new String[]{"name", "grade", "charge","pic"}, new  String[]{});   
      searchRequest.source(searchSourceBuilder);     
    SearchResponse searchResponse = null;      
   try {   
          //执行搜索     
        searchResponse = restHighLevelClient.search(searchRequest);  
       } catch (IOException e) { 
           e.printStackTrace();   
      }      
   //获取搜索结果  
       SearchHits hits = searchResponse.getHits(); 
        SearchHit[] searchHits = hits.getHits();    
     Map<String,CoursePub> map = new HashMap<>();  
       for (SearchHit hit : searchHits) {      
       String courseId = hit.getId();      
       Map<String, Object> sourceAsMap = hit.getSourceAsMap();   
          String courseId = (String) sourceAsMap.get("id");     
        String name = (String) sourceAsMap.get("name");     
       String grade = (String) sourceAsMap.get("grade");    
         String charge = (String) sourceAsMap.get("charge");      
       String pic = (String) sourceAsMap.get("pic");     
        String description = (String) sourceAsMap.get("description");      
       String teachplan = (String) sourceAsMap.get("teachplan");      
       CoursePub coursePub = new CoursePub();      
       coursePub.setId(courseId);       
      coursePub.setName(name);
            coursePub.setPic(pic);[/mw_shl_code]
[mw_shl_code=applescript,true] coursePub.setGrade(grade);  
           coursePub.setTeachplan(teachplan);       
      coursePub.setDescription(description);     
        map.put(courseId,coursePub);    
     }       
    return map;    
}
[/mw_shl_code]
1.3.2 Controller 
[mw_shl_code=applescript,true]@Override @GetMapping("/getall/{id}") public Map<String, CoursePub> getall(@PathVariable("id") String id)  {     return esCourseService.getall(id);
}
[/mw_shl_code]

1.3.3 测试
使用swagger-ui或postman测试查询课程信息接口。

本文网址:http://www.bnee.net/article/3666870.html

相关文章

  • Java的新项目学成在线笔记-day1(二)
    3 CMS需求分析 3.1 什么是CMS 1.CMS是什么 ? CMS (Content Management System)即内容管理系统,不同的项目对CMS的定位不同,比如:一个在线教育网 站,有些公司认为CMS系统是对所有的课程资源进 ...
  • 2.3.3 静态页面测试 2.3.3.1页面加载思路 打开课程资料中的"静态页面目录"中的课程详情模板页面,研究页面加载的思路.模板页面路径如下:[mw_shl_code=applescript,true]静态页面目录\ ...
  • 5.4 课程预览服务端 5.4.1 Api定义 此Api是课程管理前端请求服务端进行课程预览的Api 请求:课程Id响应:课程预览Url 1.定义响应类型 [mw_shl_code=applescript,true]@Data @ToStr ...
  • Java的新项目学成在线笔记-day9(十四)
    5 课程预览功能开发 5.1 需求分析 课程预览功能将使用cms系统提供的页面预览功能,业务流程如下:1.用户进入课程管理页面,点击课程预览,请求到课程管理服务 2.课程管理服务远程调用cms添加页面接口向cms添加课程详情页面3.课程管理 ...
  • 4.3.2 模板测试 使用test-freemarker工程测试模板编写模板过程采用test-freemarker工程测试模板. 将course.ftl拷贝到test-freemarker工程的```resources/templates下 ...
  • 4.2.5 测试 使用swagger-ui或postman测试本接口.4.3 课程信息模板设计 在确定了静态化所需要的数据模型之后,就可以编写页面模板了,课程详情页面由多个静态化页面组成,所以我们 需要创建多个页面模板,本章节创建课程详情页 ...
  • 4.2 课程数据模型查询接口 静态化操作需要模型数据方可进行静态化,课程数据模型由课程管理服务提供,仅供课程静态化程序调用使用. 4.2.1 接口定义 1.响应结果类型 [mw_shl_code=applescript,true]@Data ...
  • Java的新项目学成在线笔记-day9(十)
    2.3.3.4 页面测试 请求:http://www.xuecheng.com/course/detail/course_main_template.html测试课程详情页面模板是否可以正 常浏览.2.3.3.5 页面动态脚本 为了方便日后 ...

2019 bnee小站 webmaster#bnee.net
12 q. 0.031 s.
湘ICP备19013596号-2