ソースを参照

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

locky 3 年 前
コミット
18d5b95752

+ 18 - 9
Controller/CloudStorage.py

@@ -42,7 +42,8 @@ from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, OSS_ROLE_AR
 from Controller.CheckUserData import DataValid
 from Model.models import Device_Info, Order_Model, Store_Meal, VodHlsModel, OssCrdModel, UID_Bucket, StsCrdModel, \
     ExperienceContextModel, Pay_Type, CDKcontextModel, Device_User, SysMassModel, SysMsgModel, UidPushModel, \
-    Unused_Uid_Meal, UIDMainUser, UserModel, PromotionRuleModel, VideoPlaybackTimeModel, CloudLogModel, CouponModel, VodBucketModel
+    Unused_Uid_Meal, UIDMainUser, UserModel, PromotionRuleModel, VideoPlaybackTimeModel, CloudLogModel, CouponModel, \
+    VodBucketModel, UIDModel
 from Object.AWS.S3Email import S3Email
 from Object.AliPayObject import AliPayObject
 from Object.AliSmsObject import AliSmsObject
@@ -1452,7 +1453,7 @@ class CloudStorageView(View):
         uid = request_dict.get('uid', None)
         lang = request_dict.get('lang', 'en')
         dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1) \
-            .values('vodPrimaryUserID')
+            .values('vodPrimaryUserID', 'serial_number', 'Type')
         if not dv_qs.exists() or dv_qs[0]['vodPrimaryUserID'] != userID:
             return response.json(12)
         now_time = int(time.time())
@@ -1462,6 +1463,14 @@ class CloudStorageView(View):
                                                                     "use_status","endTime","has_unused","bucket__id")
         if not uid_bucket:
             return response.json(10030)
+
+        # 如果存在序列号返回完整序列号
+        device_id = uid
+        serial_number = dv_qs[0]['serial_number']
+        if serial_number:
+            device_id = CommonService.get_full_serial_number(uid, serial_number, dv_qs[0]['Type'])
+
+        uid_bucket[0]['uid'] = device_id
         uid_bucket[0]['storage'] = 0
         has_unused = uid_bucket[0]['has_unused']
         del uid_bucket[0]['has_unused']
@@ -1477,13 +1486,13 @@ class CloudStorageView(View):
                     month += 's'
                 storage = "{storage_time}{month}".format(storage_time=storage_time, month=month)
                 unused_dict = {
-                    "id":ub['unused_id'],
-                    "uid":ub['uid'],
-                    "bucket__content":ub['bucket__content'],
-                    "use_status":0,
-                    "endTime":0,
-                    "bucket__id":ub['bucket__id'],
-                    "storage":storage,
+                    "id": ub['unused_id'],
+                    "uid": device_id,
+                    "bucket__content": ub['bucket__content'],
+                    "use_status": 0,
+                    "endTime": 0,
+                    "bucket__id": ub['bucket__id'],
+                    "storage": storage,
                 }
                 store_list.append(unused_dict)
                 bucket_id_list.append(ub['bucket__id'])

+ 2 - 6
Controller/EquipmentManagerV2.py

@@ -325,13 +325,9 @@ class EquipmentManagerV2(View):
             uv_dict[us['uid']]['channels'] = channels
 
         for p in dvls:
-            # 如果存在序列号组织序列号数据返回
+            # 如果存在序列号返回完整序列号
             if p['serial_number']:
-                p2p_type = str(UIDModel.objects.filter(uid=p['UID']).values('p2p_type')[0]['p2p_type'])
-                # 设备类型转为16进制并补齐4位
-                device_type = hex(p['Type'])[2:]
-                device_type = (4-len(device_type)) * '0' + device_type
-                p['UID'] = p['serial_number'] + p2p_type + device_type
+                p['UID'] = CommonService.get_full_serial_number(p['UID'], p['serial_number'], p['Type'])
             # 新增IOT
             p['iot'] = []
             for iot in iotqs:

+ 3 - 1
Controller/OrderContrller.py

@@ -127,7 +127,9 @@ class OrderView(View):
                 if d['UID'] == did['UID']:
                     d['did'] = did['id']
                     d['Type'] = did['Type']
-                    d['serialNumber'] = did['serial_number']
+                    # 如果存在序列号返回完整序列号
+                    if did['serial_number']:
+                        d['UID'] = CommonService.get_full_serial_number(uid, did['serial_number'], did['Type'])
                     data.append(d)
             d['rank__content'] = d['rank__lang__content']
             del d['rank__lang__content']

+ 18 - 8
Controller/SensorGateway/SubDeviceController.py

@@ -6,6 +6,7 @@
 @IDE :PyCharm
 """
 import time
+from collections import OrderedDict
 
 from django.db import transaction
 from django.views import View
@@ -196,23 +197,32 @@ class GatewaySubDeviceView(View):
             if not cycle:
                 page = request_dict.get('page', None)
                 size = request_dict.get('size', None)
+                start_time = request_dict.get('startTime', None)
+                end_time = request_dict.get('endTime', None)
                 if not all([page, size]):
                     return response.json(444)
                 page, size = int(page), int(size)
-                sensor_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id). \
-                                       values('alarm', 'created_time').order_by('-created_time')[
-                                   (page - 1) * size:page * size]
+
+                if start_time and end_time:
+                    sensor_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id,
+                                                                   created_time__range=(start_time, end_time)). \
+                                           values('alarm', 'created_time').order_by('-created_time')[
+                                       (page - 1) * size:page * size]
+                else:
+                    sensor_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id). \
+                                           values('alarm', 'created_time').order_by('-created_time')[
+                                       (page - 1) * size:page * size]
                 if not sensor_record_qs.exists():
                     return response.json(0)
                 return response.json(0, list(sensor_record_qs))
             else:
-                record_dict = {}
+                record_dict = OrderedDict()
                 record_list = []
-                if cycle == '24 hours':
+                if cycle == 'Hours':
                     start_time = now_time - 24 * 60 * 60
                     sensor_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id,
                                                                    created_time__range=(start_time, now_time)). \
-                        values('alarm', 'created_time').order_by('-created_time')
+                        values('alarm', 'created_time').order_by('created_time')
                     if not sensor_record_qs.exists():
                         return response.json(0)
 
@@ -233,7 +243,7 @@ class GatewaySubDeviceView(View):
                     start_time = now_time - 24 * 60 * 60 * 7
                     sensor_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id,
                                                                    created_time__range=(start_time, now_time)). \
-                        values('alarm', 'created_time').order_by('-created_time')
+                        values('alarm', 'created_time').order_by('created_time')
                     if not sensor_record_qs.exists():
                         return response.json(0)
 
@@ -251,7 +261,7 @@ class GatewaySubDeviceView(View):
                     start_time = now_time - 24 * 60 * 60 * 30
                     sensor_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id,
                                                                    created_time__range=(start_time, now_time)). \
-                        values('alarm', 'created_time').order_by('-created_time')
+                        values('alarm', 'created_time').order_by('created_time')
                     if not sensor_record_qs.exists():
                         return response.json(0)
 

+ 6 - 1
Controller/SerialNumberController.py

@@ -12,7 +12,8 @@ from Ansjer.config import CRCKey, SERVER_DOMAIN_US, SERVER_DOMAIN_CN, CONFIG_INF
     CONFIG_CN
 from Model.models import SerialNumberModel, CompanySerialModel, UIDCompanySerialModel, UIDModel, Device_Info, \
     iotdeviceInfoModel, LogModel, UidSetModel, UID_Bucket, \
-    Unused_Uid_Meal, Order_Model, StsCrdModel, VodHlsModel, ExperienceContextModel, UidUserModel
+    Unused_Uid_Meal, Order_Model, StsCrdModel, VodHlsModel, ExperienceContextModel, UidUserModel, ExperienceAiModel, \
+    AiService
 from Object.RedisObject import RedisObject
 from Object.TokenObject import TokenObject
 from Object.uidManageResponseObject import uidManageResponseObject
@@ -344,6 +345,10 @@ class SerialNumberView(View):
                 VodHlsModel.objects.filter(uid=uid).delete()
                 ExperienceContextModel.objects.filter(uid=uid).delete()
 
+                # 重置AI
+                ExperienceAiModel.objects.filter(uid=uid).delete()
+                AiService.objects.filter(uid=uid).delete()
+
                 # 修改其他数据库的序列号使用状态为已使用
                 update_success = self.update_serial_status(serial=serial, status=1)
                 try:

+ 17 - 1
Service/CommonService.py

@@ -17,7 +17,7 @@ from pyipip import IPIPDatabase
 
 from Ansjer.config import BASE_DIR, SERVER_DOMAIN_SSL, CONFIG_INFO, CONFIG_TEST, CONFIG_CN
 from Controller.CheckUserData import RandomStr
-from Model.models import iotdeviceInfoModel, Device_Info, CountryModel, RegionModel
+from Model.models import iotdeviceInfoModel, Device_Info, CountryModel, RegionModel, UIDModel
 
 
 class CommonService:
@@ -588,6 +588,22 @@ GCqvlyw5dfxNA+EtxNE2wCW/LW7ENJlACgcfgPlBZtpLheWoZB/maw4=
                 return uid
         return serial_number
 
+    @staticmethod
+    def get_full_serial_number(uid, serial_number, device_type):
+        """
+        根据uid查询返回完整序列号
+        @param uid: uid
+        @param serial_number: 序列号
+        @param device_type: 设备类型
+        @return: full_serial_number
+        """
+        p2p_type = str(UIDModel.objects.filter(uid=uid).values('p2p_type')[0]['p2p_type'])
+        # 设备类型转为16进制并补齐4位
+        device_type = hex(device_type)[2:]
+        device_type = (4 - len(device_type)) * '0' + device_type
+        full_serial_number = serial_number + p2p_type + device_type
+        return full_serial_number
+
     # 根据企业标识返回物品名
     @staticmethod
     def get_thing_name(company_mark, thing_name_suffix):