/** * @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; }
/** * @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; }
/** * @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; }
/** * @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; }