http://zentaoms.googlecode.com/svn/trunk/module/project/model.php@492
Index: model.php =================================================================== --- model.php (revision 491) +++ model.php (revision 492) @@ -203,16 +203,24 @@ /* 获取团队成员。*/ public function getTeamMembers($projectID) { - $sql = "SELECT T1.*, T2.realname FROM " . TABLE_TEAM . " AS T1 LEFT JOIN " . TABLE_USER . " AS T2 ON T1.account = T2.account WHERE T1.project = '$projectID'"; - $stmt = $this->dbh->query($sql); - return $stmt->fetchAll(); + return $this->dao->select('t1.*, t2.realname')->from(TABLE_TEAM)->alias('t1') + ->leftJoin(TABLE_USER)->alias('t2')->on('t1.account = t2.account') + ->where('t1.project')->eq((int)$projectID)->fetchAll(); } /* 获取团队成员account=>name列表。*/ public function getTeamMemberPairs($projectID) { - $sql = "SELECT T2.account, T2.realname FROM " . TABLE_TEAM . " AS T1 LEFT JOIN " . TABLE_USER . " AS T2 ON T1.account = T2.account WHERE T1.project = '$projectID'"; - return $this->fetchPairs($sql); + $users = $this->dao->select('t1.account, t2.realname')->from(TABLE_TEAM)->alias('t1') + ->leftJoin(TABLE_USER)->alias('t2')->on('t1.account = t2.account') + ->where('t1.project')->eq((int)$projectID)->fetchPairs(); + if(!$users) return array(); + foreach($users as $account => $realName) + { + $firstLetter = ucfirst(substr($account, 0, 1)) . ':'; + $users[$account] = $firstLetter . ($realName ? $realName : $account); + } + return array('' => '') + $users; } /* 关联成员。*/ @@ -229,21 +237,29 @@ if($mode == 'update') { - $sql = "UPDATE " . TABLE_TEAM . " SET role = '$role', workingHour = '$workingHour' WHERE project = '$projectID' AND account = '$account'"; + $this->dao->update(TABLE_TEAM) + ->set('role')->eq($role) + ->set('workingHour')->eq($workingHour) + ->where('project')->eq((int)$projectID) + ->andWhere('account')->eq($account) + ->exec(); } else { - $sql = "INSERT INTO " . TABLE_TEAM . " (project, account, joinDate, role, workingHour) VALUES ('$projectID', '$account', NOW(), '$role', '$workingHour')"; + $member->project = (int)$projectID; + $member->account = $account; + $member->joinDate = date('Y-m-d'); + $member->role = $role; + $member->workingHour = $workingHour; + $this->dao->insert(TABLE_TEAM)->data($member)->exec(); } - $this->dbh->query($sql); } } /* 删除一个成员。*/ public function unlinkMember($projectID, $account) { - $sql = "DELETE FROM " . TABLE_TEAM . " WHERE project = '$projectID' AND account = '$account'"; - return $this->dbh->exec($sql); + $this->dao->delete()->from(TABLE_TEAM)->where('project')->eq((int)$projectID)->andWhere('account')->eq($account)->exec(); } /* 燃烧图所需要的数据。*/