StudyActivity類別實作
This commit is contained in:
parent
e762c6d87c
commit
5c19270e9c
@ -53,7 +53,7 @@
|
|||||||
*
|
*
|
||||||
* 針對未個別設定過的使用者,採用預設的導引模式
|
* 針對未個別設定過的使用者,採用預設的導引模式
|
||||||
*/
|
*/
|
||||||
define('LMODE', '0');
|
define('LMODE', '1');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 預設教材模式
|
* 預設教材模式
|
||||||
|
341
htdocs/lib/Database/DBStudyActivity.php
Normal file
341
htdocs/lib/Database/DBStudyActivity.php
Normal file
@ -0,0 +1,341 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* DBStudyActivity.php
|
||||||
|
*
|
||||||
|
* 此檔案針對學習標的,以及學習標的的區域、廳等的資料庫查詢用。
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace UElearning\Database;
|
||||||
|
|
||||||
|
use UElearning\Exception;
|
||||||
|
|
||||||
|
require_once UELEARNING_LIB_ROOT.'/Database/Database.php';
|
||||||
|
require_once UELEARNING_LIB_ROOT.'/Database/Exception.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 學習活動資料表
|
||||||
|
*
|
||||||
|
* 此檔案針對學習標的,以及學習標的的區域、廳等的資料表進行操作。
|
||||||
|
*
|
||||||
|
* 範例:
|
||||||
|
*
|
||||||
|
* require_once __DIR__.'/../config.php';
|
||||||
|
* require_once UELEARNING_LIB_ROOT.'/Database/DBStudyActivity.php';
|
||||||
|
* use UElearning\Database;
|
||||||
|
*
|
||||||
|
* $db = new Database\DBStudyActivity();
|
||||||
|
* // 現在開始一個活動
|
||||||
|
* $db->insertActivity('yuan', '1', null, null, null, 0, null, true, null);
|
||||||
|
* // 設定延後
|
||||||
|
* $db->setDelay(40, -12);
|
||||||
|
*
|
||||||
|
* // 查詢'yuan'的所有活動
|
||||||
|
* $data = $db->queryAllActivityByUserId('yuan');
|
||||||
|
* echo '<pre>';print_r($data);echo '</pre>';
|
||||||
|
*
|
||||||
|
* @author Yuan Chiu <chyuaner@gmail.com>
|
||||||
|
* @version 2.0.0
|
||||||
|
* @package UElearning
|
||||||
|
* @subpackage Database
|
||||||
|
*/
|
||||||
|
class DBStudyActivity extends Database {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 建立一個活動
|
||||||
|
*
|
||||||
|
* @param string $userId 使用者ID
|
||||||
|
* @param string $themeId 主題ID
|
||||||
|
* @param string $startTime 開始學習時間
|
||||||
|
* @param string $endTime 結束學習時間
|
||||||
|
* @param int $learnTime 學習所需時間(分)
|
||||||
|
* @param int $delay 延誤結束時間(分)
|
||||||
|
* @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)
|
||||||
|
{
|
||||||
|
|
||||||
|
// 自動填入未填的時間
|
||||||
|
if(isset($startTime))
|
||||||
|
$to_startTime = $this->connDB->quote($startTime);
|
||||||
|
else $to_startTime = "NOW()";
|
||||||
|
|
||||||
|
if(isset($endTime))
|
||||||
|
$to_endTime = $this->connDB->quote($endTime);
|
||||||
|
else $to_endTime = "NULL";
|
||||||
|
|
||||||
|
// 未填入學習時間,將會自動取得主題學習時間
|
||||||
|
if(isset($learnTime))
|
||||||
|
$to_learnTime = $this->connDB->quote($learnTime);
|
||||||
|
else $to_learnTime =
|
||||||
|
"(SELECT `ThLearnTime` FROM `".$this->table('Theme').
|
||||||
|
"` WHERE `ThID` = ".$this->connDB->quote($themeId).")";
|
||||||
|
|
||||||
|
// 未填入學習風格,將會取用使用者偏好的風格,若帳號未設定,將取用系統預設的學習風格
|
||||||
|
$queryResult = array();
|
||||||
|
if(!isset($learnStyle) || !isset($materialMode)) {
|
||||||
|
$sqlSUser = "SELECT `LMode`, `MMode` ".
|
||||||
|
"FROM `".$this->table('User')."` ".
|
||||||
|
"WHERE `UID`=".$this->connDB->quote($userId);
|
||||||
|
|
||||||
|
$query = $this->connDB->prepare($sqlSUser);
|
||||||
|
$query->execute();
|
||||||
|
|
||||||
|
$queryResult = $query->fetch();
|
||||||
|
}
|
||||||
|
if(isset($learnStyle))
|
||||||
|
$to_learnStyle = $this->connDB->quote($learnStyle);
|
||||||
|
else if(isset($queryResult['LMode']))
|
||||||
|
$to_learnStyle = $queryResult['LMode'];
|
||||||
|
else
|
||||||
|
$to_learnStyle = LMODE;
|
||||||
|
|
||||||
|
if(isset($materialMode))
|
||||||
|
$to_materialMode = $this->connDB->quote($materialMode);
|
||||||
|
else if(isset($queryResult['MMode']))
|
||||||
|
$to_materialMode = "'".$queryResult['MMode']."'";
|
||||||
|
else
|
||||||
|
$to_materialMode = "'".MMODE."'";
|
||||||
|
|
||||||
|
// 寫入學習活動資料
|
||||||
|
$sqlString = "INSERT INTO `".$this->table('StudyActivity').
|
||||||
|
"` (`UID`, `ThID`,
|
||||||
|
`StartTime`, `EndTime`, `LearnTime`, `Delay`,
|
||||||
|
`LMode`, `LModeForce`, `MMode`)
|
||||||
|
VALUES ( :uid , :thid ,
|
||||||
|
".$to_startTime.", ".$to_endTime.", ".$to_learnTime." , :delay ,
|
||||||
|
".$to_learnStyle.", :lstyle_force , ".$to_materialMode.")";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$query = $this->connDB->prepare($sqlString);
|
||||||
|
$query->bindParam(":uid", $userId);
|
||||||
|
$query->bindParam(":thid", $themeId);
|
||||||
|
$query->bindParam(":delay", $delay);
|
||||||
|
$query->bindParam(":lstyle_force", $learnStyle_force);
|
||||||
|
$query->execute();
|
||||||
|
|
||||||
|
// 取得剛剛加入的ID
|
||||||
|
$sqlString = "SELECT LAST_INSERT_ID()";
|
||||||
|
$query = $this->connDB->query($sqlString);
|
||||||
|
$queryResult = $query->fetch();
|
||||||
|
|
||||||
|
if(isset($cId)) return $cId;
|
||||||
|
return $queryResult[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 移除一場活動
|
||||||
|
* @param string $uId 使用者名稱
|
||||||
|
* @since 2.0.0
|
||||||
|
*/
|
||||||
|
public function deleteActivity($id) {
|
||||||
|
|
||||||
|
$sqlString = "DELETE FROM ".$this->table('StudyActivity').
|
||||||
|
" WHERE `SaID` = :id ";
|
||||||
|
|
||||||
|
$query = $this->connDB->prepare($sqlString);
|
||||||
|
$query->bindParam(":id", $id);
|
||||||
|
$query->execute();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 內部使用的查詢動作
|
||||||
|
* @param string $where 查詢語法
|
||||||
|
* @return array 查詢結果陣列
|
||||||
|
*/
|
||||||
|
public function queryActivityByWhere($where) {
|
||||||
|
|
||||||
|
$sqlString = "SELECT `SaID`, `UID`, `ThID`, ".
|
||||||
|
"`StartTime`, `EndTime`, `LearnTime`, `Delay`, ".
|
||||||
|
"`LMode`, `LModeForce`, `MMode` ".
|
||||||
|
"FROM `".$this->table('StudyActivity')."` AS Act ".
|
||||||
|
//"LEFT JOIN `".$this->table('Area')."` AS Area ".
|
||||||
|
//"ON Area.`AID` = Target.`AID` ".
|
||||||
|
"WHERE ".$where;
|
||||||
|
|
||||||
|
$query = $this->connDB->prepare($sqlString);
|
||||||
|
$query->execute();
|
||||||
|
|
||||||
|
$queryResultAll = $query->fetchAll();
|
||||||
|
// 如果有查到一筆以上
|
||||||
|
if( count($queryResultAll) >= 1 ) {
|
||||||
|
// 製作回傳結果陣列
|
||||||
|
$result = array();
|
||||||
|
foreach($queryResultAll as $key => $thisResult) {
|
||||||
|
|
||||||
|
array_push($result,
|
||||||
|
array( 'activity_id' => $thisResult['SaID'],
|
||||||
|
'user_id' => $thisResult['UID'],
|
||||||
|
'theme_id' => $thisResult['ThID'],
|
||||||
|
'start_time' => $thisResult['StartTime'],
|
||||||
|
'end_time' => $thisResult['EndTime'],
|
||||||
|
'learn_time' => $thisResult['LearnTime'],
|
||||||
|
'delay' => $thisResult['Delay'],
|
||||||
|
'learnStyle_mode' => $thisResult['LMode'],
|
||||||
|
'learnStyle_force' => $thisResult['LModeForce'],
|
||||||
|
'material_mode' => $thisResult['MMode'])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
// 若都沒查到的話
|
||||||
|
else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查詢一個活動資料
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* 範例:
|
||||||
|
*
|
||||||
|
* require_once __DIR__.'/../config.php';
|
||||||
|
* require_once UELEARNING_LIB_ROOT.'/Database/DBTarget.php';
|
||||||
|
* use UElearning\Database;
|
||||||
|
*
|
||||||
|
* $db = new Database\DBTarget();
|
||||||
|
*
|
||||||
|
* $targetInfo = $db->queryActivity(4);
|
||||||
|
* echo '<pre>'; print_r($targetInfo); echo '</pre>';
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param int $td 學習活動ID
|
||||||
|
* @return array 活動資料陣列,格式為:
|
||||||
|
* array( 'activity_id' => <活動流水編號>,
|
||||||
|
* 'user_id' => <使用者ID>,
|
||||||
|
* 'theme_id' => <主題ID>,
|
||||||
|
* 'start_time' => <開始學習時間>,
|
||||||
|
* 'end_time' => <結束學習時間>,
|
||||||
|
* 'learn_time' => <學習所需時間(分)>,
|
||||||
|
* 'delay' => <延誤結束時間(分)>,
|
||||||
|
* 'learnStyle_mode' => <學習導引模式>,
|
||||||
|
* 'learnStyle_force' => <拒絕前往非推薦的學習點>,
|
||||||
|
* 'material_mode' => <教材模式>
|
||||||
|
* );
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function queryActivity($id) {
|
||||||
|
|
||||||
|
$queryResultAll =
|
||||||
|
$this->queryActivityByWhere("`SaID`=".$this->connDB->quote($id));
|
||||||
|
|
||||||
|
// 如果有查到一筆以上
|
||||||
|
if( count($queryResultAll) >= 1 ) {
|
||||||
|
return $queryResultAll[0];
|
||||||
|
}
|
||||||
|
// 若都沒查到的話
|
||||||
|
else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查詢所有活動資料
|
||||||
|
*
|
||||||
|
* @return array 學習活動資料陣列,格式為:
|
||||||
|
*
|
||||||
|
* array(
|
||||||
|
* array(
|
||||||
|
* 'activity_id' => <活動流水編號>,
|
||||||
|
* 'user_id' => <使用者ID>,
|
||||||
|
* 'theme_id' => <主題ID>,
|
||||||
|
* 'start_time' => <開始學習時間>,
|
||||||
|
* 'end_time' => <結束學習時間>,
|
||||||
|
* 'delay' => <延誤結束時間(分)>,
|
||||||
|
* 'learnStyle_mode' => <學習導引模式>,
|
||||||
|
* 'learnStyle_force' => <拒絕前往非推薦的學習點>,
|
||||||
|
* 'material_mode' => <教材模式>
|
||||||
|
* )
|
||||||
|
* );
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function queryAllActivity() {
|
||||||
|
|
||||||
|
return $this->queryActivityByWhere("1");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查詢此使用者所有活動資料
|
||||||
|
*
|
||||||
|
* @param int $user_id 使用者ID
|
||||||
|
* @return array 學習活動資料陣列,格式為:
|
||||||
|
*
|
||||||
|
* array(
|
||||||
|
* array(
|
||||||
|
* 'activity_id' => <活動流水編號>,
|
||||||
|
* 'user_id' => <使用者ID>,
|
||||||
|
* 'theme_id' => <主題ID>,
|
||||||
|
* 'start_time' => <開始學習時間>,
|
||||||
|
* 'end_time' => <結束學習時間>,
|
||||||
|
* 'delay' => <延誤結束時間(分)>,
|
||||||
|
* 'learnStyle_mode' => <學習導引模式>,
|
||||||
|
* 'learnStyle_force' => <拒絕前往非推薦的學習點>,
|
||||||
|
* 'material_mode' => <教材模式>
|
||||||
|
* )
|
||||||
|
* );
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function queryAllActivityByUserId($user_id) {
|
||||||
|
|
||||||
|
return $this->queryActivityByWhere(
|
||||||
|
"`UID`=".$this->connDB->quote($user_id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 設定結束時間
|
||||||
|
*
|
||||||
|
* 只要一設定,就代表學習活動結束了
|
||||||
|
* @param int $activity_id 活動編號
|
||||||
|
* @param string $endTime 時間
|
||||||
|
*/
|
||||||
|
public function setEndTime($activity_id, $endTime) {
|
||||||
|
$sqlString = "UPDATE ".$this->table('StudyActivity').
|
||||||
|
" SET `EndTime` = :value".
|
||||||
|
" WHERE `SaID` = :id";
|
||||||
|
|
||||||
|
$query = $this->connDB->prepare($sqlString);
|
||||||
|
$query->bindParam(':id', $activity_id);
|
||||||
|
$query->bindParam(':value', $endTime);
|
||||||
|
$query->execute();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 設定立即結束
|
||||||
|
*
|
||||||
|
* 只要一設定,就代表學習活動結束了
|
||||||
|
* @param int $activity_id 活動編號
|
||||||
|
*/
|
||||||
|
public function setEndTimeNow($activity_id) {
|
||||||
|
$sqlString = "UPDATE ".$this->table('StudyActivity').
|
||||||
|
" SET `EndTime` = NOW()".
|
||||||
|
" WHERE `SaID` = :id";
|
||||||
|
|
||||||
|
$query = $this->connDB->prepare($sqlString);
|
||||||
|
$query->bindParam(':id', $activity_id);
|
||||||
|
$query->execute();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 設定延後時間
|
||||||
|
*
|
||||||
|
* 只要一設定,就代表學習活動結束了
|
||||||
|
* @param int $activity_id 活動編號
|
||||||
|
* @param int $delay 延後時間(分)
|
||||||
|
*/
|
||||||
|
public function setDelay($activity_id, $delay) {
|
||||||
|
$sqlString = "UPDATE ".$this->table('StudyActivity').
|
||||||
|
" SET `Delay` = :value".
|
||||||
|
" WHERE `SaID` = :id";
|
||||||
|
|
||||||
|
$query = $this->connDB->prepare($sqlString);
|
||||||
|
$query->bindParam(':id', $activity_id);
|
||||||
|
$query->bindParam(':value', $delay);
|
||||||
|
$query->execute();
|
||||||
|
}
|
||||||
|
}
|
@ -153,7 +153,7 @@ class DBTarget extends Database {
|
|||||||
* @param string $field 欄位名稱
|
* @param string $field 欄位名稱
|
||||||
* @param string $value 內容
|
* @param string $value 內容
|
||||||
*/
|
*/
|
||||||
function changeTargetData($tId, $field, $value) {
|
public function changeTargetData($tId, $field, $value) {
|
||||||
$sqlField = null;
|
$sqlField = null;
|
||||||
switch($field) {
|
switch($field) {
|
||||||
case 'area_id': $sqlField = 'AID'; break;
|
case 'area_id': $sqlField = 'AID'; break;
|
||||||
|
39
htdocs/lib/Study/Exception.php
Normal file
39
htdocs/lib/Study/Exception.php
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Exception.php
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace UElearning\Exception;
|
||||||
|
|
||||||
|
// TODO: 將以下類別濃縮
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 沒有找到此標的
|
||||||
|
* @since 2.0.0
|
||||||
|
* @package UElearning
|
||||||
|
* @subpackage Target
|
||||||
|
*/
|
||||||
|
class StudyActivityNoFoundException extends \UnexpectedValueException {
|
||||||
|
/**
|
||||||
|
* 指定的學習活動ID
|
||||||
|
* @type int
|
||||||
|
*/
|
||||||
|
private $id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用者帳號例外
|
||||||
|
* @param int $id 輸入的標的ID
|
||||||
|
*/
|
||||||
|
public function __construct($id) {
|
||||||
|
$this->id = $id;
|
||||||
|
parent::__construct('No Activity: '.$this->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取得輸入的標的ID
|
||||||
|
* @return int 標的ID
|
||||||
|
*/
|
||||||
|
public function getId() {
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
}
|
@ -5,8 +5,9 @@
|
|||||||
|
|
||||||
namespace UElearning\Study;
|
namespace UElearning\Study;
|
||||||
|
|
||||||
//require_once UELEARNING_LIB_ROOT.'/Database/DBTarget.php';
|
require_once UELEARNING_LIB_ROOT.'/Database/DBStudyActivity.php';
|
||||||
//require_once UELEARNING_LIB_ROOT.'/Target/Exception.php';
|
require_once UELEARNING_LIB_ROOT.'/User/User.php';
|
||||||
|
require_once UELEARNING_LIB_ROOT.'/Study/Exception.php';
|
||||||
use UElearning\Database;
|
use UElearning\Database;
|
||||||
use UElearning\Exception;
|
use UElearning\Exception;
|
||||||
use UElearning\User;
|
use UElearning\User;
|
||||||
@ -43,17 +44,17 @@ class StudyActivity {
|
|||||||
* @throw UElearning\Exception\AreaNoFoundException
|
* @throw UElearning\Exception\AreaNoFoundException
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
protected function getQuery(){
|
protected function getQuery() {
|
||||||
// TODO: 從資料庫取得查詢
|
|
||||||
//// 從資料庫查詢
|
// 從資料庫查詢
|
||||||
//$db = new Database\DBTarget();
|
$db = new Database\DBStudyActivity();
|
||||||
//$areaInfo = $db->queryArea($this->aId);
|
$info = $db->queryActivity($this->id);
|
||||||
//
|
|
||||||
//// 判斷有沒有這個
|
// 判斷有沒有這個
|
||||||
//if( $areaInfo != null ) {
|
if( $info != null ) {
|
||||||
// $this->queryResultArray = $areaInfo;
|
$this->queryResultArray = $info;
|
||||||
//}
|
}
|
||||||
//else throw new Exception\AreaNoFoundException($this->aId);
|
else throw new Exception\StudyActivityNoFoundException($this->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
@ -64,40 +65,20 @@ class StudyActivity {
|
|||||||
* @param int $inputID 學習階段流水號ID
|
* @param int $inputID 學習階段流水號ID
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function __construct($inputID){
|
public function __construct($inputID) {
|
||||||
$this->id = $inputAID;
|
$this->id = $inputID;
|
||||||
$this->getQuery();
|
$this->getQuery();
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
// 控制這次學習階段:
|
// 控制這次學習階段時間:
|
||||||
|
|
||||||
/**
|
|
||||||
* 設定這次學習時間要延長多久
|
|
||||||
*
|
|
||||||
* @return int 延長時間(分)
|
|
||||||
* @since 2.0.0
|
|
||||||
*/
|
|
||||||
public function setDelay(){
|
|
||||||
//return $this->queryResultArray['name'];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 設定累加這次學習時間要延長多久
|
|
||||||
*
|
|
||||||
* @return int 延長時間(分)
|
|
||||||
* @since 2.0.0
|
|
||||||
*/
|
|
||||||
public function addDelay(){
|
|
||||||
//return $this->queryResultArray['name'];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 結束這次學習
|
* 結束這次學習
|
||||||
*
|
*
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function finishActivity(){
|
public function finishActivity() {
|
||||||
//return $this->queryResultArray['name'];
|
//return $this->queryResultArray['name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,10 +87,32 @@ class StudyActivity {
|
|||||||
*
|
*
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function cancelActivity(){
|
public function cancelActivity() {
|
||||||
//return $this->queryResultArray['name'];
|
//return $this->queryResultArray['name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ========================================================================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取得已經學過幾個學習點
|
||||||
|
*
|
||||||
|
* @return ing 已學過幾個學習點
|
||||||
|
* @since 2.0.0
|
||||||
|
*/
|
||||||
|
public function getLearnedPointTotal() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取得還剩下幾個學習點還沒學
|
||||||
|
*
|
||||||
|
* @return ing 還剩下幾個學習點
|
||||||
|
* @since 2.0.0
|
||||||
|
*/
|
||||||
|
public function getRemainingPointTotal() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
// 取得資料:
|
// 取得資料:
|
||||||
|
|
||||||
@ -119,7 +122,7 @@ class StudyActivity {
|
|||||||
* @return int 學習階段流水號ID
|
* @return int 學習階段流水號ID
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function getId(){
|
public function getId() {
|
||||||
return $this->id;
|
return $this->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,7 +132,7 @@ class StudyActivity {
|
|||||||
* @return \UElearning\User\User 使用者物件
|
* @return \UElearning\User\User 使用者物件
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function getUser(){
|
public function getUser() {
|
||||||
|
|
||||||
$userId = $this->queryResultArray['user_id'];;
|
$userId = $this->queryResultArray['user_id'];;
|
||||||
return new User\User($userId);
|
return new User\User($userId);
|
||||||
@ -141,7 +144,7 @@ class StudyActivity {
|
|||||||
* @return string 使用者ID
|
* @return string 使用者ID
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function getUserId(){
|
public function getUserId() {
|
||||||
return $this->queryResultArray['user_id'];
|
return $this->queryResultArray['user_id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,7 +154,7 @@ class StudyActivity {
|
|||||||
// * @return int 主題物件
|
// * @return int 主題物件
|
||||||
// * @since 2.0.0
|
// * @since 2.0.0
|
||||||
// */
|
// */
|
||||||
//public function getTheme(){
|
//public function getTheme() {
|
||||||
// $tId = $this->queryResultArray['theme_id'];
|
// $tId = $this->queryResultArray['theme_id'];
|
||||||
// return new Target\User($userId);;
|
// return new Target\User($userId);;
|
||||||
//}
|
//}
|
||||||
@ -162,18 +165,21 @@ class StudyActivity {
|
|||||||
* @return int 主題ID
|
* @return int 主題ID
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function getThemeId(){
|
public function getThemeId() {
|
||||||
return $this->queryResultArray['theme_id'];
|
return $this->queryResultArray['theme_id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
// 時間控制:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取得這次學習是什麼時候開始的
|
* 取得這次學習是什麼時候開始的
|
||||||
*
|
*
|
||||||
* @return string 開始學習時間
|
* @return string 開始學習時間
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function getStartTime(){
|
public function getStartTime() {
|
||||||
//return $this->queryResultArray['build_time'];
|
return $this->queryResultArray['start_time'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -182,8 +188,8 @@ class StudyActivity {
|
|||||||
* @return string 結束學習時間
|
* @return string 結束學習時間
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function getEndTime(){
|
public function getEndTime() {
|
||||||
//return $this->queryResultArray['build_time'];
|
return $this->queryResultArray['end_time'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -192,27 +198,79 @@ class StudyActivity {
|
|||||||
* @return int 所需學習時間(分)
|
* @return int 所需學習時間(分)
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function getLearnTime(){
|
public function getLearnTime() {
|
||||||
//return $this->queryResultArray['name'];
|
return $this->queryResultArray['learn_time'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取得這次學習還剩下多少學習時間
|
||||||
|
*
|
||||||
|
* @return int 剩下的學習時間(分)
|
||||||
|
* @since 2.0.0
|
||||||
|
*/
|
||||||
|
public function getRemainingTime() {
|
||||||
|
|
||||||
|
// TODO: 取得這次學習還剩下多少學習時間
|
||||||
|
|
||||||
|
// 計算總共學習時間(包含延長時間)
|
||||||
|
$haveTime = $this->getLearnTime() - $this->getDelay();
|
||||||
|
|
||||||
|
// 取得現在時間
|
||||||
|
// 開始時間+學習時間 = 應結束時間
|
||||||
|
|
||||||
|
// 應結束時間-現在時間 = 剩餘時間
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取得這次學習時間要延長多久
|
* 取得這次學習時間要延長多久
|
||||||
*
|
*
|
||||||
* @return int 延長時間(分)
|
* @return int 延長時間(分)
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function getDelay(){
|
public function getDelay() {
|
||||||
//return $this->queryResultArray['name'];
|
return $this->queryResultArray['delay'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 設定這次學習時間要延長多久
|
||||||
|
*
|
||||||
|
* @param int $minute 延長時間(分)
|
||||||
|
* @since 2.0.0
|
||||||
|
*/
|
||||||
|
public function setDelay($minute) {
|
||||||
|
$db = new Database\DBStudyActivity();
|
||||||
|
$db->setDelay($this->id, $minute);
|
||||||
|
|
||||||
|
$this->getQuery();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 設定累加這次學習時間要延長多久
|
||||||
|
*
|
||||||
|
* @param int $minute 延長時間(分)
|
||||||
|
* @since 2.0.0
|
||||||
|
*/
|
||||||
|
public function addDelay($minute) {
|
||||||
|
|
||||||
|
$setMinute = $this->queryResultArray['delay'] + $minute;
|
||||||
|
|
||||||
|
$db = new Database\DBStudyActivity();
|
||||||
|
$db->setDelay($this->id, $setMinute);
|
||||||
|
|
||||||
|
// TODO: 防呆-不能設的比開始時間還早
|
||||||
|
|
||||||
|
$this->getQuery();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取得這次學習的導引風格
|
* 取得這次學習的導引風格
|
||||||
*
|
*
|
||||||
* @return int 將推薦幾個學習點
|
* @return int 將推薦幾個學習點
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function getLearnStyle(){
|
public function getLearnStyle() {
|
||||||
return $this->queryResultArray['learnStyle_mode'];
|
return $this->queryResultArray['learnStyle_mode'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,7 +280,7 @@ class StudyActivity {
|
|||||||
* @return bool 是否拒絕前往非推薦的學習點
|
* @return bool 是否拒絕前往非推薦的學習點
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function isForceLearnStyle(){
|
public function isForceLearnStyle() {
|
||||||
return $this->queryResultArray['learnStyle_force'];
|
return $this->queryResultArray['learnStyle_force'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,7 +290,7 @@ class StudyActivity {
|
|||||||
* @return string 教材風格
|
* @return string 教材風格
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
public function getMaterialStyle(){
|
public function getMaterialStyle() {
|
||||||
return $this->queryResultArray['material_mode'];
|
return $this->queryResultArray['material_mode'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user