Esempio n. 1
0
 /**
  * @Route("/getMailList", methods = {"GET", "OPTIONS"})
  */
 public function GetMailListAction()
 {
     $uid = $this->request->get('uid');
     //$uid = $this->session->get('user_id');
     $status = $this->request->get('status');
     $unAssessedMails = ReplyMail::find(['conditions' => 'status=?1 AND assessor_id=?2', 'bind' => [1 => $status, 2 => $uid], 'column' => 'id, mail_id, subject, reply_id, toWhom, replyDate, assessor_advice, status, assessor_id, handler_id']);
     if ($unAssessedMails->getFirst() == null) {
         $this->response->setJsonContent(['count' => 0, 'user_id' => $this->session->get('user_id')]);
     } else {
         $mailList = array();
         foreach ($unAssessedMails as $mail) {
             $id = $mail->id;
             $mail_id = base64_decode($mail->mail_id);
             $subject = base64_decode($mail->subject);
             $reply_id = $mail->reply_id;
             $toWhom = $mail->toWhom;
             $replyDate = $mail->replyDate;
             $assessor_advice = base64_decode($mail->assessor_advice);
             $status = $mail->status;
             $assessor_id = $mail->assessor_id;
             $handler_id = $mail->handler_id;
             $mailList[] = ['id' => $id, 'mail_id' => $mail_id, 'subject' => $subject, 'reply_id' => $reply_id, 'toWhom' => $toWhom, 'replyDate' => $replyDate, 'assessor_advice' => $assessor_advice, 'status' => $status, 'assessor_id' => $assessor_id, 'handler_id' => $handler_id];
         }
         $this->response->setJsonContent(['count' => count($mailList), 'mailList' => $mailList]);
     }
     $this->response->send();
     return;
 }
Esempio n. 2
0
 /**
  * @Route("/getReplyEmail", methods = {"GET", "OPTIONS"})
  */
 public function GetReplyEmailAction()
 {
     $id = $this->request->get('id');
     $email = ReplyMail::findFirst(['conditions' => 'id=?1', 'bind' => [1 => $id]]);
     if ($email == null) {
         $this->response->setJsonContent(['message' => '邮件不存在']);
     } else {
         $id = $email->id;
         $mail_id = base64_decode($email->mail_id);
         $subject = base64_decode($email->subject);
         $body = base64_decode($email->body);
         $reply_id = $email->reply_id;
         $toWhom = $email->toWhom;
         $replyDate = $email->replyDate;
         $assessor_advice = base64_decode($email->assessor_advice);
         $status = $email->status;
         $handler_id = $email->handler_id;
         $assessor_id = $email->assessor_id;
         $original_mail = null;
         if ($reply_id != null) {
             $original_mail = ReceiveMail::findFirst(['conditions' => 'id = ?1', 'bind' => [1 => $reply_id]]);
             if ($original_mail == null) {
                 $this->response->setJsonContent(['message' => '原邮件不存在!']);
                 $this->response->send();
                 return;
             }
         }
         $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;
         $this->response->setJsonContent(['curent_mail' => ['id' => $id, 'mail_id' => $mail_id, 'subject' => $subject, 'body' => $body, 'reply_id' => $reply_id, 'toWhom' => $toWhom, 'replyDate' => $replyDate, 'assessor_advice' => $assessor_advice, 'status' => $status, 'handler_id' => $handler_id, 'assessor_id' => $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]]);
     }
     $this->response->send();
     return;
 }
Esempio n. 3
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;
 }
Esempio n. 4
0
 /**
  * @Route("/deleteUser", methods = {"GET", "DELETE", "OPTIONS"})
  */
 public function DeleteUserAction()
 {
     $user_id = $this->request->get('user_id');
     $inheritor_id = $this->request->get('inheritor_id');
     if ($user_id == null) {
         $this->response->setJsonContent(['message' => 'No User_id!']);
         $this->response->send();
         return;
     }
     $user = User::findFirst(['conditions' => 'id=?1', 'bind' => [1 => $user_id]]);
     if ($user == null) {
         $this->response->setJsonContent(['message' => 'id not exist!']);
         $this->response->send();
         return;
     }
     $method = $this->request->getMethod();
     $user_array = $user->toArray();
     if ($method == 'GET') {
         $inheritors = User::find(['conditions' => 'role=?1 AND id<>?2', 'bind' => [1 => $user_array['role'], 2 => $user_id]]);
         if ($inheritors->getFirst() == null) {
             $this->response->setJsonContent(['message' => '该成员无法替代!']);
         } else {
             $inheritorList = array();
             foreach ($inheritors as $inheritor) {
                 $inheritorList[] = ['id' => $inheritor->id, 'role' => $inheritor->role, 'username' => $inheritor->name, 'created_at' => $inheritor->created_at];
             }
             $this->response->setJsonContent(['inheritorList' => $inheritorList]);
         }
     } elseif ($method == 'DELETE') {
         if ($inheritor_id == null) {
             $this->response->setJsonContent(['message' => 'No Inheritor_id']);
         } elseif ($user->delete() == false) {
             $messages = "Delete Error:<br/>";
             foreach ($user->getMessages() as $message) {
                 $messages = $messages . $message . "<br/>";
             }
             $this->response->setJsonContent(['message' => $messages]);
         } else {
             if ($user_array['role'] == 'dispatcher') {
                 $receiveMail = ReceiveMail::find(['conditions' => 'dispatcher_id=?1', 'bind' => [1 => $user_id]]);
                 foreach ($receiveMail as $mail) {
                     $mail->dispatcher_id = $inheritor_id;
                     $mail->save();
                 }
             } elseif ($user_array['role'] == 'handler') {
                 $receiveMail = ReceiveMail::find(['conditions' => 'handler_id=?1', 'bind' => [1 => $user_id]]);
                 $replyMail = ReplyMail::find(['conditions' => 'handler_id=?1', 'bind' => [1 => $user_id]]);
                 foreach ($receiveMail as $mail) {
                     $mail->handler_id = $inheritor_id;
                     $mail->save();
                 }
                 foreach ($replyMail as $mail) {
                     $mail->handler_id = $inheritor_id;
                     $mail->save();
                 }
             } elseif ($user_array['role'] == 'assessor') {
                 $replyMail = ReplyMail::find(['conditions' => 'assessor_id=?1', 'bind' => [1 => $user_id]]);
                 foreach ($replyMail as $mail) {
                     $mail['assessor_id'] = $inheritor_id;
                     $mail->save();
                 }
             }
             $this->response->setJsonContent(['message' => 'Success!']);
         }
     }
     $this->response->send();
     return;
 }