E-learning-Server/htdocs/lib/User/ClassGroupAdmin.php

145 lines
4.1 KiB
PHP

<?php
/**
* ClassGroupAdmin.php
*/
namespace UElearning\User;
require_once UELEARNING_LIB_ROOT.'/Database/DBUser.php';
require_once UELEARNING_LIB_ROOT.'/Exception.php';
use UElearning\Database;
use UElearning\Exception;
/**
* 管理班級群組的操作
*
* @author Yuan Chiu <chyuaner@gmail.com>
* @version 2.0.0
* @package UElearning
* @subpackage User
*/
class ClassGroupAdmin {
/**
* 建立班級
*
* 建立班級群組範例:
*
* try {
* $groupAdmin = new User\ClassGroupAdmin();
* $newId = null;
* $newId = $groupAdmin->create(
* array( 'name' => '學生',
* 'memo' => null
* ));
* echo '你剛建立:'.$newId;
* }
* // 若已有重複班級ID
* catch (Exception\ClassIdExistException $e) {
* echo 'Is exist class: ', $e->getGroupId();
* }
*
* @param array $classGroupArray 班級群組資訊陣列,格式為:
* array( 'class_id' => 12,
* 'name' => '學生',
* 'memo' => null )
* @return int 剛剛新增進去的ID
* @throw UElearning\Exception\ClassIdExistException
* @since 2.0.0
*/
public function create($classGroupArray) {
// 檢查有無填寫
if(isset($classGroupArray)) {
// 若此id已存在
if( isset($classGroupArray['class_id']) &&
$this->isExist($classGroupArray['class_id']) ) {
throw new Exception\ClassIdExistException(
$classGroupArray['class_id'] );
}
// 沒有問題
else {
// 處理未帶入的資料
if( !isset($classGroupArray['class_id']) ){
$classGroupArray['class_id'] = null;
}
// 處理未帶入的資料
if( !isset($classGroupArray['name']) ){
$classGroupArray['name'] = null;
}
// 處理未帶入的資料
if( !isset($classGroupArray['memo']) ){
$classGroupArray['memo'] = null;
}
// 新增一筆使用者資料進資料庫
$db = new Database\DBUser();
$id = $db->insertClassGroup(
$classGroupArray['class_id'],
$classGroupArray['name'],
$classGroupArray['memo']
);
// 回傳剛剛新增的ID
return $id;
}
}
else throw Exception\NoDataException();
}
/**
* 是否已有相同名稱的班級ID
*
* @param int $class_id 班級ID
* @return bool 已有相同的班級ID
* @since 2.0.0
*/
public function isExist($class_id) {
$db = new Database\DBUser();
$info = $db->queryClassGroup($class_id);
if( $info != null ) return true;
else return false;
}
/**
* 移除此班級
*
* 範例:
*
* try {
* $groupAdmin = new User\ClassGroupAdmin();
* $groupAdmin->remove(2);
*
* }
* catch (Exception\ClassNoFoundException $e) {
* echo 'No Found class: ', $e->getGroupId();
* }
*
* @param int $class_id 班級ID
* @throw UElearning\Exception\ClassNoFoundException
* @since 2.0.0
*/
public function remove($class_id) {
// 若有此使用者
if($this->isExist($class_id)) {
// TODO: 檢查所有關聯的資料,確認是否可以移除
// 移除資料庫中的使用者
$db = new Database\DBUser();
$db->deleteClassGroup($class_id);
}
// 若沒有這位使用者
else {
throw new Exception\ClassNoFoundException($class_id);
}
}
}