# 修改課表
## 需求說明
在指定的日期,替換科目ID。
#### 實現:
*1、修改的情況*
**班級課表:**
根據日期(當前日期大于修改日期時就啟用修改后的課表)、周、節、科目,去判斷是否有修改。如果有修改,則覆蓋掉舊的課表。
**教師課表:**
根據老師執教的班級、日期、科目獲取是否有修改課表的記錄。如果有修改,才修改教師課表。
所教班級、周、節、科目,去判斷是否有修改。
*2、新增的情況*
**班級課表:**
根據班級、日期(修改前,不需要修改)判斷是否有新增課表的記錄。如果有,添加到課表中。
**教師課表:**
....
## 會有影響的接口
**課表管理:**
- ~~獲取作息時間 tms/timetable/getRestTimetable~~
- ~~批量設置作息時間 tms/timetable/settingRestTime~~
- ~~選擇年級ID獲取班級列表 tms/timetable/getClassesList~~
- 獲取班級課表 tms/timetable/getClassTimetable
- ~~設置班級課程表 tms/timetable/setClassesTimetable~~
- 獲取教師課表列表 tms/timetable/getTeacherTimetableList
**教師首頁課表:**
- 獲取教師課表 xingke/timetable/getTeacherTimetable
- ~~獲取教師所教的班級 xingke/timetable/getClassListByTeacherID~~
- ~~教師調課 xingke/timetable/saveAdjustClass~~
- ~~獲取每節課開始和結束時間 xingke/timetable/getTimetableSetting~~
- ~~獲取課程表資源: xingke/timetable/getResources~~
**學生首頁課表:**
- 獲取班級課程表 xingke/timetable/getClassTimeTable
## 修改課表記錄表字段
- fdTermID
- fdClassID
- fdDate
- fdWeekID
- fdClassIndex
- fdSubjectID
- fdSourceSubjectID
- fdUserID
- fdCreate
```
CREATE TABLE `tbTimetableChange` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fdTermID` int(11) DEFAULT NULL COMMENT '學期ID',
`fdClassID` int(11) DEFAULT NULL COMMENT '班級ID',
`fdDate` date DEFAULT NULL COMMENT '指定變更日期',
`fdWeekID` tinyint(4) DEFAULT NULL COMMENT '星期 1-7',
`fdClassIndex` tinyint(4) DEFAULT NULL COMMENT '當前課節次',
`fdSubjectID` tinyint(4) DEFAULT NULL COMMENT '當前課科目ID',
`fdSourceSubjectID` tinyint(4) DEFAULT NULL COMMENT '原課被修改為科目ID',
`fdUserID` int(11) DEFAULT NULL COMMENT '操作者用戶ID',
`fdCreate` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `classid` (`fdClassID`)
) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=utf8 COMMENT='修改課表記錄';
```
### 獲取課表接口
Request URL: http://ketang.test/index.php?r=tms/timetable/getClassTimetable&classID=20331&gradeID=7
- Request Method: GET
- r: tms/timetable/getClassTimetable
- classID: 20331
- gradeID: 7
```json
{
"data": {
"timetable": [{
"weekID": "1",
"class": [{
"classIndex": "1",
"subjectID": "1",
"subject": "語文",
"teacher": [{
"name": "賀洵",
"id": "2895089"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}, {
"name": "董老師",
"id": "618430"
}]
}, {
"classIndex": "2",
"subjectID": "1",
"subject": "語文",
"teacher": [{
"name": "賀洵",
"id": "2895089"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}, {
"name": "董老師",
"id": "618430"
}]
}, {
"classIndex": "3",
"subjectID": "1",
"subject": "語文",
"teacher": [{
"name": "賀洵",
"id": "2895089"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}, {
"name": "董老師",
"id": "618430"
}]
}, {
"classIndex": "4",
"subjectID": "1",
"subject": "語文",
"teacher": [{
"name": "賀洵",
"id": "2895089"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}, {
"name": "董老師",
"id": "618430"
}]
}, {
"classIndex": "5",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "6",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "8",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "9",
"subjectID": "3",
"subject": "英語",
"teacher": [{
"name": "香欽源",
"id": "1251338"
}, {
"name": "董老師",
"id": "618430"
}]
}, {
"classIndex": "10",
"subjectID": "7",
"subject": "音樂",
"teacher": []
}],
"date": "2019-5-27",
"week": "周一"
}, {
"weekID": "2",
"class": [{
"classIndex": "1",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "2",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "3",
"subjectID": "5",
"subject": "科學",
"teacher": []
}, {
"classIndex": "4",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "5",
"subjectID": "6",
"subject": "體育與健康",
"teacher": []
}, {
"classIndex": "6",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "8",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "9",
"subjectID": "7",
"subject": "音樂",
"teacher": []
}, {
"classIndex": "10",
"subjectID": "7",
"subject": "音樂",
"teacher": []
}],
"date": "2019-5-28",
"week": "周二"
}, {
"weekID": "3",
"class": [{
"classIndex": "3",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "4",
"subjectID": "8",
"subject": "美術",
"teacher": [{
"name": "帥嘉亮",
"id": "1459420"
}]
}, {
"classIndex": "5",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "8",
"subjectID": "10",
"subject": "其他",
"teacher": []
}, {
"classIndex": "9",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "10",
"subjectID": "11",
"subject": "物理",
"teacher": []
}],
"date": "2019-5-29",
"week": "周三"
}, {
"weekID": "4",
"class": [{
"classIndex": "3",
"subjectID": "11",
"subject": "物理",
"teacher": []
}, {
"classIndex": "4",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "5",
"subjectID": "12",
"subject": "化學",
"teacher": []
}, {
"classIndex": "8",
"subjectID": "7",
"subject": "音樂",
"teacher": []
}, {
"classIndex": "9",
"subjectID": "8",
"subject": "美術",
"teacher": [{
"name": "帥嘉亮",
"id": "1459420"
}]
}, {
"classIndex": "10",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}],
"date": "2019-5-30",
"week": "周四"
}, {
"weekID": "5",
"class": [{
"classIndex": "3",
"subjectID": "16",
"subject": "信息技術",
"teacher": []
}, {
"classIndex": "4",
"subjectID": "15",
"subject": "歷史",
"teacher": []
}, {
"classIndex": "5",
"subjectID": "14",
"subject": "地理",
"teacher": []
}, {
"classIndex": "8",
"subjectID": "4",
"subject": "政治(道德與法治)",
"teacher": []
}, {
"classIndex": "9",
"subjectID": "3",
"subject": "英語",
"teacher": [{
"name": "香欽源",
"id": "1251338"
}, {
"name": "董老師",
"id": "618430"
}]
}, {
"classIndex": "10",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}],
"date": "2019-5-31",
"week": "周五"
}, {
"weekID": "6",
"class": [{
"classIndex": "5",
"subjectID": "1",
"subject": "語文",
"teacher": [{
"name": "賀洵",
"id": "2895089"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}, {
"name": "董老師",
"id": "618430"
}]
}, {
"classIndex": "6",
"subjectID": "1",
"subject": "語文",
"teacher": [{
"name": "賀洵",
"id": "2895089"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}, {
"name": "董老師",
"id": "618430"
}]
}, {
"classIndex": "8",
"subjectID": "3",
"subject": "英語",
"teacher": [{
"name": "香欽源",
"id": "1251338"
}, {
"name": "董老師",
"id": "618430"
}]
}, {
"classIndex": "9",
"subjectID": "2",
"subject": "數學",
"teacher": [{
"name": "吳金容",
"id": "1424397"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}]
}, {
"classIndex": "10",
"subjectID": "1",
"subject": "語文",
"teacher": [{
"name": "賀洵",
"id": "2895089"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}, {
"name": "董老師",
"id": "618430"
}]
}],
"date": "2019-6-01",
"week": "周六"
}, {
"weekID": "7",
"class": [{
"classIndex": "8",
"subjectID": "7",
"subject": "音樂",
"teacher": []
}, {
"classIndex": "9",
"subjectID": "1",
"subject": "語文",
"teacher": [{
"name": "賀洵",
"id": "2895089"
}, {
"name": "香欽源",
"id": "1251338"
}, {
"name": "莫小一",
"id": "677552"
}, {
"name": "董老師",
"id": "618430"
}]
}, {
"classIndex": "10",
"subjectID": "5",
"subject": "科學",
"teacher": []
}],
"date": "2019-6-02",
"week": "周日"
}],
"classNum": {
"morningClassNum": "0",
"forenoonClassNum": "4",
"afternoonClassNum": "3",
"nightClassNum": "0"
},
"isHeader": false
},
"status": 0,
"msg": "success",
"ssk": null,
"systime": 1559119015000
}
```
## 代碼
*D:\wamp\www\ketang.test\weike\protected\modules\tms\controllers\TimetableController.php*
```
private function _checkChangeTimetable($timetables, $termID, $week, $subjectIDs = [])
{
$classID = 0;
foreach ($timetables as $k => $v) {
$classID = $v->fdClassID;
$dateFullName = $week[$v->fdWeekID - 1]['date'];
$weekID = $v->fdWeekID;
$classIndex = $v->fdClassIndex;
$subjectID = $v->fdSubjectID;
// 按日期查詢是否有修改課表(換課) add by wangbo 2019-6-18
/*$change = TimetableService::factory()->getChangeTimetable($termID, $classID, $dateFullName, $weekID, $classIndex, $subjectID);
if ($change) {
$timetables[$k]->fdSubjectID = $change->fdSourceSubjectID;
}*/
// p($timetables); die;
}
// 獲取本周的起始時間,查詢本周是否有新增的課程
/*$beginDate = $week[0]['date'];
$endDate = $week[count($week) - 1]['date'];*/
$today = date("Y-m-d");
$criteria = new CDbCriteria();
$criteria->compare("fdTermID", $termID);
$criteria->compare("fdClassID", $classID);
$criteria->compare("fdSubjectID", 0);
if ($subjectIDs) {
// 教師課表,需要按教師所教科目查詢
$criteria->addInCondition("fdSourceSubjectID", $subjectIDs);
}
$criteria->addCondition("fdBeginDate <= '{$today}'");
$criteria->addCondition("fdEndDate >= '{$today}'");
$res = teaTimetableChange::model()->findAll($criteria);
// var_dump($res); die;
// var_dump( $timetables); die;
/*
SELECT * FROM `wkteach`.`tbTimetableChange` `t` WHERE
((((fdTermID=:ycp164) AND (fdClassID=:ycp165)) AND (fdSubjectID=:ycp166))
AND (fdBeginDate <= '2019-06-03')) AND (fdEndDate >= '2019-06-03')
*/
// var_dump($res); die;
if ($res && $timetables) {
foreach ($res as $v) {
$temp = clone $timetables[0];
$temp->fdClassIndex = $v->fdClassIndex;
$temp->fdWeekID = $v->fdWeekID;
$temp->fdSubjectID = $v->fdSourceSubjectID;
$timetables = array_merge($timetables, [$temp]);
}
}
// var_dump($timetables); die;
return $timetables;
}
```
- 說明
- 開發任務
- 星課-真光
- 課表
- Excel Down
- 調課
- 課表修改
- 課表代碼分析
- 課堂
- 課堂:應用商店通信管理協議
- 教師賬號強制綁定手機或郵箱
- 強制綁定手機和修改密碼的規則
- 學堂
- 課程學習:討論功能
- 后臺:課程討論管理
- 課程直播接口
- 學習統計功能(舊版)
- 學習統計功能(新版)
- 同步課程統計功能
- 同步課程編輯-新增視頻
- 第三方接口
- 學科網
- 安徽第三方
- 大賽
- 管控系統
- 日志管理
- 設備日志
- 平板接口
- 渝教
- 教學總結
- 空白目錄
- Yii 1.1
- 學堂架構
- Yii 1.1一些方法的解讀
- MVCS結構
- 基礎使用語法
- 創建1個新模塊
- 關聯模型
- CDbCriteria
- 學生-課堂記錄
- 學生端頁面展示
- 教師端頁面展示
- 編輯課程文檔
- SQL
- 課堂項目運行入口
- 上傳資源示意圖
- 行為
- PHPStorm
- 源碼閱讀
- 會診答卷頁面
- 考點練習
- 資源首頁
- 同步課程
- 同步課程:章節信息
- 升學復習
- 統計圖-范例
- 模塊
- 非法詞
- 服務層
- MongoDB類
- 學堂作答記錄從Mongo新集合獲取數據
- MongoYii
- 錯題集
- 小技巧
- 完善資料
- 郵件發送
- K12
- JSpang視頻課程
- MongoDB
- 創業
- 項目
- 包包