Selaa lähdekoodia

Merge branch 'test' of http://192.168.136.99:3000/servers/ASJServer into test

guanhailong 2 vuotta sitten
vanhempi
commit
76b275928f

+ 6 - 4
AdminController/VersionManagementController.py

@@ -3,6 +3,7 @@
 import os
 import os
 import hashlib
 import hashlib
 import time
 import time
+import logging
 
 
 import boto3
 import boto3
 import botocore
 import botocore
@@ -15,6 +16,8 @@ from Object.ResponseObject import ResponseObject
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Model.models import Equipment_Version, App_Info, AppSetModel, App_Colophon, Pc_Info
 from Model.models import Equipment_Version, App_Info, AppSetModel, App_Colophon, Pc_Info
 
 
+LOGGER = logging.getLogger('info')
+
 
 
 class VersionManagement(View):
 class VersionManagement(View):
     def get(self, request, *args, **kwargs):
     def get(self, request, *args, **kwargs):
@@ -140,8 +143,8 @@ class VersionManagement(View):
             companyCode = code[-1:]                         # 公司代码
             companyCode = code[-1:]                         # 公司代码
             fileSize = file.size
             fileSize = file.size
             filePath = '/'.join(('static/otapack', mci, lang, file_name))
             filePath = '/'.join(('static/otapack', mci, lang, file_name))
-            file_data = file.read()
-            fileMd5 = hashlib.md5(file_data).hexdigest()
+            # file_data = file.read()
+            fileMd5 = hashlib.md5(file_name).hexdigest()
             data_dict = {'mci': mci, 'lang': lang, 'ESN': ESN, 'max_ver': max_ver,  'channel': channel,
             data_dict = {'mci': mci, 'lang': lang, 'ESN': ESN, 'max_ver': max_ver,  'channel': channel,
                          'resolutionRatio': resolutionRatio, 'Description': Description, 'status': status,
                          'resolutionRatio': resolutionRatio, 'Description': Description, 'status': status,
                          'version': version, 'softwareVersion': softwareVersion, 'code': code,
                          'version': version, 'softwareVersion': softwareVersion, 'code': code,
@@ -167,7 +170,6 @@ class VersionManagement(View):
                     write_file.write(chunk)
                     write_file.write(chunk)
             return response.json(0)
             return response.json(0)
         except Exception as e:
         except Exception as e:
-            print(e)
             return response.json(500, repr(e))
             return response.json(500, repr(e))
 
 
     def editVersionInformation(self, request_dict, response):
     def editVersionInformation(self, request_dict, response):
@@ -628,4 +630,4 @@ class VersionManagement(View):
                 return response.json(0)
                 return response.json(0)
         except Exception as e:
         except Exception as e:
             print(e)
             print(e)
-            return response.json(500, repr(e))
+            return response.json(500, repr(e))

+ 4 - 6
Controller/CloudTransfer.py

@@ -162,6 +162,7 @@ class cloudTestView(View):
             new_deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, UID=new_uid).values('isExist')
             new_deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, UID=new_uid).values('isExist')
             if not (old_deviceInfo_qs.exists() and new_deviceInfo_qs.exists()):
             if not (old_deviceInfo_qs.exists() and new_deviceInfo_qs.exists()):
                 return response.json(10010)
                 return response.json(10010)
+            username = old_deviceInfo_qs[0]['userID__username']
 
 
             # 不是主用户无法转移
             # 不是主用户无法转移
             vodPrimaryUserID = old_deviceInfo_qs[0]['vodPrimaryUserID']
             vodPrimaryUserID = old_deviceInfo_qs[0]['vodPrimaryUserID']
@@ -182,6 +183,7 @@ class cloudTestView(View):
                 'addTime')
                 'addTime')
             if not old_using_uid_bucket.exists():
             if not old_using_uid_bucket.exists():
                 return response.json(10013)
                 return response.json(10013)
+            bucket_content = old_using_uid_bucket[0]['bucket__content']
 
 
             # 免费存储桶不可转移
             # 免费存储桶不可转移
             old_vod_bucket_id = old_using_uid_bucket[0]['bucket_id']
             old_vod_bucket_id = old_using_uid_bucket[0]['bucket_id']
@@ -236,16 +238,12 @@ class cloudTestView(View):
                     'time': int(time.time()),
                     'time': int(time.time()),
                     'url': 'cloudTransfer/mealTransfer',
                     'url': 'cloudTransfer/mealTransfer',
                     'content': json.dumps(content),
                     'content': json.dumps(content),
-                    'operation': '用户{}的设备{}的套餐{}转移给设备{}'.format(old_deviceInfo_qs[0]['userID__username'], old_uid,
-                                                                old_using_uid_bucket[0]['bucket__content'], new_uid),
+                    'operation': '用户{}的设备{}的套餐{}转移给设备{}'.format(username, old_uid, bucket_content, new_uid),
                 }
                 }
                 LogModel.objects.create(**log)
                 LogModel.objects.create(**log)
-
+            return response.json(0)
         except Exception as e:
         except Exception as e:
-            # print(e)
             return response.json(500, repr(e))
             return response.json(500, repr(e))
-        else:
-            return response.json(0)
 
 
     def expireMeal(self, request_dict, response):
     def expireMeal(self, request_dict, response):
         UID_Bucket_id = request_dict.get("UID_Bucket_id", None)
         UID_Bucket_id = request_dict.get("UID_Bucket_id", None)

+ 7 - 15
Controller/EquipmentInfo.py

@@ -218,23 +218,15 @@ class EquipmentInfo(View):
         @param response:
         @param response:
         @return:
         @return:
         """
         """
-        ei_id = request_dict.getlist('id', None)
-        if ei_id is None:
+        uid = request_dict.get('uid', None)
+        event_time = request_dict.get('event_time', None)
+        if not all([uid, event_time]):
             return response.json(444)
             return response.json(444)
-        count = 0
-        tab_val = int(ei_id[0:1])
-        ei_id = int(ei_id[1:])
-        eq = EquipmentInfoService.get_equipment_info_model('', tab_val)
-        eq = eq.filter(id=ei_id)
-        if not eq.exists():
-            return response.json(173)
-        own_dev = ModelService.check_own_device(user_id, eq[0].device_uid)
-        if own_dev:
-            count += 1
-            eq.update(answer_status=1)
-            return response.json(0, {'update_success': count})
+        updated = EquipmentInfoService.update_equipment_answer_status(user_id, uid, event_time)
+        if updated:
+            return response.json(0)
         else:
         else:
-            return response.json(14)
+            return response.json(5)
 
 
     def delete_info(self, request_dict, userID, response):
     def delete_info(self, request_dict, userID, response):
         id_list = request_dict.getlist('id[]', None)
         id_list = request_dict.getlist('id[]', None)

+ 1 - 1
Controller/SensorGateway/EquipmentFamilyController.py

@@ -1018,7 +1018,7 @@ class EquipmentFamilyView(View):
         if not permission or permission == '003':
         if not permission or permission == '003':
             return response.json(404)
             return response.json(404)
         family_room_device_qs = FamilyRoomDevice.objects \
         family_room_device_qs = FamilyRoomDevice.objects \
-            .filter(Q(family_id=family_id), ~Q(device_id__isExist=2), Q(device__userID=user_id)) \
+            .filter(Q(family_id=family_id), ~Q(device_id__isExist=2)) \
             .values().order_by('sort', '-device__data_joined')
             .values().order_by('sort', '-device__data_joined')
         if not family_room_device_qs.exists():
         if not family_room_device_qs.exists():
             return response.json(0, device_dict)
             return response.json(0, device_dict)

+ 46 - 1
Controller/SensorGateway/GatewayDeviceController.py

@@ -22,7 +22,7 @@ from Model.models import FamilyRoomDevice, FamilyRoom, GatewaySubDevice, Device_
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
-
+from Object.RedisObject import RedisObject
 
 
 class GatewayDeviceView(View):
 class GatewayDeviceView(View):
 
 
@@ -57,6 +57,10 @@ class GatewayDeviceView(View):
             return self.my_family_list(user_id, response)
             return self.my_family_list(user_id, response)
         elif operation == 'location-setting':
         elif operation == 'location-setting':
             return self.device_location_setting(user_id, request_dict, response)
             return self.device_location_setting(user_id, request_dict, response)
+        elif operation == 'bind-serial-user':
+            return self.bind_serial_user(user_id, request_dict, response)
+        elif operation == 'get-serial-user':
+            return self.get_serial_user(user_id, request_dict, response)
 
 
     @classmethod
     @classmethod
     def device_location_setting(cls, user_id, request_dict, response):
     def device_location_setting(cls, user_id, request_dict, response):
@@ -429,6 +433,47 @@ class GatewayDeviceView(View):
         data['accumulatedTime'] = socket_power_qs[0]['accumulated_time']
         data['accumulatedTime'] = socket_power_qs[0]['accumulated_time']
         return data
         return data
 
 
+    @classmethod
+    def bind_serial_user(cls, user_id, request_dict, response):
+        """
+        绑定网关序列号和用户id
+        @param user_id: 用户id
+        @param request_dict: 请求参数字典
+        @param response: 响应对象
+        @return:
+        """
+        serial_number = request_dict.get('serialNumber')
+        if not serial_number:
+            return response.json(444)
+        try:
+            redis_obj = RedisObject()
+            result = redis_obj.set_data(user_id, serial_number, 300)
+            if not result:
+                return response.json(178)
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(177, repr(e))
+
+    @classmethod
+    def get_serial_user(cls, user_id, request_dict, response):
+        """
+        获取用户id绑定网关序列号
+        @param user_id: 用户id
+        @param request_dict: 请求参数字典
+        @param response: 响应对象
+        @return:
+        """
+        try:
+            redis_obj = RedisObject()
+            serial_number = redis_obj.get_data(user_id)
+            if not serial_number:
+                return response.json(173)
+            return response.json(0, {'serialNumber': serial_number})
+        except Exception as e:
+            print(e)
+            return response.json(177, repr(e))
+
 #
 #
 #                   ___====-_  _-====___
 #                   ___====-_  _-====___
 #             _--^^^#####//      \\#####^^^--_
 #             _--^^^#####//      \\#####^^^--_

+ 62 - 3
Service/EquipmentInfoService.py

@@ -11,7 +11,7 @@ import itertools
 import logging
 import logging
 import time
 import time
 
 
-from django.db.models import Value, CharField
+from django.db.models import Value, CharField, Q
 
 
 from Model.models import EquipmentInfoMonday, EquipmentInfoTuesday, EquipmentInfoWednesday, EquipmentInfoThursday, \
 from Model.models import EquipmentInfoMonday, EquipmentInfoTuesday, EquipmentInfoWednesday, EquipmentInfoThursday, \
     EquipmentInfoFriday, EquipmentInfoSaturday, EquipmentInfoSunday
     EquipmentInfoFriday, EquipmentInfoSaturday, EquipmentInfoSunday
@@ -169,9 +169,10 @@ class EquipmentInfoService:
         if event_type:
         if event_type:
             # 多类型查询
             # 多类型查询
             eventTypeList = cls.get_comb_event_type(event_type)
             eventTypeList = cls.get_comb_event_type(event_type)
-            eventTypeList += cls.get_combo_type_bins(event_type)
+            # eventTypeList += cls.get_combo_type_bins(event_type)
             eventTypeList = list(set(eventTypeList))
             eventTypeList = list(set(eventTypeList))
-            qs = qs.filter(event_type__in=eventTypeList)
+            tags = cls.get_event_tag(event_type)
+            qs = qs.filter(Q(event_type__in=eventTypeList) | Q(event_tag__regex=tags))
         if start_time and end_time:
         if start_time and end_time:
             qs = qs.filter(event_time__range=(start_time, end_time))
             qs = qs.filter(event_time__range=(start_time, end_time))
         else:
         else:
@@ -424,3 +425,61 @@ class EquipmentInfoService:
         except Exception as e:
         except Exception as e:
             print('推送错误异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
             print('推送错误异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
             return res_list
             return res_list
+
+    @staticmethod
+    def get_event_tag(event_type):
+        """
+        获取标签用于筛选推送消息
+        """
+        if ',' in event_type:
+            tags = ''
+            res_list = event_type.split(',')
+            tag_size = len(res_list)
+            for i, item in enumerate(res_list):
+                tags += ',' + str(item) + ','
+                if i < (tag_size - 1):
+                    tags += '|'
+            return tags
+
+        else:
+            return ',' + str(event_type) + ','
+
+    @staticmethod
+    def update_equipment_answer_status(user_id, uid, event_time):
+        """
+        更新一键通话消息状态
+        @param user_id: 用户id
+        @param uid: uid
+        @param event_time: 事件时间
+        @return updated_flag: bool
+        """
+        updated_flag = False
+        updated = EquipmentInfoMonday.objects.filter(device_user_id=user_id, device_uid=uid, event_time=event_time,
+                                                     event_type=606).update(answer_status=1)
+        if updated:
+            updated_flag = True
+        updated = EquipmentInfoTuesday.objects.filter(device_user_id=user_id, device_uid=uid, event_time=event_time,
+                                                      event_type=606).update(answer_status=1)
+        if updated:
+            updated_flag = True
+        updated = EquipmentInfoWednesday.objects.filter(device_user_id=user_id, device_uid=uid, event_time=event_time,
+                                                        event_type=606).update(answer_status=1)
+        if updated:
+            updated_flag = True
+        updated = EquipmentInfoThursday.objects.filter(device_user_id=user_id, device_uid=uid, event_time=event_time,
+                                                       event_type=606).update(answer_status=1)
+        if updated:
+            updated_flag = True
+        updated = EquipmentInfoFriday.objects.filter(device_user_id=user_id, device_uid=uid, event_time=event_time,
+                                                     event_type=606).update(answer_status=1)
+        if updated:
+            updated_flag = True
+        updated = EquipmentInfoSaturday.objects.filter(device_user_id=user_id, device_uid=uid, event_time=event_time,
+                                                       event_type=606).update(answer_status=1)
+        if updated:
+            updated_flag = True
+        updated = EquipmentInfoSunday.objects.filter(device_user_id=user_id, device_uid=uid, event_time=event_time,
+                                                     event_type=606).update(answer_status=1)
+        if updated:
+            updated_flag = True
+        return updated_flag