+ add the feature of history.
* rewrite model by DAO.
This commit is contained in:
+54
-26
@@ -28,50 +28,78 @@ class taskModel extends model
|
||||
/* 新增一个任务。*/
|
||||
public function create($projectID)
|
||||
{
|
||||
extract($_POST);
|
||||
$sql = "INSERT INTO " . TABLE_TASK . " (`name`, `project`, `story`, `owner`, `estimate`, `left`, `desc`) VALUES('$name', '$projectID', '$storyID', '$owner', '$estimate', '$estimate', '$desc')";
|
||||
return $this->dbh->exec($sql);
|
||||
$task = fixer::input('post')
|
||||
->striptags('name')
|
||||
->specialChars('desc')
|
||||
->cleanFloat('estimate')
|
||||
->add('project', (int)$projectID)
|
||||
->setIF($this->post->estimate == '', 'estimate', 0)
|
||||
->get();
|
||||
$task->left = $task->estimate;
|
||||
|
||||
$this->dao->insert(TABLE_TASK)->data($task)
|
||||
->autoCheck()
|
||||
->check('name', 'notempty')
|
||||
->checkIF($task->estimate != '', 'estimate', 'float')
|
||||
->exec();
|
||||
if(!dao::isError()) return $this->dao->lastInsertID();
|
||||
}
|
||||
|
||||
/* 更新一个任务。*/
|
||||
public function update($taskID)
|
||||
{
|
||||
extract($_POST);
|
||||
$sql = "UPDATE " . TABLE_TASK . " SET `name` = '$name', `story` = '$storyID', `owner` = '$owner', estimate = '$estimate', `consumed` = '$consumed', `left` = '$left', `status` = '$status', `desc` = '$desc' WHERE id = '$taskID' LIMIT 1";
|
||||
return $this->dbh->exec($sql);
|
||||
$oldTask = $this->findByID($taskID);
|
||||
$task = fixer::input('post')
|
||||
->striptags('name')
|
||||
->specialChars('desc')
|
||||
->cleanFloat('estimate, left, consumed')
|
||||
->setIF($this->post->estimate == '', 'estimate', 0)
|
||||
->setIF($this->post->left == '', 'left', 0)
|
||||
->setIF($this->post->consumed == '', 'consumed', 0)
|
||||
->remove('comment')
|
||||
->get();
|
||||
$this->dao->update(TABLE_TASK)->data($task)
|
||||
->autoCheck()
|
||||
->check('name', 'notempty')
|
||||
->checkIF($task->estimate != '', 'estimate', 'float')
|
||||
->checkIF($task->left != '', 'left', 'float')
|
||||
->checkIF($task->consumed != '', 'consumed', 'float')
|
||||
->where('id')->eq((int)$taskID)->exec();
|
||||
if(!dao::isError()) return common::createChanges($oldTask, $task);
|
||||
}
|
||||
|
||||
/* 删除一个任务。*/
|
||||
public function delete($taskID)
|
||||
{
|
||||
$sql = "DELETE FROM " . TABLE_TASK . " WHERE id = '$taskID'";
|
||||
return $this->dbh->exec($sql);
|
||||
return $this->dao->delete()->from(TABLE_TASK)->where('id')->eq((int)$taskID)->limit(1)->exec();
|
||||
}
|
||||
|
||||
/* 通过id获取一个任务信息。*/
|
||||
public function getById($taskID)
|
||||
public function findByID($taskID)
|
||||
{
|
||||
return $this->dbh->query("SELECT * FROM " . TABLE_TASK . " WHERE id = '$taskID'")->fetch();
|
||||
return $this->dao->select('t1.*, t2.id AS storyID, t2.title AS storyTitle, t3.realname AS ownerRealName')
|
||||
->from(TABLE_TASK)->alias('t1')
|
||||
->leftJoin(TABLE_STORY)->alias('t2')
|
||||
->on('t1.story = t2.id')
|
||||
->leftJoin(TABLE_USER)->alias('t3')
|
||||
->on('t1.owner = t3.account')
|
||||
->where('t1.id')->eq((int)$taskID)
|
||||
->fetch();
|
||||
}
|
||||
|
||||
/* 获得某一个项目的任务列表。*/
|
||||
public function getProjectTasks($projectID)
|
||||
public function getProjectTasks($projectID, $orderBy = 'status|desc', $pager = null)
|
||||
{
|
||||
$tasks = array();
|
||||
$sql = "SELECT T1.*, T2.title AS storyTitle, T3.realname AS ownerRealName FROM " . TABLE_TASK . " AS T1 LEFT JOIN " . TABLE_STORY . " AS T2 ON T1.story = T2.id LEFT JOIN " . TABLE_USER . " AS T3 ON T1.owner = T3.account WHERE T1.project = '$projectID' ORDER BY T1.story";
|
||||
$stmt = $this->dbh->query($sql);
|
||||
return $stmt->fetchAll();
|
||||
}
|
||||
|
||||
/* 获得用户的任务列表。*/
|
||||
public function getUserTasks($account, $status = 'all')
|
||||
{
|
||||
$sql = "SELECT T1.*, T2.name AS projectName, T2.id AS projectID, T3.id AS storyID, T3.title AS storyTitle FROM " . TABLE_TASK . " AS T1
|
||||
LEFT JOIN " .TABLE_PROJECT . " AS T2 ON T1.project = T2.id
|
||||
LEFT JOIN " . TABLE_STORY . " AS T3 ON T1.story = T3.id
|
||||
WHERE T1.owner = '$account'";
|
||||
if($status != 'all') $sql .= " AND T1.status" . helper::dbIN($status);
|
||||
return $this->dbh->query($sql)->fetchAll();
|
||||
return $this->dao->select('t1.*, t2.id AS storyID, t2.title AS storyTitle, t3.realname AS ownerRealName')
|
||||
->from(TABLE_TASK)->alias('t1')
|
||||
->leftJoin(TABLE_STORY)->alias('t2')
|
||||
->on('t1.story = t2.id')
|
||||
->leftJoin(TABLE_USER)->alias('t3')
|
||||
->on('t1.owner = t3.account')
|
||||
->where('t1.project')->eq((int)$projectID)
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
->fetchAll();
|
||||
}
|
||||
|
||||
/* 获得用户的任务id=>name列表。*/
|
||||
|
||||
Reference in New Issue
Block a user