/** * 删除接收人 */ 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']); }