From afdf05b9eea259d36fcdb673110922b0c321cf02 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Wed, 20 Apr 2022 23:02:55 +0200 Subject: [PATCH] add new email list --- db/DbManager.py | 11 ++++++++++- notification/AcceptedResultPojo.py | 5 +++-- notification/mailer.py | 5 ++--- workers/wait_sms_worker.py | 14 ++++++++------ 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/db/DbManager.py b/db/DbManager.py index e585c0d..434e29e 100644 --- a/db/DbManager.py +++ b/db/DbManager.py @@ -61,6 +61,15 @@ class DataManager: doc_ref = self._db.collection(ERROR_COLLECTION_NAME).document(result.phone) doc_ref.set(result.to_firestore_dict()) + def find_appointment_detail_via_phone(self, day, phone) -> ReserveResultPojo: + doc_ref = self._db.collection(day) + results = doc_ref.where(u'phone', u'==', phone).stream() + result_list = [] + for result in results: + result_list.append(ReserveResultPojo.from_firestore_dict(result.to_dict())) + if len(result_list) > 0: + return result_list[0] + def save_timeout_contact(self, contact: ContactPojo): doc_ref = self._db.collection(TIMEOUT).document(str(contact.phone)) doc_ref.set(contact.to_firestore_dict()) @@ -147,7 +156,7 @@ class DataManager: if __name__ == '__main__': - # params.firebase_store_manager.upload_contact_list_to_cloud() + # params.firebase_store_manager.find_appointment_detail_via_phone(str(datetime.date.today()), 613467904) params.firebase_store_manager.save_to_excel() # params.firebase_store_manager.clear_all_sim_info() # print(params.firebase_store_manager.get_mail_list()) diff --git a/notification/AcceptedResultPojo.py b/notification/AcceptedResultPojo.py index fcbabbb..1b85009 100644 --- a/notification/AcceptedResultPojo.py +++ b/notification/AcceptedResultPojo.py @@ -2,6 +2,7 @@ from dataclasses import dataclass from dataclasses_json import dataclass_json +from pojo import ReserveResultPojo from pojo.SimInfoPojo import SimInfoPojo @@ -19,7 +20,7 @@ class AcceptedResultPojo: self.phone = phone -def get_accepted_result_from(sms, sim_info: SimInfoPojo) -> AcceptedResultPojo: +def get_accepted_result_from(sms, sim_info: ReserveResultPojo) -> AcceptedResultPojo: return AcceptedResultPojo(sms.text, slot_position=sim_info.slot_position, sim_position=sim_info.sim_position, passport=sim_info.passport, email=sim_info.email, phone=sim_info.phone, - name=sim_info.name) + name="{} {}".format(sim_info.lastName, sim_info.firstName)) diff --git a/notification/mailer.py b/notification/mailer.py index 0fdd92f..71235e6 100644 --- a/notification/mailer.py +++ b/notification/mailer.py @@ -28,9 +28,8 @@ class Mailer: aws_secret_access_key=secret) def send_email(self, result: AcceptedResultPojo): - # recipients = params.firebase_store_manager.get_mail_list() - - recipients = ['panleicim@gmail.com','kamenonly@gmail.com'] + recipients = ['panleicim@gmail.com', 'kamenonly@gmail.com', 'tangliang0411@gmail.com'] + # recipients = ['panleicim@gmail.com'] mytemplate = Template(filename=definitions.ROOT_DIR + "/templates/appointment_results.html") self.logger.info("send email to " + str(recipients)) diff --git a/workers/wait_sms_worker.py b/workers/wait_sms_worker.py index ce33e70..d0f92fd 100644 --- a/workers/wait_sms_worker.py +++ b/workers/wait_sms_worker.py @@ -1,3 +1,4 @@ +import datetime import json import logging import threading @@ -28,7 +29,7 @@ class WaitSmsWorker: "sms received for phone:{}(ccid:{})".format(self.serial_modem.phone_number, self.serial_modem.ccid)) self.logger.info( u'== SMS message received ==\nFrom: {0}\nTime: {1}\nMessage:\n{2}\n'.format(sms.number, sms.time, sms.text)) - self.check_sms(sms, self.serial_modem.ccid) + self.check_sms(sms, int(self.serial_modem.phone_number)) params.oracle_log_sender.send_sms_reception_log(sms.number, sms.text, self.serial_modem.ccid) def run(self): @@ -67,14 +68,15 @@ class WaitSmsWorker: else: return None - def check_sms(self, sms: Sms, ccid: str): - self.logger.info("check sms") + def check_sms(self, sms: Sms, phone: int): + self.logger.info("核查 sms") if sms.number == self.HERMES_RDV: if self.ACCEPT_SENTENCE in sms.text: self.logger.info("收到来自hermes的短信,准备发送邮件") mailer = Mailer() - sim_info = self.find_info_via_ccid(ccid) - accepted_result = get_accepted_result_from(sms, sim_info) + result_pojo = params.firebase_store_manager.find_appointment_detail_via_phone( + str(datetime.date.today()), phone) + accepted_result = get_accepted_result_from(sms, result_pojo) mailer.send_email(accepted_result) @@ -82,4 +84,4 @@ if __name__ == '__main__': worker = WaitSmsWorker(None) sms = Sms("HERMES RDV", "We are pleased to confirm your appointment. You will be welcomed on Apr 14, 2022 in our store at 17 rue de Sèvres at 4:45 PM. The given hour may be subje") - worker.check_sms(sms, "8933130070216295758F") + worker.check_sms(sms, int('613467904'))