加上時間已過是否強制結束學習選項

This commit is contained in:
Yuan Chiu 2014-10-28 14:17:22 +08:00
parent ca7302a47c
commit d11804030f
3 changed files with 68 additions and 14 deletions

View File

@ -25,7 +25,7 @@ require_once UELEARNING_LIB_ROOT.'/Database/Exception.php';
* *
* $db = new Database\DBStudyActivity(); * $db = new Database\DBStudyActivity();
* // 現在開始一個活動 * // 現在開始一個活動
* $db->insertActivity('yuan', '1', null, null, null, 0, null, true, null); * $db->insertActivity('yuan', '1', null, null, null, 0, null, null, true, null);
* // 設定延後 * // 設定延後
* $db->setDelay(40, -12); * $db->setDelay(40, -12);
* *
@ -49,13 +49,15 @@ class DBStudyActivity extends Database {
* @param string $endTime 結束學習時間 * @param string $endTime 結束學習時間
* @param int $learnTime 學習所需時間() * @param int $learnTime 學習所需時間()
* @param int $delay 延誤結束時間() * @param int $delay 延誤結束時間()
* @param bool $timeForce 時間到時是否強制中止學習
* @param int $learnStyle 學習導引模式 * @param int $learnStyle 學習導引模式
* @param bool $learnStyle_force 拒絕前往非推薦的學習點 * @param bool $learnStyle_force 拒絕前往非推薦的學習點
* @param string $materialMode 教材模式 * @param string $materialMode 教材模式
* @since 2.0.0 * @since 2.0.0
*/ */
public function insertActivity($userId, $themeId, $startTime, $endTime, public function insertActivity($userId, $themeId, $startTime, $endTime,
$learnTime, $delay, $learnStyle, $learnStyle_force, $materialMode) $learnTime, $delay, $timeForce,
$learnStyle, $learnStyle_force, $materialMode)
{ {
// 自動填入未填的時間 // 自動填入未填的時間
@ -103,10 +105,10 @@ class DBStudyActivity extends Database {
// 寫入學習活動資料 // 寫入學習活動資料
$sqlString = "INSERT INTO `".$this->table('StudyActivity'). $sqlString = "INSERT INTO `".$this->table('StudyActivity').
"` (`UID`, `ThID`, "` (`UID`, `ThID`,
`StartTime`, `EndTime`, `LearnTime`, `Delay`, `StartTime`, `EndTime`, `LearnTime`, `Delay`, `TimeForce`,
`LMode`, `LModeForce`, `MMode`) `LMode`, `LModeForce`, `MMode`)
VALUES ( :uid , :thid , VALUES ( :uid , :thid ,
".$to_startTime.", ".$to_endTime.", ".$to_learnTime." , :delay , ".$to_startTime.", ".$to_endTime.", ".$to_learnTime." , :delay , :timeforce ,
".$to_learnStyle.", :lstyle_force , ".$to_materialMode.")"; ".$to_learnStyle.", :lstyle_force , ".$to_materialMode.")";
@ -115,6 +117,7 @@ class DBStudyActivity extends Database {
$query->bindParam(":uid", $userId); $query->bindParam(":uid", $userId);
$query->bindParam(":thid", $themeId); $query->bindParam(":thid", $themeId);
$query->bindParam(":delay", $delay); $query->bindParam(":delay", $delay);
$query->bindParam(":timeforce", $timeForce);
$query->bindParam(":lstyle_force", $learnStyle_force); $query->bindParam(":lstyle_force", $learnStyle_force);
$query->execute(); $query->execute();
@ -122,9 +125,9 @@ class DBStudyActivity extends Database {
$sqlString = "SELECT LAST_INSERT_ID()"; $sqlString = "SELECT LAST_INSERT_ID()";
$query = $this->connDB->query($sqlString); $query = $this->connDB->query($sqlString);
$queryResult = $query->fetch(); $queryResult = $query->fetch();
$resultId = $queryResult[0];
if(isset($cId)) return $cId; return $resultId;
return $queryResult[0];
} }
/** /**
@ -150,7 +153,8 @@ class DBStudyActivity extends Database {
public function queryActivityByWhere($where) { public function queryActivityByWhere($where) {
$sqlString = "SELECT `SaID`, `UID`, `ThID`, ". $sqlString = "SELECT `SaID`, `UID`, `ThID`, ".
"`StartTime`, `EndTime`, `LearnTime`, `Delay`, ". "`StartTime`, `EndTime`, ".
"`LearnTime`, `Delay`, `TimeForce`, ".
"`LMode`, `LModeForce`, `MMode` ". "`LMode`, `LModeForce`, `MMode` ".
"FROM `".$this->table('StudyActivity')."` AS Act ". "FROM `".$this->table('StudyActivity')."` AS Act ".
//"LEFT JOIN `".$this->table('Area')."` AS Area ". //"LEFT JOIN `".$this->table('Area')."` AS Area ".
@ -167,6 +171,16 @@ class DBStudyActivity extends Database {
$result = array(); $result = array();
foreach($queryResultAll as $key => $thisResult) { foreach($queryResultAll as $key => $thisResult) {
if($thisResult['TimeForce'] != '0') {
$output_time_force = true;
}
else { $output_time_force = false; }
if($thisResult['LModeForce'] != '0') {
$output_learnStyleForce = true;
}
else { $output_learnStyleForce = false; }
array_push($result, array_push($result,
array( 'activity_id' => $thisResult['SaID'], array( 'activity_id' => $thisResult['SaID'],
'user_id' => $thisResult['UID'], 'user_id' => $thisResult['UID'],
@ -175,8 +189,9 @@ class DBStudyActivity extends Database {
'end_time' => $thisResult['EndTime'], 'end_time' => $thisResult['EndTime'],
'learn_time' => $thisResult['LearnTime'], 'learn_time' => $thisResult['LearnTime'],
'delay' => $thisResult['Delay'], 'delay' => $thisResult['Delay'],
'time_force' => $output_time_force,
'learnStyle_mode' => $thisResult['LMode'], 'learnStyle_mode' => $thisResult['LMode'],
'learnStyle_force' => $thisResult['LModeForce'], 'learnStyle_force' => $output_learnStyleForce,
'material_mode' => $thisResult['MMode']) 'material_mode' => $thisResult['MMode'])
); );
} }
@ -214,6 +229,7 @@ class DBStudyActivity extends Database {
* 'end_time' => <結束學習時間>, * 'end_time' => <結束學習時間>,
* 'learn_time' => <學習所需時間()>, * 'learn_time' => <學習所需時間()>,
* 'delay' => <延誤結束時間()>, * 'delay' => <延誤結束時間()>,
* 'time_force' => <時間到時是否強制中止學習>,
* 'learnStyle_mode' => <學習導引模式>, * 'learnStyle_mode' => <學習導引模式>,
* 'learnStyle_force' => <拒絕前往非推薦的學習點>, * 'learnStyle_force' => <拒絕前往非推薦的學習點>,
* 'material_mode' => <教材模式> * 'material_mode' => <教材模式>
@ -247,7 +263,9 @@ class DBStudyActivity extends Database {
* 'theme_id' => <主題ID>, * 'theme_id' => <主題ID>,
* 'start_time' => <開始學習時間>, * 'start_time' => <開始學習時間>,
* 'end_time' => <結束學習時間>, * 'end_time' => <結束學習時間>,
* 'learn_time' => <學習所需時間()>,
* 'delay' => <延誤結束時間()>, * 'delay' => <延誤結束時間()>,
* 'time_force' => <時間到時是否強制中止學習>,
* 'learnStyle_mode' => <學習導引模式>, * 'learnStyle_mode' => <學習導引模式>,
* 'learnStyle_force' => <拒絕前往非推薦的學習點>, * 'learnStyle_force' => <拒絕前往非推薦的學習點>,
* 'material_mode' => <教材模式> * 'material_mode' => <教材模式>

View File

@ -202,6 +202,19 @@ class StudyActivity {
return $this->queryResultArray['learn_time']; return $this->queryResultArray['learn_time'];
} }
/**
* 取得這次可實際學習時間(包含延時)
*
* @return int 可實際學習時間()
* @since 2.0.0
*/
public function getRealLearnTimeWith() {
$learnTime = $this->queryResultArray['learn_time'];
$delay = $this->queryResultArray['delay'];
return $learnTime + $delay;
}
/** /**
* 取得這次學習還剩下多少學習時間 * 取得這次學習還剩下多少學習時間
* *
@ -262,6 +275,16 @@ class StudyActivity {
$this->getQuery(); $this->getQuery();
} }
/**
* 在這次學習時間已過,是否強制結束學習
*
* @return bool 是否在這次學習時間已過而強制結束學習
* @since 2.0.0
*/
public function isForceLearnTime() {
return $this->queryResultArray['time_force'];
}
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
/** /**

View File

@ -4,7 +4,7 @@
*/ */
namespace UElearning\Study; namespace UElearning\Study;
//require_once UELEARNING_LIB_ROOT.'/Database/DBTarget.php'; require_once UELEARNING_LIB_ROOT.'/Database/DBTarget.php';
//require_once UELEARNING_LIB_ROOT.'/Target/Exception.php'; //require_once UELEARNING_LIB_ROOT.'/Target/Exception.php';
use UElearning\Database; use UElearning\Database;
use UElearning\Exception; use UElearning\Exception;
@ -25,18 +25,30 @@ class StudyActivityManager {
* *
* @param string $userId 使用者ID * @param string $userId 使用者ID
* @param string $themeId 主題ID * @param string $themeId 主題ID
* @param string $startTime 開始學習時間
* @param int $learnTime 所需學習時間() * @param int $learnTime 所需學習時間()
* @param bool $timeForce 時間到時是否強制中止學習
* @param int $learnStyle 將推薦幾個學習點 * @param int $learnStyle 將推薦幾個學習點
* @param bool $learnStyle_force 是否拒絕前往非推薦的學習點 * @param bool $learnStyle_force 是否拒絕前往非推薦的學習點
* @param string $materialMode 教材風格 * @param string $materialMode 教材風格
* @return int 本次學習活動的流水編號 * @return int 本次學習活動的流水編號
* @since 2.0.0 * @since 2.0.0
*/ */
public function startActivity( $userId, $themeId, $startTime, public function startActivity( $userId, $themeId, $learnTime, $timeForce,
$learnTime, $learnStyle, $learnStyle_force, $materialMode ) $learnStyle, $learnStyle_force, $materialMode )
{ {
//return $this->queryResultArray['name'];
// TODO: 使用者存不存在
// TODO: 標的存不存在
// TODO: 教材是否存在
// 存入資料庫
$db = new Database\DBStudyActivity();
$resultId = $db->insertActivity($userId, $themeId, null, null,
$learnTime, 0, $timeForce, $learnStyle, $learnStyle_force, $materialMode);
return $resultId;
} }
/** /**
@ -47,6 +59,7 @@ class StudyActivityManager {
* @param string $startTime 預約開始時間 * @param string $startTime 預約開始時間
* @param string $expiredTime 預約過期時間 * @param string $expiredTime 預約過期時間
* @param int $learnTime 所需學習時間() * @param int $learnTime 所需學習時間()
* @param bool $timeForce 學習時間已過是否強制中止學習
* @param int $learnStyle 將推薦幾個學習點 * @param int $learnStyle 將推薦幾個學習點
* @param bool $learnStyle_force 是否拒絕前往非推薦的學習點 * @param bool $learnStyle_force 是否拒絕前往非推薦的學習點
* @param string $materialMode 教材風格 * @param string $materialMode 教材風格
@ -55,7 +68,7 @@ class StudyActivityManager {
* @since 2.0.0 * @since 2.0.0
*/ */
public function createWiilActivity($userId, $themeId, $startTime, $expiredTime, public function createWiilActivity($userId, $themeId, $startTime, $expiredTime,
$learnTime, $learnStyle, $learnStyle_force, $materialMode, $lock) $learnTime, $timeForce, $learnStyle, $learnStyle_force, $materialMode, $lock)
{ {
} }