/** * @Route("/createReplyMail", methods = {"POST", "OPTIONS"}) */ public function CreateReplyMailAction() { try { $info = $this->request->getJsonRawBody(); if (!isset($info->subject) || !isset($info->body) || !isset($info->toWhom) || !isset($info->handler_id)) { $this->response->setJsonContent(['message' => 'No Data!']); $this->response->send(); return; } $subject = $info->subject; $body = $info->body; $toWhom = $info->toWhom; $handler_id = $info->handler_id; $replyMail = new ReplyMail(); $original_mail = null; if (isset($info->reply_id)) { $subject = "回复:" . $subject; $original_mail = ReceiveMail::findFirst(['conditions' => 'id = ?1', 'bind' => [1 => $info->reply_id]]); if ($original_mail == null) { $this->response->setJsonContent(['message' => '原邮件不存在!']); $this->response->send(); return; } $original_mail->status = 2; $original_mail->save(); $replyMail->reply_id = $info->reply_id; } $o_id = $original_mail->id; $o_mail_id = base64_decode($original_mail->mail_id); $o_subject = base64_decode($original_mail->subject); $o_body = base64_decode($original_mail->body); $o_fromAddress = $original_mail->fromAddress; $o_receiveDate = $original_mail->receiveDate; $o_tags = base64_decode($original_mail->tags); $o_status = $original_mail->status; $o_deadline = $original_mail->deadline; $o_dispatcher_id = $original_mail->dispatcher_id; $o_handler_id = $original_mail->handler_id; if (!isset($info->mail_id)) { $uuid = Utils::create_uuid(); $replyMail->mail_id = base64_encode($uuid); } else { $replyMail->mail_id = base64_encode($info->mail_id); } $replyMail->subject = base64_encode($subject); $replyMail->body = base64_encode($body); $replyMail->toWhom = $toWhom; $replyMail->handler_id = $handler_id; if (isset($info->assessor_id)) { $replyMail->status = 1; $replyMail->assessor_id = $info->assessor_id; $replyMail->save(); } else { $replyMail->status = 0; $replyMail->save(); Utils::sendMail($replyMail->id); } $this->response->setJsonContent(['current_main' => ['id' => $replyMail->id, 'mail_id' => $replyMail->mail_id, 'subject' => base64_decode($replyMail->subject), 'body' => base64_decode($replyMail->body), 'reply_id' => $replyMail->reply_id, 'toWhom' => $replyMail->toWhom, 'reply_date' => $replyMail->replyDate, 'status' => $replyMail->status, 'handler_id' => $replyMail->handler_id, 'assessor_id' => $replyMail->assessor_id], 'original_mail' => ['id' => $o_id, 'mail_id' => $o_mail_id, 'subject' => $o_subject, 'body' => $o_body, 'fromAddress' => $o_fromAddress, 'receiveDate' => $o_receiveDate, 'tags' => $o_tags, 'status' => $o_status, 'deadline' => $o_deadline, 'dispatcher_id' => $o_dispatcher_id, 'handler_id' => $o_handler_id]]); } catch (Exception $e) { $this->response->setJsonContent(['message' => $e->getMessage()]); } $this->response->send(); return; }