chenjunkai 6 gadi atpakaļ
vecāks
revīzija
33fad7197c
5 mainītis faili ar 124 papildinājumiem un 3 dzēšanām
  1. 50 1
      controller/AsImg.py
  2. 2 0
      langer/urls.py
  3. 68 0
      object/SesClassObject.py
  4. 2 0
      service/CommonService.py
  5. 2 2
      web/js/jqhttpsdk.js

+ 50 - 1
controller/AsImg.py

@@ -16,10 +16,11 @@ import time
 
 from django.views.generic import TemplateView
 
-from model.models import AsImgModel
+from model.models import AsImgModel, SysSetModel
 from object.ResponseObject import ResponseObject
 from object.TokenObject import TokenObject
 from service.CommonService import CommonService
+from object.SesClassObject import SesClassObject
 
 
 class addView(TemplateView):
@@ -149,3 +150,51 @@ class deleteView(TemplateView):
                 return response.json(0)
         else:
             return response.json(tko.code)
+
+
+#
+class cycleImgView(TemplateView):
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = json.loads(request.body.decode('utf-8'))
+        return self.validate(request_dict)
+
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = request.GET
+        return self.validate(request_dict)
+
+    def validate(self, request_dict):
+        response = ResponseObject()
+        # token = request_dict.get('token', None)
+        # tko = TokenObject(token)
+        as_qs = AsImgModel.objects.filter().values('url', 'md5', 'asin')
+        as_list = list(as_qs)
+        key_list = ['asimgEmail', 'asinterval']
+        sys_qs = SysSetModel.objects.filter(key__in=key_list).values('key', 'val')
+        sys_dict = {}
+        for i in sys_qs:
+            sys_dict[i['key']] = i['val']
+        asimgEmail = sys_dict['asimgEmail']
+        asinterval = sys_dict['asinterval']
+        # 校验出的asin码列表
+        err_asin_list = []
+        for a in as_qs:
+            try:
+                md5 = CommonService.get_remote_md5_sum(a['url'])
+            except Exception as e:
+                print(repr(e))
+                err_asin_list.append(a['asin'])
+            else:
+                if md5 == a['md5']:
+                    pass
+                else:
+                    err_asin_list.append(a['asin'])
+        # 发送邮件
+        from var_dump import var_dump
+        var_dump(err_asin_list)
+        if len(err_asin_list) > 0:
+            sesObj = SesClassObject()
+            sesObj.send_email(send_address_list=[asimgEmail], subject='发现亚马逊产品图片丢失', body=','.join(err_asin_list))
+
+        return response.json(0)

+ 2 - 0
langer/urls.py

@@ -23,4 +23,6 @@ urlpatterns = [
 
     path('sysSet/query', SysSet.queryView.as_view()),
     path('sysSet/update', SysSet.updateView.as_view()),
+
+    path('asimg/cycleImgView', AsImg.cycleImgView.as_view())
 ]

+ 68 - 0
object/SesClassObject.py

@@ -0,0 +1,68 @@
+
+import traceback
+
+from boto3.session import Session
+
+
+# 发送邮件邮箱
+SES_COMPANY_EMAIL = 'user_server@nsst.com'
+AWS_SES_ACCESS_ID = 'AKIAJKPU23EU5QWHFPKQ'
+AWS_SES_ACCESS_SECRET = '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'
+AWS_SES_ACCESS_REGION = 'us-east-1'
+AWS_BUCKET = 'ansjertest'
+
+class SesClassObject:
+   def __init__(self, *args, **kwargs):
+        self.access_id = AWS_SES_ACCESS_ID
+        self.access_secret = AWS_SES_ACCESS_SECRET
+        self.region_name = AWS_SES_ACCESS_REGION
+        self.company_email = SES_COMPANY_EMAIL
+        session = Session(
+            aws_access_key_id=AWS_SES_ACCESS_ID,
+            aws_secret_access_key=AWS_SES_ACCESS_SECRET,
+            region_name=AWS_SES_ACCESS_REGION,
+        )
+        self.conn = session.client('ses')
+
+
+   def send_email(self, send_address_list=[], subject='', body=''):
+        try:
+            response = self.conn.send_email(
+                # 发送人
+                Source=self.company_email,
+                Destination={
+                    # 收件人
+                    'ToAddresses': send_address_list
+                    # 'ToAddresses': [
+                    #     '1758730877@qq.com',
+                    # ],
+                },
+                Message={
+                    # 标题
+                    'Subject': {
+                        'Data': subject,
+                        'Charset': 'utf-8'
+                    },
+                    'Body': {
+                        'Html': {
+                            'Data': body,
+                            'Charset': 'utf-8'
+                        }
+                    }
+                },
+            )
+        except Exception as e:
+            errorInfo = traceback.format_exc()
+            print(errorInfo)
+            self.send_email(send_address_list=[self.company_email], subject='邮件发送错误信息提醒', body='<br>请向开发人员反馈并修改</br>' +'\n错误信息位'+str(errorInfo))
+        else:
+            if response['MessageId']:
+                return True
+            else:
+                print(response)
+                self.send_email(send_address_list=[self.company_email], subject='邮件发送错误信息提醒',
+                                body='<br>请向开发人员反馈并修改</br>')
+                return False
+#
+# sesObj = SesClassObject()
+# sesObj.send_email(send_address_list=['1758730877@qq.com'],subject='hi test',body='hello')

+ 2 - 0
service/CommonService.py

@@ -33,3 +33,5 @@ class CommonService:
             hash.update(data)
 
         return hash.hexdigest()
+
+# print(CommonService.get_remote_md5_sum(url='http://www.dvema.com/web/asdf'))

+ 2 - 2
web/js/jqhttpsdk.js

@@ -5,9 +5,9 @@
 // var http_ip_prot = 'http://192.168.136.40:4696/'
 let domain = document.domain;
 
-// let http_ip_prot = 'http://192.168.136.40:7724/';
+let http_ip_prot = 'http://192.168.136.40:7724/';
     //生产环境
-let http_ip_prot = 'http://47.107.129.126:7724/';
+// let http_ip_prot = 'http://47.107.129.126:7724/';
 
 $.GetJSON = function (url, data, callback) {
     $.ajax({