chenjunkai 6 жил өмнө
parent
commit
91edc755a4

+ 4 - 7
Ansjer/config.py

@@ -32,7 +32,7 @@ OAUTH_ACCESS_TOKEN_SECRET = 'a+jbgnw%@1%zy^=@dn62%'
 OAUTH_REFRESH_TOKEN_SECRET = 'r+jbgnw%@1%zy^=@dn62%'
 # access_token超时
 # OAUTH_ACCESS_TOKEN_TIME = datetime.timedelta(hours=1)
-OAUTH_ACCESS_TOKEN_TIME = datetime.timedelta(days=507)
+OAUTH_ACCESS_TOKEN_TIME = datetime.timedelta(days=7)
 # refresh_token超时
 OAUTH_REFRESH_TOKEN_TIME = datetime.timedelta(days=7)
 # 腾讯验证,短信发送
@@ -51,21 +51,18 @@ UID_TOKEN_KEY = 'c+565*j@%^'
 
 if SERVER_TYPE == 'Ansjer.local_settings':
     NGINX_RTMP_STAT = 'http://192.168.136.45:8077/stat'
-    SERVER_DOMAIN = 'http://192.168.136.45:8077'
-    DATABASE_DATA = 'AnsjerLocal'
+    SERVER_DOMAIN = 'http://192.168.136.45:8077/'
     SERVER_HOST = '192.168.136.45'
     DOMAIN_HOST = '192.168.136.45'
     RTMP_PUSH_URL = 'rtmp://192.168.136.45:1935/hls'
 elif SERVER_TYPE == 'Ansjer.test_settings':
     NGINX_RTMP_STAT = 'http://test.dvema.com/stat'
-    SERVER_DOMAIN = 'http://test.dvema.com'
+    SERVER_DOMAIN = 'http://test.dvema.com/'
     DOMAIN_HOST = 'test.dvema.com'
-    DATABASE_DATA = 'AnsjerTest'
     SERVER_HOST = 'localhost'
 elif SERVER_TYPE == 'Ansjer.formal_settings':
     NGINX_RTMP_STAT = 'http://www.dvema.com/stat'
-    SERVER_DOMAIN = 'http://www.dvema.com'
+    SERVER_DOMAIN = 'http://www.dvema.com/'
     DOMAIN_HOST = 'www.dvema.com'
-    DATABASE_DATA = 'Ansjer81'
     SERVER_HOST = 'localhost'
 

+ 7 - 1
Ansjer/urls.py

@@ -26,6 +26,7 @@ urlpatterns = [
     url(r'^account/showAllUser$', UserManger.showAllUserInterface),
     url(r'^account/help$', LogManager.HelpView.as_view()),
     url(r'^account/searchUser$', shareUserPermission.searchUserView.as_view()),
+
     url(r'^account/shareUserEquipment$', shareUserPermission.shareUserEquipmentView.as_view()),
     url(r'^account/unsharedUserEquipment$', shareUserPermission.unsharedUserEquipmentView.as_view()),
     url(r'^response/success$', UserManger.success),
@@ -41,6 +42,7 @@ urlpatterns = [
     url(r'^OTA/getEquipmentVersion$', OTAEquipment.getEquipmentVersionInterface),
     url(r'^OTA/getUpdataFileUrl$', OTAEquipment.getUpdataFileUrlInterface),
     url(r'^OTA/addNewEquipmentVersion$', OTAEquipment.addNewEquipmentVersionInterface),
+
     url(r'^roles/addNewRole$', PermissionManager.addNewRoleView.as_view()),
     url(r'^roles/queryRole$', PermissionManager.queryRoleView.as_view()),
     url(r'^roles/delRole$', PermissionManager.delRoleView.as_view()),
@@ -110,8 +112,12 @@ urlpatterns = [
     url(r'^v2/account/forgetCode$', UserController.v2forgetPwdCodeView.as_view()),
     url(r'^v2/account/resetPwdByCode$', UserController.v2resetPwdByCodeView.as_view()),
 
-    url(r'^detet/add$', EquipmentInfo.AddDetectionView.as_view()),
+    # url(r'^uid/(?P<operation>.*)$', UidController.UidControllerView.as_view()),
+
+    # url(r'^detet/add$', EquipmentInfo.AddDetectionView.as_view()),
 # http://192.168.136.45:8077/detet/add?UID=2N1K3LE78TYJ38CE111A&Channel=0&eventType=1&eventTime=1234567890&operation=add&alarm=21342134&receiveTime=1234567891234567
+    # 新的设备接口
+
 
     # 测试专用api
     path('Test', Test.Test.as_view()),

+ 2 - 9
Controller/EquipmentInfo.py

@@ -249,10 +249,8 @@ class AddDetectionView(TemplateView):
         Channel = request_dict.get('Channel', None)
         eventType = request_dict.get('eventType', None)
         eventTime = request_dict.get('eventTime', None)
-        receiveTime = request_dict.get('receiveTime', None)
-        alarm = request_dict.get('alarm', None)
 
-        if not UID or not Channel or not eventType or not eventTime or not alarm or not receiveTime:
+        if not UID or not Channel or not eventType or not eventTime:
             return response.json(444, 'devUid, Channel, eventType, eventTime, alarm, receiveTime')
         # dv_qs = Device_Info.objects.filter(UID=UID, isShare=False)
         dv_qs = Device_Info.objects.filter(UID=UID,isDetector=True).values("userID_id","NickName")
@@ -267,12 +265,8 @@ class AddDetectionView(TemplateView):
                 'devUid': UID,
                 'Channel': Channel,
                 'eventType': eventType,
-                'receiveTime': receiveTime,
                 'eventTime': eventTime,
                 'devNickName': dv["NickName"],
-                'viewPwd': '',
-                'viewAccont': '',
-                'alarm': alarm
             }
             qs_list.append(Equipment_Info(**add_data))
         if qs_list:
@@ -308,13 +302,12 @@ class DetectStatusView(View):
         if tko.code != 0:
             return response.json(tko.code)
         userID = tko.userID
-        if userID is None or status is None:
-            return response.json(444,'status or userId not in')
         return self.do_update(userID,status,response)
 
 
     def do_update(self, userID,status,response):
         qs = Device_Info.objects.filter(userID=userID)
+
         if qs.exists():
             return
         own_permission = ModelService.check_permission(userID=userID, permID=230)

+ 20 - 14
Controller/EquipmentManager.py

@@ -23,24 +23,32 @@ def addNewUserEquipment(userID, deviceContent, response):
             else:
                 UID = deviceData.get('UID', None)
                 if UID != None:
-
                     dValid = Device_Info.objects.filter(userID=userID, UID=UID)
                     if dValid:
                         return response.json(174)
                     else:
-                        if 'NickName' in deviceData:
-                            nValid = Device_Info.objects.filter(userID=userID, NickName=deviceData['NickName'])
-                            if nValid.exists():
-                                return response.json(179)
-                        UID = deviceData['UID']
+                        # 判断是否有同样昵称存在
+                        # if 'NickName' in deviceData:
+                        #     nValid = Device_Info.objects.filter(userID=userID, NickName=deviceData['NickName'])
+                        #     if nValid.exists():
+                        #         return response.json(179)
+                        UID = deviceData.get('UID', '')
                         re_uid = re.compile(r'^[A-Za-z0-9]{20}$')
                         if re_uid.match(UID):
                             is_bind = Device_Info.objects.filter(UID=UID, isShare=False)
-                            # 判断是否有绑定
+                            # 判断是否有绑定用户
                             if is_bind:
                                 # return response.json(175)
-                                userDevice = Device_Info(id=CommonService.getUserID(getUser=False),isShare=True,userID_id=userID,**deviceData)
-                                userDevice.save()
+                                # 判断用户密码是否正确
+                                dev_user = deviceData.get('View_Account', '')
+                                dev_pass = deviceData.get('View_Password', '')
+                                if is_bind[0].View_Account == dev_user and is_bind[0].View_Password == dev_pass:
+                                    deviceData['NickName'] = is_bind[0].NickName
+                                    userDevice = Device_Info(id=CommonService.getUserID(getUser=False), isShare=True,
+                                                             userID_id=userID, **deviceData)
+                                    userDevice.save()
+                                else:
+                                    return response.json(111)
                             else:
                                 userDevice = Device_Info(id=CommonService.getUserID(getUser=False), userID_id=userID,
                                                          **deviceData)
@@ -55,9 +63,7 @@ def addNewUserEquipment(userID, deviceContent, response):
             print('添加设备错误: %s ' % errorInfo)
             return response.json(178, repr(e))
         else:
-            sqlJSON = serializers.serialize('json', [userDevice])
-            sqlList = json.loads(sqlJSON)
-            sqlDict = dict(zip(["datas"], [sqlList]))
+            sqlDict = CommonService.qs_to_dict([userDevice])
             return response.json(0, sqlDict)
     else:
         return response.json(113)
@@ -390,7 +396,7 @@ def findEquipmentInfoInterface(request, *callback_args, **callback_kwargs):
                     deviceContent = json.loads(deviceContent)
                 except Exception as e:
                     print(repr(e))
-                    return response.json(10,repr(e))
+                    return response.json(10, repr(e))
                 else:
                     resultDict = findEquipmentInfo(content=deviceContent, type=2, fieldDict=fieldDict)
             else:
@@ -399,4 +405,4 @@ def findEquipmentInfoInterface(request, *callback_args, **callback_kwargs):
         else:
             return response.json(tko.code)
     else:
-        return response.json(444,'token')
+        return response.json(444, 'token')

+ 4 - 4
Controller/OTAEquipment.py

@@ -233,10 +233,10 @@ def getUpdataFileUrlInterface(request):
             if file_path:
                 if file_path.find('static/Upgrade/') != -1:
                     path = file_path.replace('static/Upgrade/', '').replace('\\', '/')
-                    url = SERVER_DOMAIN + '/OTA/downloads/' + path + '?time=' + str(time.time())
+                    url = SERVER_DOMAIN + 'OTA/downloads/' + path + '?time=' + str(time.time())
                     urls.append(url)
                 if file_path.find('static/otapack') != -1:
-                    url = SERVER_DOMAIN + '/OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
+                    url = SERVER_DOMAIN + 'OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
                     urls.append(url)
             if len(urls) > 0:
                 return response.json(0, {
@@ -526,14 +526,14 @@ def getNewVerInterface(request):
                     equipment = equipmentValid[0]
                     file_path = equipment.filePath
                     # path = file_path.replace('static/Upgrade/', '').replace('\\', '/')
-                    # url = SERVER_DOMAIN + '/OTA/downloads/' + path + '?time=' + str(time.time())
+                    # url = SERVER_DOMAIN + 'OTA/downloads/' + path + '?time=' + str(time.time())
                     # 检测ip进行替换
                     serverip = '54.215.154.29'
                     client_ip = CommonService.get_ip_address(request)
                     if serverip == client_ip:
                         url = 'http://54.215.154.29/OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
                     else:
-                        url = SERVER_DOMAIN + '/OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
+                        url = SERVER_DOMAIN + 'OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
                     # get_ip_address =
                     return response.json(0, {
                         'ver': ver,

+ 4 - 4
Controller/UserController.py

@@ -405,7 +405,7 @@ class ForgetPwdView(TemplateView):
 
                     reset_pwd = CommonService.RandomStr(6)
                     send_data = TemplateService.email_message(type='forget', language='en')
-                    reset_link = '{server_host}/account/email-re-pwd?token={token}'.format(
+                    reset_link = '{server_host}account/email-re-pwd?token={token}'.format(
                         server_host=SERVER_DOMAIN, token=token)
                     send_body = send_data['body'].format(username=email, reset_pwd=reset_pwd, reset_link=reset_link)
                     ses = SesClassObject()
@@ -701,7 +701,7 @@ class v2registerView(TemplateView):
         userIconPath = str(user_list[0]["userIconPath"])
         if userIconPath and userIconPath.find('static/') != -1:
             userIconPath = userIconPath.replace('static/', '').replace('\\', '/')
-            res['userIconUrl'] = SERVER_DOMAIN + '/account/getAvatar/' + userIconPath
+            res['userIconUrl'] = SERVER_DOMAIN + 'account/getAvatar/' + userIconPath
         else:
             res['userIconUrl'] = ''
         res['NickName'] = user_list[0]["NickName"] if user_list[0]["NickName"] is not None else ''
@@ -938,7 +938,7 @@ class v2resetPwdByCodeView(TemplateView):
         userIconPath = str(user_list[0]["userIconPath"])
         if userIconPath and userIconPath.find('static/') != -1:
             userIconPath = userIconPath.replace('static/', '').replace('\\', '/')
-            res['userIconUrl'] = SERVER_DOMAIN + '/account/getAvatar/' + userIconPath
+            res['userIconUrl'] = SERVER_DOMAIN + 'account/getAvatar/' + userIconPath
         else:
             res['userIconUrl'] = ''
         res['NickName'] = user_list[0]["NickName"] if user_list[0]["NickName"] is not None else ''
@@ -1040,7 +1040,7 @@ class v2LoginView(TemplateView):
             userIconPath = str(user_list[0]["userIconPath"])
             if userIconPath and userIconPath.find('static/') != -1:
                 userIconPath = userIconPath.replace('static/', '').replace('\\', '/')
-                res['userIconUrl'] = SERVER_DOMAIN + '/account/getAvatar/' + userIconPath
+                res['userIconUrl'] = SERVER_DOMAIN + 'account/getAvatar/' + userIconPath
             else:
                 res['userIconUrl'] = ''
             res['NickName'] = user_list[0]["NickName"] if user_list[0]["NickName"] is not None else ''

+ 2 - 2
Controller/UserManger.py

@@ -68,7 +68,7 @@ class showUserMoreView(TemplateView):
             if userIconPath:
                 if userIconPath.find('static/') != -1:
                     userIconPath = userIconPath.replace('static/', '').replace('\\', '/')
-                    userIconUrl = SERVER_DOMAIN + '/account/getAvatar/' + userIconPath
+                    userIconUrl = SERVER_DOMAIN + 'account/getAvatar/' + userIconPath
                     sqlDict['datas'][k]['fields']['userIconUrl'] = userIconUrl
             if len(v['fields']['role']):
                 roleName = ModelService.getRole(rid=v['fields']['role'][0])
@@ -160,7 +160,7 @@ class perfectUserInfoView(TemplateView):
                 userContent = kwargs.get('userContent', None)
                 if userIconPath is not None:
                     userIconPath = userIconPath[userIconPath.find('static/'):]
-                    userIconUrl = SERVER_DOMAIN + '/account/getAvatar/' + userIconPath[7:]
+                    userIconUrl = SERVER_DOMAIN + 'account/getAvatar/' + userIconPath[7:]
                 if userContent != None:
                     try:
                         UserData = json.loads(userContent)

+ 7 - 56
Model/models.py

@@ -172,7 +172,7 @@ class Device_User(AbstractBaseUser):
                                        # 图片将处理成85x85的尺寸
                                        processors=[ResizeToFill(85, 85)], )
     userIconUrl = models.URLField(blank=True, max_length=128, default=SERVER_DOMAIN
-                                                                      + '/account/getAvatar/User/defaultUser.png')
+                                                                      + 'account/getAvatar/User/defaultUser.png')
     NickName = models.CharField(blank=True, max_length=32, default='', verbose_name=u'用户昵称')
     is_superuser = models.IntegerField(blank=True, default=0, verbose_name=u'用户类型')
     is_active = models.BooleanField(blank=True, default=False, verbose_name=u'用户活动状态')
@@ -416,14 +416,14 @@ class Equipment_Sensor(models.Model):
 
 class Equipment_Info(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
-    devUid = models.CharField(null=True, blank=True, max_length=32, verbose_name=u'设备ID')
+    devUid = models.CharField(default='', blank=True, max_length=32, verbose_name=u'设备ID')
     devNickName = models.CharField(blank=True, max_length=32, default='', verbose_name=u'设备昵称')
-    Channel = models.IntegerField(null=True, blank=True, verbose_name=u'设备通道')
-    eventType = models.IntegerField(null=True, blank=True, verbose_name=u'事件类型')
+    Channel = models.IntegerField(default=1, blank=True, verbose_name=u'设备通道')
+    eventType = models.IntegerField(default=0, blank=True, verbose_name=u'事件类型')
     status = models.BooleanField(blank=True, default=False, verbose_name=u'事件状态')
     alarm = models.CharField(blank=True, max_length=256, verbose_name=u'报警信息')
-    eventTime = models.CharField(blank=True, null=True, max_length=16, verbose_name=u'设备报警时间')
-    receiveTime = models.CharField(blank=True, null=True, max_length=16, verbose_name=u'接收到报警时间')
+    eventTime = models.CharField(blank=True, default='', max_length=16, verbose_name=u'设备报警时间')
+    receiveTime = models.CharField(blank=True, default='', max_length=16, verbose_name=u'接收到报警时间')
     userID = models.ForeignKey(Device_User, null=True, blank=True, to_field='userID', on_delete=models.CASCADE)
 
     def __str__(self):
@@ -543,53 +543,4 @@ class App_Info(models.Model):
         db_table = 'app_info'
         verbose_name = u'app信息表'
         verbose_name_plural = verbose_name
-        ordering = ('id',)
-
-
-# class UID_Model(models.Model):
-#     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
-#     UID = models.CharField(blank=True, unique=True, max_length=32, verbose_name=u'设备UID')
-#     NickName = models.CharField(blank=True, max_length=32, verbose_name=u'设备名称')
-#     SID = models.CharField(blank=True, max_length=32, verbose_name=u'服务器ID')
-#     View_Account = models.CharField(blank=True, max_length=32, verbose_name=u'设备用户名称')
-#     View_Password = models.CharField(blank=True, max_length=32, verbose_name=u'设备密码')
-#     AudioFormat = models.IntegerField(blank=True, default=1, verbose_name=u'初始化影像')
-#     EventNotification = models.IntegerField(blank=True, verbose_name=u'报警类型')
-#     ChannelIndex = models.IntegerField(blank=True, verbose_name=u'通道号')
-#     Online = models.BooleanField(blank=True, default=False, verbose_name=u'设备是否在线')
-#     mMonitorIndex = models.IntegerField(blank=True, default=-1)
-#     Type = models.IntegerField(blank=True)
-#     DebugMode = models.IntegerField(blank=True, verbose_name=u'调试模式')
-#     NotificationMode = models.IntegerField(blank=True, verbose_name=u'是否报警')
-#     qvgaLevel = models.BooleanField(blank=True, verbose_name=u'SD与HD画面', default=0)  # 0代表:SD、1代表:HD
-#     isShare = models.BooleanField(blank=True, verbose_name=u'共享设备', default=False)
-#     primaryUserID = models.CharField(blank=True, verbose_name='主用户', max_length=32, default='')
-#     data_joined = models.DateTimeField(blank=True, verbose_name=u'设备添加时间', auto_now_add=True)
-#     update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True, null=True)
-#     ip = models.CharField(blank=True, max_length=20, null=True, verbose_name=u'设备区域ip')
-#     area = models.CharField(blank=True, max_length=100, null=True, verbose_name=u'设备区域area')
-#     # ios要求新增字段
-#     version = models.CharField(blank=True, max_length=20, null=True, verbose_name=u'版本号')
-#     SpaceUsable = models.CharField(blank=True, max_length=20, null=True, verbose_name=u'可用空间')
-#     SpaceSum = models.CharField(blank=True, max_length=20, null=True, verbose_name=u'总空间')
-#     WIFIName = models.CharField(blank=True, max_length=50, null=True, verbose_name=u'无线名称')
-#     WIFIIP = models.CharField(blank=True, max_length=20, null=True, verbose_name=u'无线ip')
-#     WIFIPwd = models.CharField(blank=True, max_length=50, null=True, verbose_name=u'无线密码')
-#     isDetector = models.BooleanField(blank=True, verbose_name=u'侦测开关', default=False)  # 0:关闭,1:开启
-#     DetectorRank = models.IntegerField(blank=True, default=0, verbose_name=u'侦测灵敏度')  # 1:低,2:中,3:高4:最高
-#     iSNotification = models.BooleanField(blank=True, verbose_name=u'报警通知', default=False)  # 0:关闭,1:开启)
-#     MirrorType = models.IntegerField(blank=True, default=0, verbose_name=u'镜像类型')  # 0:关闭镜像,1:上下镜像,2:左右镜像,3:上下左右镜像
-#     RecordType = models.IntegerField(blank=True, default=0, verbose_name=u'录像模式')  # (0:关闭,1:全是录像,3:报警录像)
-#     TimeZone = models.CharField(blank=True, max_length=50, null=True, verbose_name=u'时区')
-#     user_model = models.ManyToManyField(to='Device_User', blank=True, verbose_name=u'用户关联设备', db_table='user_uid')
-#
-#     REQUIRED_FIELDS = []
-#
-#     def __str__(self):
-#         return self.NickName
-#
-#     class Meta:
-#         db_table = 'UID'
-#         ordering = ('-data_joined',)
-#         verbose_name = u'设备信息表'
-#         verbose_name_plural = verbose_name
+        ordering = ('id',)

+ 1 - 1
Object/TokenObject.py

@@ -21,7 +21,7 @@ class TokenObject:
 
     def __init__(self, token=None):
         if token == 'local':
-            token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySUQiOiIxNTE1NDc4NjczNDUxNjM2MTM4MDAxMzgwMDEiLCJsYW5nIjoiZW4iLCJleHAiOjE1NDQ0OTg2MzR9.Be5g7FFVle8wPOSSk4SOfbsP5Wy0uQMQmYXud33Lgpo'
+            token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySUQiOiIxNTQzOTA5MDUwNDEzMTM4MDAxMzgwMDAiLCJsYW5nIjoiZW4iLCJleHAiOjE1NDQ1MTQ2ODd9.y2I7Qp5W-VxnzohVhZe9xNUozv3PeohugkoUNJs_dTY'
         if token == 'test':
             token = 'x'
         self.token = token