Ver Fonte

用户按钮推送

peng há 1 ano atrás
pai
commit
c7e9e132e0
3 ficheiros alterados com 64 adições e 44 exclusões
  1. 2 1
      Controller/DetectControllerV2.py
  2. 55 41
      Model/models.py
  3. 7 2
      Service/DevicePushService.py

+ 2 - 1
Controller/DetectControllerV2.py

@@ -49,6 +49,7 @@ class NotificationV2View(View):
         electricity = request_dict.get('electricity', '')
         dealings_type = int(request_dict.get('dealingsType', 0))
         detection = int(request_dict.get('detection', 0))
+        button = request_dict.get('button', '1')
 
         # 参数校验
         if not all([channel, n_time]):
@@ -81,7 +82,7 @@ class NotificationV2View(View):
             redis_obj.set_data(key=req_limiting, val=1, expire=60)  # 当缓存不存在限流数据 重新设置一分钟请求一次
 
             # 查询uid_push和uid_set数据
-            uid_push_qs = DevicePushService.query_uid_push(uid, event_type)
+            uid_push_qs = DevicePushService.query_uid_push(uid, event_type, button)
             if not uid_push_qs.exists():
                 TIME_LOGGER.info('推送响应,uid:{},uid_push数据不存在!'.format(uid))
                 return JsonResponse(status=200, data={'code': 176, 'msg': 'no uid_push data'})

+ 55 - 41
Model/models.py

@@ -328,7 +328,7 @@ class EquipmentInfo1(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -357,7 +357,7 @@ class EquipmentInfo2(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -386,7 +386,7 @@ class EquipmentInfo3(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -415,7 +415,7 @@ class EquipmentInfo4(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -444,7 +444,7 @@ class EquipmentInfo5(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -473,7 +473,7 @@ class EquipmentInfo6(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -502,7 +502,7 @@ class EquipmentInfo7(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -531,7 +531,7 @@ class EquipmentInfo8(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -560,7 +560,7 @@ class EquipmentInfo9(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -589,7 +589,7 @@ class EquipmentInfo10(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -618,7 +618,7 @@ class EquipmentInfo11(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -647,7 +647,7 @@ class EquipmentInfo12(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -676,7 +676,7 @@ class EquipmentInfo13(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -705,7 +705,7 @@ class EquipmentInfo14(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -734,7 +734,7 @@ class EquipmentInfo15(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -763,7 +763,7 @@ class EquipmentInfo16(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -792,7 +792,7 @@ class EquipmentInfo17(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -821,7 +821,7 @@ class EquipmentInfo18(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -850,7 +850,7 @@ class EquipmentInfo19(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -879,7 +879,7 @@ class EquipmentInfo20(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -908,7 +908,7 @@ class EquipmentInfo21(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -937,7 +937,7 @@ class EquipmentInfo22(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -966,7 +966,7 @@ class EquipmentInfo23(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -995,7 +995,7 @@ class EquipmentInfo24(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1024,7 +1024,7 @@ class EquipmentInfo25(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1053,7 +1053,7 @@ class EquipmentInfo26(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1082,7 +1082,7 @@ class EquipmentInfo27(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1111,7 +1111,7 @@ class EquipmentInfo28(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1140,7 +1140,7 @@ class EquipmentInfo29(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1169,7 +1169,7 @@ class EquipmentInfo30(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1198,7 +1198,7 @@ class EquipmentInfo31(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1227,7 +1227,7 @@ class EquipmentInfo32(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1256,7 +1256,7 @@ class EquipmentInfo33(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1285,7 +1285,7 @@ class EquipmentInfo34(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1314,7 +1314,7 @@ class EquipmentInfo35(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1343,7 +1343,7 @@ class EquipmentInfo36(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1372,7 +1372,7 @@ class EquipmentInfo37(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1401,7 +1401,7 @@ class EquipmentInfo38(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1430,7 +1430,7 @@ class EquipmentInfo39(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -1459,7 +1459,7 @@ class EquipmentInfo40(models.Model):
     # 1: 阿里云, 2: AWS
     storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
     border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
-    status = models.BooleanField(default=False, verbose_name='已读状态')   # 0: 未读, 1: 已读
+    status = models.BooleanField(default=False, verbose_name='已读状态')  # 0: 未读, 1: 已读
     answer_status = models.BooleanField(default=False, verbose_name='接听状态')  # 0: 未接听,1: 已接听
     event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
     add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
@@ -2110,7 +2110,8 @@ class GatewayPush(models.Model):
     user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name=u'用户id')
     app_bundle_id = models.CharField(default='', max_length=32, verbose_name=u'app包id')
     app_type = models.IntegerField(default=0, verbose_name=u'app类型')  # 1: ios, 2: 安卓
-    push_type = models.IntegerField(default=0, verbose_name=u'推送类型')  # 0: apns, 1: 安卓gcm, 2: 极光, 3:华为, 4:小米, 5:vivo, 6:oppo, 7:魅族
+    push_type = models.IntegerField(default=0,
+                                    verbose_name=u'推送类型')  # 0: apns, 1: 安卓gcm, 2: 极光, 3:华为, 4:小米, 5:vivo, 6:oppo, 7:魅族
     token_val = models.CharField(default='', max_length=500, verbose_name=u'设备验证令牌')
     m_code = models.CharField(default='', max_length=64, db_index=True, verbose_name='手机唯一标识')
     lang = models.CharField(default='en', max_length=8, verbose_name='推送语言')
@@ -3453,3 +3454,16 @@ class CustomizedPush(models.Model):
     class Meta:
         db_table = 'customized_push'
         verbose_name = '定制化推送'
+
+
+class UserAudioVideoPush(models.Model):
+    id = models.AutoField(primary_key=True, verbose_name='主键')
+    uid = models.CharField(default='', max_length=32, verbose_name='设备UID')
+    buttonUser1 = models.CharField(default='', max_length=32, verbose_name='用户按钮1')
+    buttonUser2 = models.CharField(default='', max_length=32, verbose_name='用户按钮2')
+    created_time = models.IntegerField(default=0, verbose_name='创建时间')
+    updated_time = models.IntegerField(default=0, verbose_name='更新时间')
+
+    class Meta:
+        db_table = 'user_audio_video_push'
+        verbose_name = '用户音视频推送表'

+ 7 - 2
Service/DevicePushService.py

@@ -22,7 +22,7 @@ from AnsjerPush.config import CONFIG_INFO, CONFIG_CN, MULTI_CHANNEL_TYPE_LIST, S
     AWS_SECRET_ACCESS_KEY, EVENT_DICT, EVENT_DICT_CN, CONFIG_TEST
 from AnsjerPush.config import XMPUSH_CONFIG, OPPOPUSH_CONFIG, XM_PUSH_CHANNEL_ID
 from Model.models import UidPushModel, SysMsgModel, DeviceSharePermission, DeviceChannelUserSet, \
-    DeviceChannelUserPermission, UidSetModel, Device_Info
+    DeviceChannelUserPermission, UidSetModel, Device_Info, UserAudioVideoPush
 from Object.ETkObject import ETkObject
 from Object.OCIObjectStorage import OCIObjectStorage
 from Object.RedisObject import RedisObject
@@ -90,11 +90,12 @@ class DevicePushService:
         return aws_s3_client
 
     @classmethod
-    def query_uid_push(cls, uid, event_type):
+    def query_uid_push(cls, uid, event_type, button='1'):
         """
         查询uid_push和uid_set数据
         @param uid: uid
         @param event_type: 事件类型
+        @param button: 按钮
         @return: uid_push_qs
         """
         if event_type not in [606, 607]:
@@ -107,6 +108,10 @@ class DevicePushService:
             # 一键通话只推主用户
             device_info_qs = Device_Info.objects.filter(UID=uid).values('vodPrimaryUserID')
             primary_user_id = device_info_qs[0]['vodPrimaryUserID']
+            if event_type == 607:  # 音视频通话根据用户按钮来推送
+                button_qs = UserAudioVideoPush.objects.filter(uid=uid).values('buttonUser1', 'buttonUser2')
+                if button_qs.exists():
+                    primary_user_id = button_qs[0]['buttonUser1'] if button == '1' else button_qs[0]['buttonUser2']
             uid_push_qs = UidPushModel.objects.filter(uid_set__uid=uid, userID_id=primary_user_id). \
                 values('token_val', 'app_type', 'appBundleId', 'm_code', 'push_type', 'userID_id', 'userID__NickName',
                        'lang', 'm_code', 'tz', 'uid_set__nickname', 'uid_set__detect_interval', 'uid_set__detect_group',