Przeglądaj źródła

修改转移设备无法拨通通话功能

zhangdongming 7 miesięcy temu
rodzic
commit
4b174755be
1 zmienionych plików z 46 dodań i 1 usunięć
  1. 46 1
      Controller/CloudTransfer.py

+ 46 - 1
Controller/CloudTransfer.py

@@ -14,12 +14,13 @@ from django.views.generic.base import View
 
 from Model.models import Device_User, Device_Info, Order_Model, UID_Bucket, StsCrdModel, VodHlsModel, Unused_Uid_Meal, \
     VodBucketModel, UnicomDeviceInfo, LogModel, UidPushModel, AiService, UidSetModel, UserFamily, FamilyRoomDevice, \
-    UserAudioVideoPush
+    UserAudioVideoPush, GatewayPush
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 from Service.VodHlsService import SplitVodHlsObject
+from Ansjer.config import LOGGER
 
 
 class cloudTestView(View):
@@ -153,6 +154,7 @@ class cloudTestView(View):
                 # 双通话键设备
                 UserAudioVideoPush.objects.filter(uid=uid).update(buttonUser1=newUserID, buttonUser2=newUserID,
                                                                   updated_time=int(time.time()))
+                self.add_user_phone_push(newUserID, uid)
 
                 # 记录设备转移日志
                 ip = CommonService.get_ip_address(request)
@@ -180,6 +182,49 @@ class cloudTestView(View):
         else:
             return response.json(0)
 
+    @classmethod
+    def add_user_phone_push(cls, userID, UID):
+        """
+        根据userID查询用户手机推送令牌信息
+        """
+        try:
+            uid_set_qs = UidSetModel.objects.filter(uid=UID).values('id')
+            if uid_set_qs.exists():
+                uid_set_id = uid_set_qs[0]['id']
+                now_time = int(time.time())
+                uid_push_qs = UidPushModel.objects.filter(userID=userID).values_list('appBundleId', 'app_type',
+                                                                                     'push_type', 'token_val',
+                                                                                     'jg_token_val', 'm_code',
+                                                                                     'lang', 'tz').order_by('-updTime')
+                count = 0
+                if uid_push_qs.exists():
+                    for item in set(list(uid_push_qs)):
+                        UidPushModel.objects.create(userID_id=userID, appBundleId=item[0], app_type=item[1],
+                                                    push_type=item[2], token_val=item[3], jg_token_val=item[4],
+                                                    m_code=item[5], lang=item[6], tz=item[7], addTime=now_time,
+                                                    updTime=now_time, uid_set_id=uid_set_id)
+                        count += 1
+                        if count >= 4:
+                            break
+                else:
+                    gateway_push_qs = GatewayPush.objects.filter(user_id=userID, logout=False).values(
+                        'app_bundle_id', 'm_code', 'app_type', 'push_type', 'token_val', 'lang', 'jg_token_val',
+                        'tz').order_by('-id')
+                    for item in gateway_push_qs:
+                        UidPushModel.objects.create(userID_id=userID, appBundleId=item['app_bundle_id'],
+                                                    app_type=item['app_type'], addTime=now_time,
+                                                    push_type=item['push_type'], updTime=now_time,
+                                                    token_val=item['token_val'], uid_set_id=uid_set_id,
+                                                    jg_token_val=item['jg_token_val'], lang=item['lang'],
+                                                    m_code=item['m_code'], tz=item['tz'])
+                        count += 1
+                        if count >= 4:
+                            break
+
+        except Exception as e:
+            LOGGER.error('添加用户设备推送异常,uid:{},error_line:{}, error_msg:{}'
+                         .format(UID, e.__traceback__.tb_lineno, repr(e)))
+
     def mealTransfer(self, request, request_dict, response, userID):
         # 云存套餐转移,同一用户下不同设备间的云存套餐转移
         old_uid = request_dict.get("old_uid", None)