Browse Source

优化用户按钮保存和获取

peng 1 year ago
parent
commit
e588b8f950
1 changed files with 38 additions and 10 deletions
  1. 38 10
      Controller/EquipmentManagerV3.py

+ 38 - 10
Controller/EquipmentManagerV3.py

@@ -19,7 +19,7 @@ from Controller.UnicomCombo.UnicomComboController import UnicomComboView
 from Controller.UnicomCombo.WXTechController import WXTechControllerView
 from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidChannelSetModel, \
     Device_User, iotdeviceInfoModel, UIDCompanySerialModel, UnicomDeviceInfo, CountryModel, \
-    DeviceCloudPhotoInfo, UidPushModel, ExperienceContextModel, LogModel
+    DeviceCloudPhotoInfo, UidPushModel, ExperienceContextModel, LogModel, UserAudioVideoPush
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -308,9 +308,15 @@ class EquipmentManagerV3(View):
                 userDevice = Device_Info(id=id, userID_id=userID, UID=UID, NickName=NickName, View_Account=View_Account,
                                          View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex,
                                          version=version,
-                                         vodPrimaryUserID=vodPrimaryUserID, vodPrimaryMaster=vodPrimaryMaster,
-                                         audioVideoButton=1)
+                                         vodPrimaryUserID=vodPrimaryUserID, vodPrimaryMaster=vodPrimaryMaster)
                 userDevice.save()
+                # 保存用户推送按钮信息
+                button_qs = UserAudioVideoPush.objects.filter(uid=UID)
+                if button_qs.exists():
+                    button_qs.update(buttonUser1=userID, buttonUser2=userID)
+                else:
+                    UserAudioVideoPush.objects.create(uid=UID, buttonUser1=userID, buttonUser2=userID,
+                                                      created_time=nowTime, updated_time=nowTime)
                 # 添加到家庭房间
                 if family_id:
                     EquipmentFamilyView.family_room_device_save(family_id, room_id, userDevice.id, Type)
@@ -1180,13 +1186,21 @@ class EquipmentManagerV3(View):
         if not uid:
             return response.json(444)
         try:
-            Device_Info.objects.filter(UID=uid).update(audioVideoButton='0')
+            now_time = int(time.time())
             if button_user1:
-                Device_Info.objects.filter(UID=uid, userID=button_user1).update(audioVideoButton='1')
+                button_qs = UserAudioVideoPush.objects.filter(uid=uid)
+                if button_qs.exists():
+                    button_qs.update(buttonUser1=button_user1, updated_time=now_time)
+                else:
+                    UserAudioVideoPush.objects.create(uid=uid, buttonUser1=button_user1, created_time=now_time,
+                                                      updated_time=now_time)
             if button_user2:
-                Device_Info.objects.filter(UID=uid, userID=button_user2).update(audioVideoButton='2')
-            if button_user1 and button_user2 and button_user1 == button_user2:
-                Device_Info.objects.filter(UID=uid, userID=button_user2).update(audioVideoButton='1,2')
+                button_qs = UserAudioVideoPush.objects.filter(uid=uid)
+                if button_qs.exists():
+                    button_qs.update(buttonUser2=button_user2, updated_time=now_time)
+                else:
+                    UserAudioVideoPush.objects.create(uid=uid, buttonUser2=button_user2, created_time=now_time,
+                                                      updated_time=now_time)
             return response.json(0)
         except Exception as e:
             return response.json(500, repr(e))
@@ -1200,7 +1214,21 @@ class EquipmentManagerV3(View):
         if not uid:
             return response.json(444)
         try:
-            device_qs = Device_Info.objects.filter(UID=uid).values('userID', 'audioVideoButton', 'userID__username')
-            return response.json(0, list(device_qs))
+            device_qs = Device_Info.objects.filter(UID=uid).values('userID', 'userID__username')
+            button_qs = UserAudioVideoPush.objects.filter(uid=uid).values('buttonUser1', 'buttonUser2')
+            res = []
+            for item in device_qs:
+                temp_dict = {'userId': item['userID'], 'username': item['userID__username']}
+                if not button_qs.exists():
+                    res.append(temp_dict)
+                    continue
+                if item['userID'] == button_qs[0]['buttonUser1']:
+                    temp_dict['audioVideoButton'] = '1'
+                if item['userID'] == button_qs[0]['buttonUser2']:
+                    temp_dict['audioVideoButton'] = '2'
+                if item['userID'] == button_qs[0]['buttonUser1'] and item['userID'] == button_qs[0]['buttonUser2']:
+                    temp_dict['audioVideoButton'] = '1,2'
+                res.append(temp_dict)
+            return response.json(0, res)
         except Exception as e:
             return response.json(500, repr(e))