Selaa lähdekoodia

首页数据新增cloudPhoto,优化云相册支持云存主用户一键开启

zhangdongming 2 vuotta sitten
vanhempi
commit
f238095226
2 muutettua tiedostoa jossa 33 lisäystä ja 15 poistoa
  1. 18 13
      Controller/CloudPhoto/CloudPhotoController.py
  2. 15 2
      Controller/EquipmentManagerV3.py

+ 18 - 13
Controller/CloudPhoto/CloudPhotoController.py

@@ -61,23 +61,28 @@ class CronCloudPhotoView(View):
             with transaction.atomic():
                 status = request_dict.get('status', None)
                 uid = request_dict.get('uid', None)
-                if not all([status, uid, user_id]):
+                if not all([status, user_id]):
                     return response(444)
                 status = int(status)
-                device_info_qs = Device_Info.objects.filter(userID_id=user_id, UID=uid).values('primaryUserID')
+                device_info_qs = Device_Info.objects.filter(userID_id=user_id)
+                if uid:
+                    device_info_qs = device_info_qs.filter(UID=uid)
+                device_info_qs = device_info_qs.values('vodPrimaryUserID', 'UID')
                 if not device_info_qs.exists():
                     return response.json(14)
-                master_user_id = device_info_qs[0]['primaryUserID']
-                if master_user_id != '' and master_user_id != user_id:
-                    return response.json(12)
-                now_time = int(time.time())
-                cloud_photo_qs = DeviceCloudPhotoInfo.objects.filter(uid=uid)
-                if not cloud_photo_qs.exists():
-                    data = {'status': status, 'user_id': user_id, 'uid': uid, 'created_time': now_time,
-                            'updated_time': now_time}
-                    DeviceCloudPhotoInfo.objects.create(**data)
-                    return response.json(0)
-                cloud_photo_qs.update(status=status, updated_time=now_time)
+                for item in device_info_qs:
+                    master_user_id = item['vodPrimaryUserID']
+                    uid = item['UID']
+                    if master_user_id == '' or master_user_id != user_id:
+                        continue
+                    now_time = int(time.time())
+                    cloud_photo_qs = DeviceCloudPhotoInfo.objects.filter(uid=uid)
+                    if not cloud_photo_qs.exists():
+                        data = {'status': status, 'user_id': user_id, 'uid': uid, 'created_time': now_time,
+                                'updated_time': now_time}
+                        DeviceCloudPhotoInfo.objects.create(**data)
+                        continue
+                    cloud_photo_qs.update(status=status, updated_time=now_time)
                 return response.json(0)
         except Exception as e:
             LOGGER.info('异常详情,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))

+ 15 - 2
Controller/EquipmentManagerV3.py

@@ -14,7 +14,8 @@ from Controller.CheckUserData import RandomStr
 from Controller.DeviceConfirmRegion import Device_Region
 from Controller.SensorGateway.EquipmentFamilyController import EquipmentFamilyView
 from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidChannelSetModel, \
-    Device_User, iotdeviceInfoModel, UIDCompanySerialModel, UIDModel, UnicomDeviceInfo, CountryModel
+    Device_User, iotdeviceInfoModel, UIDCompanySerialModel, UIDModel, UnicomDeviceInfo, CountryModel, \
+    DeviceCloudPhotoInfo
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -727,7 +728,7 @@ class EquipmentManagerV3(View):
                 u_device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=p['serial_number'])
                 if u_device_info_qs.exists():
                     p['iccid'] = u_device_info_qs.first().iccid
-
+            p['cloudPhoto'] = self.get_cloud_photo_status(p['UID'])
             # 获取iot_deviceInfo表的endpoint和token_iot_number
             p['iot'] = []
             if p['serial_number']:  # 存在序列号根据序列号查询
@@ -805,6 +806,18 @@ class EquipmentManagerV3(View):
         result = data
         return response.json(0, result)
 
+    @staticmethod
+    def get_cloud_photo_status(uid):
+        """
+        根据UID获取云相册开关状态
+        @param uid: 设备uid
+        @return: 0 or 1
+        """
+        cloud_photo_qs = DeviceCloudPhotoInfo.objects.filter(uid=uid).values('status')
+        if not cloud_photo_qs.exists():
+            return 0
+        return cloud_photo_qs[0]['status']
+
     def do_fuzzy_query(self, userID, request_dict, response):
         fuzzy = request_dict.get('fuzzy', None)
         page = request_dict.get('page', None)