/** * 创建图度 * * @param $tudu */ public static function createTudu(Tudu_Model_Tudu_Entity_Tudu &$tudu) { $params = $tudu->getAttributes(); $daoTudu = Tudu_Dao_Manager::getDao('Dao_Td_Tudu_Tudu', Tudu_Dao_Manager::DB_TS); $daoPost = Tudu_Dao_Manager::getDao('Dao_Td_Tudu_Post', Tudu_Dao_Manager::DB_TS); $params['to'] = !empty($params['to']) ? Tudu_Model_Entity_Tudu::formatReceiver($params['to']) : null; $params['cc'] = !empty($params['cc']) ? Tudu_Model_Entity_Tudu::formatReceiver($params['cc']) : null; $params['bcc'] = !empty($params['bcc']) ? Tudu_Model_Entity_Tudu::formatReceiver($params['bcc']) : null; $tuduId = $daoTudu->createTudu($params); if (!$tuduId) { require_once 'Tudu/Model/Tudu/Exception.php'; throw new Tudu_Model_Tudu_Exception('Save tudu failed'); } $post = array('orgid' => $params['orgid'], 'boardid' => $params['boardid'], 'tuduid' => $tuduId, 'uniqueid' => $params['uniqueid'], 'postid' => Dao_Td_Tudu_Post::getPostId(), 'poster' => $params['poster'], 'email' => $params['email'], 'content' => !empty($params['content']) ? $params['content'] : '', 'isfirst' => 1, 'issend' => 1); $attachments = $tudu->getAttachments(); $attachNum = 0; foreach ($attachments as $attach) { if ($attach['isattach']) { $attachNum++; } } $post['attachnum'] = $attachNum; $postId = $daoPost->createPost($post); if (!$postId) { $daoTudu->deleteTudu($tuduId); require_once 'Tudu/Model/Tudu/Exception.php'; throw new Tudu_Model_Tudu_Exception('Save tudu failed'); } if (count($attachments) > 0) { $daoFile = Tudu_Dao_Manager::getDao('Dao_Td_Attachment_File', Tudu_Dao_Manager::DB_TS); foreach ($attachments as $attach) { $daoFile->addPost($tuduId, $postId, $attach['fileid'], (bool) $attach['isattach']); } } $output['tuduid'] = $tuduId; $tudu->setAttribute(array('tuduid' => $tuduId, 'postid' => $post['postid'])); return $tuduId; }