# 資源首頁-獲取教材
```
//獲取老師默認的教材(最近使用的教材,不存在則獲取默認第一本)
V2UserService::factory()->getTeacherDefaultBook($userID);
$book = MongoService::factory()->getTextBookHistory($userID);
Array
(
[subjectID] => 1
[subjectName] => 語文
[schoolTypeID] => 1
[schoolType] => 小學
[versionID] => 1
[versionName] => 人教版
[tagID] => 68408
[bookName] => 一年級上冊(2016版)
[unitID] => 68410
[chapterID] => 68412
)
/**
* 獲取用戶設置的所有教材ID
* @param $userID
* @return array
* @author wuzhc 2017-01-17
*/
public function getTextbookIDs($userID)
{
$materialIDs = $this->_materialIDs($userID); /* 用戶設置教材 */
$schoolMaterialIDs = $this->_schoolMaterialIDs($userID); /* 學校設置教材 */
return array_unique(array_merge($schoolMaterialIDs,$materialIDs));
}
//用戶設置教材
private function _materialIDs($userID)
{
$materials = V2UserService::factory()->getSubjectMaps($userID, WK::SUBJECT_MATERIAL);
return $materials ? ArrayUtils::getColumn($materials, 'fdTagID') : array();
}
/**
* 根據用戶ID 和 教材類別 獲取 用戶的教材內容
* @param $userID // 用戶ID
* @param $tagType //教材類別:用戶對于的教材類別;such:
* WK::SUBJECT_INTERESTED - 興趣科目 ,
* WK::SUBJECT_TEACH - 任教科目 ,
* WK::SUBJECT_MATERIAL - 教材科目 3
* WK::SUBJECT_ASSIST - 輔材科目
*
* @param int | null $subjectID //科目ID
* @param int $limit //限制數據條數
* @return array
* @author zhangjsh 2015-8-19
*/
public function getSubjectMaps($userID, $tagType, $subjectID = NULL, $limit = 0)
{
$criteria = new CDbCriteria();
CDbUtils::addCondition($criteria, 't.fdUserID', $userID);
CDbUtils::addCondition($criteria, 't.fdTag', $tagType);
CDbUtils::addCondition($criteria, 't.fdSubjectID', $subjectID);
$criteria->order = 't.id DESC';
if ($limit) {
$criteria->limit = $limit;
}
return SubjectMap::model()->findAll($criteria);
}
```
## 學生/教師與科目的關系表 wkwke.tbSubjectMap
```
CREATE TABLE `tbSubjectMap` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fdUserID` int(11) DEFAULT NULL COMMENT '用戶ID,對應service.tbUser.id,用戶包括學生、教師',
`fdSubjectID` int(11) DEFAULT NULL COMMENT '科目ID,對應tbSubject.id',
`fdTag` tinyint(4) DEFAULT NULL COMMENT '1 - 興趣科目 2 - 任教科目 3 - 教材科目',
`fdTagID` int(11) NOT NULL COMMENT '教材ID,對應tbTag.id',
`fdGradeID` int(11) DEFAULT NULL COMMENT '年級ID,對應tbGrade.id',
PRIMARY KEY (`id`),
KEY `FK_CourseID` (`fdSubjectID`),
KEY `FK_GradeID` (`fdGradeID`)
) ENGINE=MyISAM AUTO_INCREMENT=425270 DEFAULT CHARSET=utf8 COMMENT='學生/教師與科目的關系表';
```

## 獲取教材封面
http://xue.test/index.php?r=user/getTextbook
D:\wamp\www\xue.test\xuetang\protected\controllers\UserController.php
/**
* 獲取當前用戶教材列表(包含學校設置教材)
* @link https://tower.im/projects/1297b9da9d2047398fb1618e20f74072/docs/1618c710490a4e559c0121a2d893c289/
* @author wuzhc 2017-01-11
*/
public function actionGetTextbook()
{
$userID = Yii::app()->user->id;
$result['textbook'] = V2UserService::factory()->getTextbook($userID);
ResponseUtils::json(array('data' => $result));
}

/**
* 獲取當前用戶教材列表(包含學校設置教材)
* @link https://tower.im/projects/1297b9da9d2047398fb1618e20f74072/docs/1618c710490a4e559c0121a2d893c289/
* @param int $userID
* @return array
* @author wuzhc 2017-01-11
*/
public function getTextbook($userID)
{
$bookHistory = MongoService::factory()->getTextBookHistory($userID); /* 最后一次設置教材歷史記錄 */
$data = array();
$bookIDs = $this->getTextbookIDs($userID);
foreach ($bookIDs as $id) {
$book = RelevanceUtils::resolveAncestors($id);
if (!$book) {
continue;
}
$temp = array();
$temp['id'] = $id;
$temp['title'] = $book[WK::TAG_ONE_LEVEL]['name'];
$temp['thumb'] = RelevanceService::factory()->getTextbookCover($id);;
$temp['schoolTypeID'] = $book[WK::SECTION_ATTR_ID]['id'];
$temp['schoolType'] = $book[WK::SECTION_ATTR_ID]['name'];
$temp['subjectID'] = $book[WK::SUJT_ATTR_ID]['id'];
$temp['subject'] = $book[WK::SUJT_ATTR_ID]['name'];
$temp['versionID'] = $book[WK::VER_ATTR_ID]['id'];
$temp['version'] = $book[WK::VER_ATTR_ID]['name'];
$temp['isSelect'] = ($id == $bookHistory['tagID']) ? 1 : 0;
$data[] = $temp;
}
return $data;
}
### 根據單個底層節點獲取并解析其祖先節點,返回如下結構:
$book = RelevanceUtils::resolveAncestors($id);

### 根據ID獲取書封面
4677
RelevanceService::factory()->getTextbookCover($id);

## 考點

- 說明
- 開發任務
- 星課-真光
- 課表
- Excel Down
- 調課
- 課表修改
- 課表代碼分析
- 課堂
- 課堂:應用商店通信管理協議
- 教師賬號強制綁定手機或郵箱
- 強制綁定手機和修改密碼的規則
- 學堂
- 課程學習:討論功能
- 后臺:課程討論管理
- 課程直播接口
- 學習統計功能(舊版)
- 學習統計功能(新版)
- 同步課程統計功能
- 同步課程編輯-新增視頻
- 第三方接口
- 學科網
- 安徽第三方
- 大賽
- 管控系統
- 日志管理
- 設備日志
- 平板接口
- 渝教
- 教學總結
- 空白目錄
- Yii 1.1
- 學堂架構
- Yii 1.1一些方法的解讀
- MVCS結構
- 基礎使用語法
- 創建1個新模塊
- 關聯模型
- CDbCriteria
- 學生-課堂記錄
- 學生端頁面展示
- 教師端頁面展示
- 編輯課程文檔
- SQL
- 課堂項目運行入口
- 上傳資源示意圖
- 行為
- PHPStorm
- 源碼閱讀
- 會診答卷頁面
- 考點練習
- 資源首頁
- 同步課程
- 同步課程:章節信息
- 升學復習
- 統計圖-范例
- 模塊
- 非法詞
- 服務層
- MongoDB類
- 學堂作答記錄從Mongo新集合獲取數據
- MongoYii
- 錯題集
- 小技巧
- 完善資料
- 郵件發送
- K12
- JSpang視頻課程
- MongoDB
- 創業
- 項目
- 包包