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

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->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);
*
@ -49,13 +49,15 @@ class DBStudyActivity extends Database {
* @param string $endTime 結束學習時間
* @param int $learnTime 學習所需時間()
* @param int $delay 延誤結束時間()
* @param bool $timeForce 時間到時是否強制中止學習
* @param int $learnStyle 學習導引模式
* @param bool $learnStyle_force 拒絕前往非推薦的學習點
* @param string $materialMode 教材模式
* @since 2.0.0
*/
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').
"` (`UID`, `ThID`,
`StartTime`, `EndTime`, `LearnTime`, `Delay`,
`StartTime`, `EndTime`, `LearnTime`, `Delay`, `TimeForce`,
`LMode`, `LModeForce`, `MMode`)
VALUES ( :uid , :thid ,
".$to_startTime.", ".$to_endTime.", ".$to_learnTime." , :delay ,
".$to_startTime.", ".$to_endTime.", ".$to_learnTime." , :delay , :timeforce ,
".$to_learnStyle.", :lstyle_force , ".$to_materialMode.")";
@ -115,6 +117,7 @@ class DBStudyActivity extends Database {
$query->bindParam(":uid", $userId);
$query->bindParam(":thid", $themeId);
$query->bindParam(":delay", $delay);
$query->bindParam(":timeforce", $timeForce);
$query->bindParam(":lstyle_force", $learnStyle_force);
$query->execute();
@ -122,9 +125,9 @@ class DBStudyActivity extends Database {
$sqlString = "SELECT LAST_INSERT_ID()";
$query = $this->connDB->query($sqlString);
$queryResult = $query->fetch();
$resultId = $queryResult[0];
if(isset($cId)) return $cId;
return $queryResult[0];
return $resultId;
}
/**
@ -150,7 +153,8 @@ class DBStudyActivity extends Database {
public function queryActivityByWhere($where) {
$sqlString = "SELECT `SaID`, `UID`, `ThID`, ".
"`StartTime`, `EndTime`, `LearnTime`, `Delay`, ".
"`StartTime`, `EndTime`, ".
"`LearnTime`, `Delay`, `TimeForce`, ".
"`LMode`, `LModeForce`, `MMode` ".
"FROM `".$this->table('StudyActivity')."` AS Act ".
//"LEFT JOIN `".$this->table('Area')."` AS Area ".
@ -167,6 +171,16 @@ class DBStudyActivity extends Database {
$result = array();
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( 'activity_id' => $thisResult['SaID'],
'user_id' => $thisResult['UID'],
@ -175,8 +189,9 @@ class DBStudyActivity extends Database {
'end_time' => $thisResult['EndTime'],
'learn_time' => $thisResult['LearnTime'],
'delay' => $thisResult['Delay'],
'time_force' => $output_time_force,
'learnStyle_mode' => $thisResult['LMode'],
'learnStyle_force' => $thisResult['LModeForce'],
'learnStyle_force' => $output_learnStyleForce,
'material_mode' => $thisResult['MMode'])
);
}
@ -214,6 +229,7 @@ class DBStudyActivity extends Database {
* 'end_time' => <結束學習時間>,
* 'learn_time' => <學習所需時間()>,
* 'delay' => <延誤結束時間()>,
* 'time_force' => <時間到時是否強制中止學習>,
* 'learnStyle_mode' => <學習導引模式>,
* 'learnStyle_force' => <拒絕前往非推薦的學習點>,
* 'material_mode' => <教材模式>
@ -247,7 +263,9 @@ class DBStudyActivity extends Database {
* 'theme_id' => <主題ID>,
* 'start_time' => <開始學習時間>,
* 'end_time' => <結束學習時間>,
* 'learn_time' => <學習所需時間()>,
* 'delay' => <延誤結束時間()>,
* 'time_force' => <時間到時是否強制中止學習>,
* 'learnStyle_mode' => <學習導引模式>,
* 'learnStyle_force' => <拒絕前往非推薦的學習點>,
* 'material_mode' => <教材模式>

View File

@ -202,6 +202,19 @@ class StudyActivity {
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();
}
/**
* 在這次學習時間已過,是否強制結束學習
*
* @return bool 是否在這次學習時間已過而強制結束學習
* @since 2.0.0
*/
public function isForceLearnTime() {
return $this->queryResultArray['time_force'];
}
// ------------------------------------------------------------------------
/**

View File

@ -4,7 +4,7 @@
*/
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';
use UElearning\Database;
use UElearning\Exception;
@ -25,18 +25,30 @@ class StudyActivityManager {
*
* @param string $userId 使用者ID
* @param string $themeId 主題ID
* @param string $startTime 開始學習時間
* @param int $learnTime 所需學習時間()
* @param bool $timeForce 時間到時是否強制中止學習
* @param int $learnStyle 將推薦幾個學習點
* @param bool $learnStyle_force 是否拒絕前往非推薦的學習點
* @param string $materialMode 教材風格
* @return int 本次學習活動的流水編號
* @since 2.0.0
*/
public function startActivity( $userId, $themeId, $startTime,
$learnTime, $learnStyle, $learnStyle_force, $materialMode )
public function startActivity( $userId, $themeId, $learnTime, $timeForce,
$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 $expiredTime 預約過期時間
* @param int $learnTime 所需學習時間()
* @param bool $timeForce 學習時間已過是否強制中止學習
* @param int $learnStyle 將推薦幾個學習點
* @param bool $learnStyle_force 是否拒絕前往非推薦的學習點
* @param string $materialMode 教材風格
@ -55,7 +68,7 @@ class StudyActivityManager {
* @since 2.0.0
*/
public function createWiilActivity($userId, $themeId, $startTime, $expiredTime,
$learnTime, $learnStyle, $learnStyle_force, $materialMode, $lock)
$learnTime, $timeForce, $learnStyle, $learnStyle_force, $materialMode, $lock)
{
}