新聞中心
1 學習頁面查詢課程計劃 1.1 需求分析
到目前為止,我們已可以編輯課程計劃信息并上傳課程視頻,下一步我們要實現(xiàn)在線學習頁面動態(tài)讀取章節(jié)對應的 視頻并進行播放。在線學習頁面所需要的信息有兩類:一類是課程計劃信息、一類是課程學習信息(視頻地址、學 習進度等),如下圖:
在線學習集成媒資管理的需求如下:
1、在線學習頁面顯示課程計劃
2、點擊課程計劃播放該課程計劃對應的視頻
本章節(jié)實現(xiàn)學習頁面動態(tài)顯示課程計劃,進入不同課程的學習頁面右側動態(tài)顯示當前課程的課程計劃。
1.2 Api接口
課程計劃信息從哪里獲?。?br/>目前課程計劃信息在課程管理數(shù)據(jù)庫和ES索引庫中存在,考慮性能要求,課程發(fā)布后對課程的查詢統(tǒng)一從ES索引庫 中查詢。
前端通過請求搜索服務獲取課程信息,需要單獨在搜索服務中定義課程信息查詢接口。
本接口接收課程id,查詢課程所有信息返回給前端。
[mw_shl_code=applescript,true]@ApiOperation("根據(jù)id查詢課程信息")
public Map getall(String id);[/mw_shl_code]
返回的課程信息為json結構:key為課程id,value為課程內(nèi)容。 1.3 服務端開發(fā)
在搜索服務中開發(fā)查詢課程信息接口。
1.3.1 Service
在搜索服務中增加查詢課程信息接口的service
[mw_shl_code=applescript,true]public Map getall(String id) {
//設置索引庫
SearchRequest searchRequest = new SearchRequest(es_index);
//設置類型
searchRequest.types(es_type);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
//查詢條件,根據(jù)課程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 {
//執(zhí)行搜索
searchResponse = restHighLevelClient.search(searchRequest);
} catch (IOException e) {
e.printStackTrace();
}
//獲取搜索結果
SearchHits hits = searchResponse.getHits();
SearchHit[] searchHits = hits.getHits();
Map map = new HashMap<>();
for (SearchHit hit : searchHits) {
String courseId = hit.getId();
Map 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 getall(@PathVariable("id") String id) { return esCourseService.getall(id);
}
[/mw_shl_code]
1.3.3 測試
使用swagger-ui或postman測試查詢課程信息接口。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)頁標題:Java的新項目學成在線筆記-day15(一)-創(chuàng)新互聯(lián)
標題來源:http://www.dlmjj.cn/article/isejs.html