Browse Source

转移设备到家庭

peng 1 year ago
parent
commit
6dd781b546
1 changed files with 33 additions and 6 deletions
  1. 33 6
      Controller/CloudTransfer.py

+ 33 - 6
Controller/CloudTransfer.py

@@ -13,7 +13,7 @@ from django.db.models import Q
 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
+    VodBucketModel, UnicomDeviceInfo, LogModel, UidPushModel, AiService, UidSetModel, UserFamily, FamilyRoomDevice
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -57,13 +57,14 @@ class cloudTestView(View):
         oldUserID = request_dict.get("oldUserID", None)
         username = request_dict.get("username", None)
         uid = request_dict.get('uid', None)
-        now_time = CommonService.timestamp_to_str(int(time.time()))
-        # print('now_time: ', now_time)
+        lang = request_dict.get('lang', None)
+        now_time_stamp = int(time.time())
+        now_time = CommonService.timestamp_to_str(now_time_stamp)
 
         try:
             # 查询该userID下是否存在此设备
             old_deviceInfo_qs = Device_Info.objects.filter(userID_id=oldUserID, UID=uid, isExist=1) \
-                .values('isShare', 'vodPrimaryUserID', 'serial_number', 'userID__username')
+                .values('isShare', 'vodPrimaryUserID', 'serial_number', 'userID__username', 'id')
             if not old_deviceInfo_qs.exists():
                 return response.json(10008)
             old_user_name = old_deviceInfo_qs[0]['userID__username']
@@ -98,11 +99,16 @@ class cloudTestView(View):
             if hasCycle.exists():
                 return response.json(10056)
 
-            # 获取新设备的username
-            newUserName = Device_User.objects.get(userID=newUserID).username
+            # 获取新设备的username、userEmail
+            newUserQs = Device_User.objects.get(userID=newUserID)
+            newUserName = newUserQs.username
+            newUserEmail = newUserQs.userEmail
             vodPrimaryUserID = newUserID
             vodPrimaryMaster = newUserName
 
+            # 获取用户家庭信息
+            device_id = old_deviceInfo_qs[0]['id']
+            user_family_qs = UserFamily.objects.filter(user_id=newUserID).values('id')
             with transaction.atomic():
                 serial_number = old_deviceInfo_qs[0]['serial_number']
                 # 删除旧用户此设备的uid_push数据
@@ -122,6 +128,27 @@ class cloudTestView(View):
                 if u_dev_info_qs.exists():
                     now_time = int(time.time())
                     u_dev_info_qs.update(user_id=newUserID, updated_time=now_time)
+                # 转移设备到家庭
+                if user_family_qs.exists():
+                    family_id = user_family_qs[0]['id']
+
+                else:
+                    family_name = newUserName if newUserName else newUserEmail
+                    family_name = family_name + "的家" if lang == 'cn' else family_name + " home"
+                    user_family = UserFamily.objects.create(user_id=newUserID, name=family_name,
+                                                            updated_time=now_time_stamp,
+                                                            created_time=now_time_stamp)
+                    family_id = user_family.id
+                family_device = FamilyRoomDevice.objects.filter(family_id=family_id, category=1).values('category_sort')
+                category_sort = family_device[0]['category_sort'] if family_device.exists() else 0
+                old_family_device = FamilyRoomDevice.objects.filter(device_id=device_id)
+                if old_family_device.exists():
+                    old_family_device.update(family_id=family_id, category_sort=category_sort,
+                                             updated_time=now_time_stamp, room_id=0, sort=0)
+                else:
+                    FamilyRoomDevice.objects.create(family_id=family_id, category=1, device_id=device_id,
+                                                    updated_time=now_time_stamp, created_time=now_time_stamp)
+
                 # 记录设备转移日志
                 ip = CommonService.get_ip_address(request)
                 content = json.loads(json.dumps(request_dict))