コード例 #1
0
 /**
  * 删除接收人
  */
 public function foreignDeleteAction()
 {
     $tuduId = $this->_request->getPost('tid');
     $uniqueId = $this->_request->getPost('uniqueid');
     // 参数:图度ID必须存在
     if (!$tuduId || !$uniqueId) {
         return $this->json(false, $this->lang['invalid_tuduid']);
     }
     $tudu = $this->manager->getTuduById($tuduId, $this->_user->uniqueId);
     // 图度必须存在
     if (null === $tudu) {
         return $this->json(false, $this->lang['tudu_not_exists']);
     }
     // 必须是发起人才具备此操作
     if ($tudu->sender != $this->_user->userName) {
         return $this->json(false, $this->lang['perm_deny_add_foreign']);
     }
     $userInfo = $this->manager->getUser($tuduId, $uniqueId);
     if (null === $userInfo) {
         return $this->json(false, $this->lang['foreign_not_exists']);
     }
     if (!$userInfo['isforeign']) {
         return $this->json(false, $this->lang['deny_remove_user_in_foreign']);
     }
     $role = $userInfo['role'];
     $tuduAddr = array('to' => array(), 'cc' => array());
     foreach ($tudu->to as $k => $item) {
         if ($userInfo['accepterinfo'][3] == $k && !is_int($k) || $userInfo['accepterinfo'][0] == $k && !$k) {
             continue;
         }
         $tuduAddr['to'][] = implode(' ', array(!is_int($k) ? $k : '', $item[0]));
     }
     foreach ($tudu->cc as $k => $item) {
         if ($userInfo['accepterinfo'][3] == $k && !is_int($k) || $userInfo['accepterinfo'][0] == $k && !$k) {
             continue;
         }
         $tuduAddr['cc'][] = implode(' ', array(!is_int($k) ? $k : '', $item[0]));
     }
     // 删除标签
     foreach ($tudu->labels as $labelId) {
         $this->manager->deleteLabel($tuduId, $uniqueId, $labelId);
     }
     // 添加用户
     if (!$this->manager->deleteUser($tuduId, $uniqueId)) {
         return $this->json(false, $this->lang['remove_foreign_failure']);
     }
     // 更新图度用户
     $this->manager->updateTudu($tuduId, array('to' => implode("\n", $tuduAddr['to']), 'cc' => implode("\n", $tuduAddr['cc'])));
     // 是接收人,需要重新统计完成率
     if ($role == Dao_Td_Tudu_Tudu::ROLE_ACCEPTER) {
         // 更新转发编辑后的任务进度
         $this->manager->updateProgress($tuduId, $uniqueId, null);
         if ($tudu->parentId) {
             $this->manager->calParentsProgress($tudu->parentId);
         }
     }
     return $this->json(true, $this->lang['remove_foreign_success']);
 }