Переглянути джерело

序列号库存不足邮件提醒

peng 2 роки тому
батько
коміт
696e922eb0
1 змінених файлів з 23 додано та 0 видалено
  1. 23 0
      Controller/SerialNumberController.py

+ 23 - 0
Controller/SerialNumberController.py

@@ -11,6 +11,7 @@ from Model.models import SerialNumberModel, UserModel, UserSerialNumberModel, Co
     MacModel, LogModel, CompanyModel
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
+from Object.S3Email import S3Email
 from Object.TokenObject import TokenObject
 from Service.AlgorithmService import AlgorithmBaseOn35
 from Service.CommonService import CommonService
@@ -39,6 +40,8 @@ class SerialNumberView(View):
             return self.do_create(request_dict, response)
         elif operation == 'mac':        # 生成mac
             return self.generate_mac(request_dict, response)
+        elif operation == 'checkSerial':        # 序列号库存数量少于2000,发送邮件通知
+            return self.check_serial_number(response)
 
         token = request_dict.get('token', None)
         token = TokenObject(token)
@@ -568,3 +571,23 @@ class SerialNumberView(View):
             next_mac = CommonService.updateMac(mac)
         mac_qs.update(value=next_mac, update_time=now_time)
         return response.json(0)
+
+    @staticmethod
+    def check_serial_number(response):
+        """
+        定时查询序列号库存数量,不足2000发送邮件通知
+        :param response: 响应
+        :return: response
+        """
+        company_qs = CompanyModel.objects.values('id')
+        try:
+            for company in company_qs:
+                company_id = company['id']
+                company_serial_count = CompanySerialModel.objects.filter(status=1, company_id=company_id).count()
+                if company_serial_count < 2000:
+                    sys_msg_text = '序列号库存数量少于2000,请及时处理'
+                    S3Email().faEmail(sys_msg_text, 'servers@ansjer.com')
+                    break
+            return response.json(0)
+        except Exception as e:
+            return response.json(500)