Esempio n. 1
0
 /**
  * @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;
 }