Selaa lähdekoodia

新增云存 短信及邮件提醒

chenshibin 4 vuotta sitten
vanhempi
commit
5241dc756e
2 muutettua tiedostoa jossa 94 lisäystä ja 5 poistoa
  1. 42 5
      Controller/CloudStorage.py
  2. 52 0
      Object/AWS/S3Email.py

+ 42 - 5
Controller/CloudStorage.py

@@ -38,10 +38,13 @@ from pyfcm import FCMNotification
 from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, OSS_ROLE_ARN, SERVER_DOMAIN, PAYPAL_CRD, \
     SERVER_DOMAIN_SSL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_ARN, APNS_MODE, APNS_CONFIG, BASE_DIR, \
     JPUSH_CONFIG, FCM_CONFIG, OAUTH_ACCESS_TOKEN_SECRET
+from Controller.CheckUserData import DataValid
 from Model.models import Device_Info, Order_Model, Store_Meal, VodHlsModel, OssCrdModel, UID_Bucket, StsCrdModel, \
     ExperienceContextModel, Pay_Type, CDKcontextModel, Device_User, SysMassModel, SysMsgModel, UidPushModel, \
-    Unused_Uid_Meal, UIDMainUser
+    Unused_Uid_Meal, UIDMainUser, UserModel
+from Object.AWS.S3Email import S3Email
 from Object.AliPayObject import AliPayObject
+from Object.AliSmsObject import AliSmsObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.UidTokenObject import UidTokenObject
@@ -1437,17 +1440,29 @@ class CloudStorageView(View):
             create_data = {'userID_id': userID, 'msg': sys_msg_text, 'addTime': nowTime,
                            'updTime': nowTime, 'uid': uid, 'eventType': 0}
             SysMsgModel.objects.create(**create_data)
-            self.pushApp(nowTime, uid, channel, sys_msg_text)
+
+            user_qs = UserModel.objects.filter(id=userID)
+            if user_qs.exists():
+                user = user_qs[0]
+                username = user.username
+                data_valid = DataValid()
+                if data_valid.email_validate(username):
+                    S3Email.faEmail(sys_msg_text,username)
+                elif data_valid.mobile_validate(username):
+                    self.sendMessage(username)
+
+                self.pushApp(nowTime, uid, channel, sys_msg_text)
+
 
             logger.info('出去了')
         except Exception as e:
             return repr(e)
-    # 云存到期续费提醒   提前1天
+    # 云存到期续费提醒   提前3
     def do_vod_msg_end(self, request_dict):
         response = ResponseObject()
         now_time = int(time.time())
 
-        list = UID_Bucket.objects.filter(Q(endTime__lte=(now_time - 3600 * 24)) & Q(endTime__gt=now_time)).values('id',
+        list = UID_Bucket.objects.filter(Q(endTime__lte=(now_time - 3600 * 72)) & Q(endTime__gt=now_time)).values('id',
                                                                                                                   'uid',
                                                                                                                   'bucket__area','channel')
 
@@ -1474,7 +1489,18 @@ class CloudStorageView(View):
                         msg=sys_msg_text,
                         status=0
                     ))
-                    self.pushApp(now_time, ub['uid'], ub['channel'], sys_msg_text)
+                    user_qs = UserModel.objects.filter(id=oo['userID_id'])
+                    if user_qs.exists():
+                        user = user_qs[0]
+                        username = user.username
+                        data_valid = DataValid()
+
+                        if data_valid.email_validate(username):
+                            S3Email.faEmail(sys_msg_text, username)
+                        elif data_valid.mobile_validate(username):
+                            self.sendMessage(username)
+
+                        self.pushApp(now_time, ub['uid'], ub['channel'], sys_msg_text)
 
         SysMsgModel.objects.bulk_create(uq_list)
 
@@ -1598,6 +1624,17 @@ class CloudStorageView(View):
                 print(res)
                 return res.status_code
 
+    def sendMessage(self, phone):
+            # 购买成功
+            temp_msg = 'SMS_217435193'
+            rec_phone = phone
+            sign_ms = 'Ansjer'
+
+            # 发送手机验证码
+            aliSms = AliSmsObject()
+            res = aliSms.send_code_sms(phone=rec_phone, code='1', sign_name=sign_ms,
+                                       temp_msg=temp_msg)
+
 
 
 # 删除过期云存播放列表

+ 52 - 0
Object/AWS/S3Email.py

@@ -0,0 +1,52 @@
+import smtplib
+import email.utils
+from email.mime.multipart import MIMEMultipart
+from email.mime.text import MIMEText
+
+class S3Email:
+
+   def __init__(self, *args, **kwargs):
+       SENDER = 'rdpublic@ansjer.com'  # 邮箱名
+       SENDERNAME = 'rdpublic@ansjer.com'
+       USERNAME_SMTP = "AKIA2E67UIMD6MOSFKXW"  # 带有邮件权限的 IAM 帐号
+       PASSWORD_SMTP = "BHuQ6EQTtFK4qh46o9omO9ZzO3NXzjk/JCWLXnVFmqzM"  # 带有邮件权限的 IAM 密码
+       PORT = 587
+       HOST = "email-smtp.us-east-1.amazonaws.com"
+
+
+   def faEmail(self, content ,RECIPIENT):
+
+        SUBJECT = 'Amazon SES Error (Python smtplib)'
+        BODY_TEXT = ("Amazon SES Test\r\n"
+                     "This email was sent through the Amazon SES SMTP "
+                     "Interface using the Python smtplib package."
+                     )
+        BODY_HTML = """<html>
+        <head></head>
+        <body>
+          <h1>{}<h1>
+        </body>
+        </html>
+                    """.format(content)
+
+        msg = MIMEMultipart('alternative')
+        msg['Subject'] = SUBJECT
+        msg['From'] = email.utils.formataddr((self.SENDERNAME, self.SENDER))
+        msg['To'] = RECIPIENT
+        part1 = MIMEText(BODY_TEXT, 'plain')
+        part2 = MIMEText(BODY_HTML, 'html')
+        msg.attach(part1)
+        msg.attach(part2)
+
+        try:
+            server = smtplib.SMTP(self.HOST, self.PORT)
+            server.ehlo()
+            server.starttls()
+            server.ehlo()
+            server.login(self.USERNAME_SMTP, self.PASSWORD_SMTP)
+            server.sendmail(self.SENDER, RECIPIENT, msg.as_string())
+            server.close()
+        except Exception as e:
+            print("Error: ", e)
+        else:
+            print("Email sent!")