1
0

20 Commits 58df7a0f64 ... a520957d54

Autor SHA1 Mensagem Data
  chenshibin a520957d54 更新测试数据库路径. há 4 anos atrás
  chenshibin 049b9addc0 Merge branch 'master' of http://192.168.136.99:3000/servers/ASJPush into test há 4 anos atrás
  lhq c4c3a119f4 正式V2 添加info há 4 anos atrás
  lang ae5d118d65 更新昵称查询 há 4 anos atrás
  lang 7144153f3e 更新昵称查询 há 4 anos atrás
  lang a1152c0c4a 更新昵称查询 há 4 anos atrás
  lang d62cc814ba 更新昵称查询 há 4 anos atrás
  locky 13734c1cd4 打印信息 há 4 anos atrás
  locky 6b14056422 修改logger位置 há 4 anos atrás
  locky 22992310ec 打印qs_dict há 4 anos atrás
  locky ee0e5317ed 重置消息提醒_3 há 4 anos atrás
  locky 989c92befb 重置消息提醒_2 há 4 anos atrás
  locky 389658fdc8 重置消息提醒 há 4 anos atrás
  locky 5c768f05e6 修改配置 há 4 anos atrás
  locky 935819d9be 日志设置保存文件大小,重置消息提醒 há 4 anos atrás
  locky 502abc4485 设备重置添加打印信息 há 4 anos atrás
  locky 24730b90af 复位重置语音提示_2 há 4 anos atrás
  locky e7b7b67d2f 复位重置语音提示 há 4 anos atrás
  chenshibin ac1ba17ac8 重置门铃静音2 há 4 anos atrás
  chenshibin 464f8a0711 重置门铃静音 há 4 anos atrás
3 ficheiros alterados com 150 adições e 95 exclusões
  1. 4 2
      AnsjerPush/test_settings.py
  2. 106 92
      Controller/ShadowController.py
  3. 40 1
      Model/models.py

+ 4 - 2
AnsjerPush/test_settings.py

@@ -52,11 +52,13 @@ WSGI_APPLICATION = 'AnsjerPush.wsgi.application'
 
 
 # 服务器类型
+#国内宁夏测试业务数据库
 DATABASE_DATA = 'AnsjerTest'
-SERVER_HOST = 'database-2.clraczw4p0yj.us-west-1.rds.amazonaws.com'
+SERVER_HOST = 'business-server.cvp7gfpnmziz.rds.cn-northwest-1.amazonaws.com.cn'
 DATABASES_USER = 'azrds'
-DATABASES_PASS = 'azrds.x.x'
+DATABASES_PASS = 'UKv78ezQhiGMmSef5U5s'
 
+#推送数据库
 DATABASE_DATA2 = 'AnsjerTest'
 SERVER_HOST2 = 'ansjerpush.clraczw4p0yj.us-west-1.rds.amazonaws.com'
 DATABASES_USER2 = 'azrds'

+ 106 - 92
Controller/ShadowController.py

@@ -16,15 +16,18 @@
 # 生产环境
 # shadow.dvema.com
 # 设备影子更新
+import logging
+
 from Object.LogUtil import LogUtil
 from Object.ResponseObject import ResponseObject
 from Object.ETkObject import ETkObject
 import time
-from Model.models import Device_Info, UidSetModel, UID_Preview, VoicePromptModel, UID_Bucket
+from Model.models import Device_Info, UidSetModel, UID_Preview, VoicePromptModel, UID_Bucket, UidChannelSetModel
 from Service.CommonService import CommonService
 from django.http import JsonResponse
 from Object.UidTokenObject import UidTokenObject
 
+
 def generate_utk(request):
     request.encoding = 'utf-8'
     response = ResponseObject()
@@ -33,10 +36,10 @@ def generate_utk(request):
     elif request.method == 'POST':
         request_dict = request.POST
     else:
-        return response.json(444,'wrong method')
-    username = request_dict.get('username',None)
-    password = request_dict.get('password',None)
-    uid = request_dict.get('uid',None)
+        return response.json(444, 'wrong method')
+    username = request_dict.get('username', None)
+    password = request_dict.get('password', None)
+    uid = request_dict.get('uid', None)
     if username and password:
         if username == 'debug_user' and password == 'debug_password':
             # utko = UidTokenObject()
@@ -48,7 +51,7 @@ def generate_utk(request):
         else:
             return response.json(404)
     else:
-        return response.json(444,'username password')
+        return response.json(444, 'username password')
 
 
 # 设备影子更新
@@ -64,94 +67,105 @@ def update_device_shadow(request):
     etk = request_dict.get('etk', None)
     eto = ETkObject(etk)
     uid = eto.uid
-    if uid:
-        # 重置按钮
-        is_reset = request_dict.get('is_reset', None)
-        # 传1则重置设备信息
-        if is_reset == '1':
-            UidSetModel.objects.filter(uid=uid).delete()
-            # 重置设备,判断设备为已删除
-            nowTime = int(time.time())
-            uid_bucket = UID_Bucket.objects.filter(uid=uid, endTime__gte=nowTime).values('id', 'has_unused').order_by('addTime')
-            if not uid_bucket.exists():
-                di_qs = Device_Info.objects.filter(UID=uid)
-                di_qs.update(isExist=2)
-            # 删除预览图
-            uid_pre_qs = UID_Preview.objects.filter(uid=uid)
-            if uid_pre_qs.exists():
-                uid_pre_qs.delete()
+    if not uid:
+        return JsonResponse(status=200, data={'code': 403, 'msg': 'error etk'})
 
-            # 删除语音提示
-            voice_qs = VoicePromptModel.objects.filter(uid=uid)
-            if voice_qs.exists():
-                voice_qs.delete()
+    nowTime = int(time.time())
+    logger = logging.getLogger('info')
+    # 重置按钮
+    is_reset = request_dict.get('is_reset', None)
+    # 传1则重置设备信息
+    if is_reset == '1':
+        logger.info('设备重置: {}'.format(uid))
 
-        # return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
-        ucode = request_dict.get('ucode', None)
-        version = request_dict.get('version', None)
-        p2p_region = request_dict.get('p2p_region', None)
-        tz = request_dict.get('tz', None)
-        video_code = request_dict.get('video_code', None)
-        ip = CommonService.get_ip_address(request)
-        channel = request_dict.get('channel', None)
-        cloud_vod = request_dict.get('cloud_vod', None)
-        push_status = request_dict.get('push_status', None)
-        pwd = request_dict.get('pwd', None)
-        resetTime = request_dict.get('resetTime', None)
-        is_alexa = request_dict.get('is_alexa', None)
-        is_human = request_dict.get('is_human', None)
-        is_custom_voice = request_dict.get('is_custom', None)
-        double_wifi = request_dict.get('double_wifi', None)
+        # 重置语音提示
+        uid_channel_qs = UidChannelSetModel.objects.filter(uid__uid=uid)
+        if uid_channel_qs.exists():
+            uid_channel_qs.update(voice_prompt_intelligent_mute=0, voice_prompt_status=0, voice_prompt_enter=0,
+                           voice_prompt_leave=0)
 
-        us_qs = UidSetModel.objects.filter(uid=uid)
-        # 更新
-        nowTime = int(time.time())
+        # 删除uid_set数据
+        UidSetModel.objects.filter(uid=uid).delete()
 
-        print('-------')
-        print(resetTime)
-        print('-------')
-        qs_dict = {
-            'updTime': nowTime,
-            'ip': ip
-        }
-        if channel:
-            qs_dict['channel'] = channel
-        if p2p_region:
-            qs_dict['p2p_region'] = p2p_region
-        if ucode:
-            qs_dict['ucode'] = ucode
-        if version:
-            qs_dict['version'] = version
-        if tz:
-            qs_dict['tz'] = tz
-        if video_code:
-            qs_dict['video_code'] = video_code
-        if cloud_vod:
-            qs_dict['cloud_vod'] = cloud_vod
-        if push_status:
-            qs_dict['detect_status'] = push_status
-        if pwd:
-            qs_dict['pwd'] = pwd
-        if is_human:
-            qs_dict['is_human'] = is_human
-        if is_custom_voice:
-            qs_dict['is_custom_voice'] = is_custom_voice
-        if double_wifi:
-            qs_dict['double_wifi'] = double_wifi
-        if us_qs.exists():
-            if is_alexa and us_qs[0].is_alexa == 0:
-                qs_dict['is_alexa'] = is_alexa
-            us_qs.update(**qs_dict)
-            # 如果推送状态开启,返回推送url
-            return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
-        # 新增
-        else:
-            if is_alexa:
-                qs_dict['is_alexa'] = is_alexa
-            qs_dict['uid'] = uid
-            qs_dict['addTime'] = nowTime
-            UidSetModel.objects.create(**qs_dict)
-            # 如果推送状态开启,返回推送url
-            return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
+        # 购买云存套餐的设备isExist置为2
+        uid_bucket = UID_Bucket.objects.filter(uid=uid, endTime__gte=nowTime).values('id', 'has_unused').order_by(
+            'addTime')
+        if not uid_bucket.exists():
+            Device_Info.objects.filter(UID=uid).update(isExist=2)
+        # 删除预览图
+        uid_pre_qs = UID_Preview.objects.filter(uid=uid)
+        if uid_pre_qs.exists():
+            uid_pre_qs.delete()
+
+        # 删除语音提示
+        voice_qs = VoicePromptModel.objects.filter(uid=uid)
+        if voice_qs.exists():
+            voice_qs.delete()
+
+    # return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
+    ucode = request_dict.get('ucode', None)
+    version = request_dict.get('version', None)
+    p2p_region = request_dict.get('p2p_region', None)
+    tz = request_dict.get('tz', None)
+    video_code = request_dict.get('video_code', None)
+    ip = CommonService.get_ip_address(request)
+    channel = request_dict.get('channel', None)
+    cloud_vod = request_dict.get('cloud_vod', None)
+    push_status = request_dict.get('push_status', None)
+    pwd = request_dict.get('pwd', None)
+    resetTime = request_dict.get('resetTime', None)
+    is_alexa = request_dict.get('is_alexa', None)
+    is_human = request_dict.get('is_human', None)
+    is_custom_voice = request_dict.get('is_custom', None)
+    double_wifi = request_dict.get('double_wifi', None)
+
+    # 更新
+    qs_dict = {
+        'updTime': nowTime,
+        'ip': ip
+    }
+    if channel:
+        qs_dict['channel'] = channel
+    if p2p_region:
+        qs_dict['p2p_region'] = p2p_region
+    if ucode:
+        qs_dict['ucode'] = ucode
+    if version:
+        qs_dict['version'] = version
+    if tz:
+        qs_dict['tz'] = tz
+    if video_code:
+        qs_dict['video_code'] = video_code
+    if cloud_vod:
+        qs_dict['cloud_vod'] = cloud_vod
+    if push_status:
+        # 复位重置推送消息提醒
+        qs_dict['detect_status'] = 0 if is_reset == '1' else push_status
+    if pwd:
+        qs_dict['pwd'] = pwd
+    if is_human:
+        qs_dict['is_human'] = is_human
+    if is_custom_voice:
+        qs_dict['is_custom_voice'] = is_custom_voice
+    if double_wifi:
+        qs_dict['double_wifi'] = double_wifi
+
+    logger.info('{} qs_dict: {}'.format(uid, qs_dict))
+
+    us_qs = UidSetModel.objects.filter(uid=uid)
+    if us_qs.exists():
+        if is_alexa and us_qs[0].is_alexa == 0:
+            qs_dict['is_alexa'] = is_alexa
+        us_qs.update(**qs_dict)
+        # 如果推送状态开启,返回推送url
+        return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
+    # 新增
     else:
-        return JsonResponse(status=200, data={'code': 403, 'msg': 'error etk'})
+        if is_alexa:
+            qs_dict['is_alexa'] = is_alexa
+        qs_dict['uid'] = uid
+        qs_dict['addTime'] = nowTime
+        UidSetModel.objects.create(**qs_dict)
+        # 如果推送状态开启,返回推送url
+        return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
+

+ 40 - 1
Model/models.py

@@ -490,4 +490,43 @@ class UID_Bucket(models.Model):
         db_table = 'vod_uid_bucket'
         verbose_name = '设备关联套餐表'
         verbose_name_plural = verbose_name
-        ordering = ('id',)
+        ordering = ('id',)
+
+
+# 设备通道配置
+class UidChannelSetModel(models.Model):
+    id = models.AutoField(primary_key=True, verbose_name='自增id')
+    uid = models.ForeignKey(UidSetModel, to_field='id', on_delete=models.CASCADE)
+    channel = models.IntegerField(default=1, verbose_name='通道号')
+    channel_name = models.CharField(blank=True, default='', max_length=20, verbose_name=u'通道名')
+    pir_audio = models.SmallIntegerField(default=0, verbose_name='pir声音。0:关闭,1:开启')
+    mic_audio = models.SmallIntegerField(default=0, verbose_name='mic声音。0:关闭,1:开启')
+    battery_status = models.SmallIntegerField(default=0, verbose_name='低电量提醒状态。0:关闭,1:开启')
+    battery_level = models.SmallIntegerField(default=0, verbose_name='低电量提醒级别。0: 低于10%;1:低于25%;2:低于50%;3:低于75%')
+    sleep_status = models.SmallIntegerField(default=0, verbose_name='是否开启【休眠通知】。0:关闭;1:开启')
+    sleep_time = models.SmallIntegerField(default=0, verbose_name='摄像机进入休眠时间。0:不休眠;1:10秒;2:20秒;3:30秒')
+    light_night_model = models.IntegerField(default=0, verbose_name='夜视模式')  # 0:全彩模式,1:黑白模式,2:智能夜视模式
+    light_alarm_type = models.IntegerField(default=0, verbose_name='警报人形类型')  # 0为人形,1为移动,3是人形和移动侦测0x0f
+    # 声光报警级别: 0: 关闭,1:强烈声光告警,2:轻微声光告警,3: 强烈声告警,4:轻微声告警,5:强烈光告警
+    light_alarm_level = models.IntegerField(default=0, verbose_name='声光报警级别')
+    light_alarm_man_en = models.IntegerField(default=0, verbose_name='人为告警状态')  # 0:关,1:开
+    light_alarm_vol = models.IntegerField(default=0, verbose_name='报警音量')  # 音量值0-100
+    light_long_light = models.IntegerField(default=0, verbose_name='长亮')
+    voice_prompt_status = models.SmallIntegerField(default=0, verbose_name='个性语音提示快关。0:关闭,1:开启')
+    voice_prompt_enter = models.IntegerField(default=0, verbose_name='进入铃声id')
+    voice_prompt_leave = models.IntegerField(default=0, verbose_name='离开铃声id')
+    voice_prompt_intelligent_mute = models.SmallIntegerField(default=0, verbose_name='智能静音。0:关闭,1:开启')
+    voice_start_x = models.FloatField(default=0, verbose_name='起始坐标的x')
+    voice_start_y = models.FloatField(default=18, verbose_name='起始坐标的y')
+    voice_end_x = models.FloatField(default=44, verbose_name='结束坐标的x')
+    voice_end_y = models.FloatField(default=18, verbose_name='结束坐标的y')
+    voice_start_time = models.IntegerField(default=0, verbose_name='语音执行的起始时间')
+    voice_end_time = models.IntegerField(default=0, verbose_name='语音执行的结束时间')
+    voice_repeat_day = models.IntegerField(default=127, verbose_name='语音执行的日期,周几')
+    voice_direction = models.IntegerField(default=0, verbose_name='语音方向。')
+
+    class Meta:
+        db_table = 'uid_channel'
+        verbose_name = '设备通道设置'
+        verbose_name_plural = verbose_name
+        app_label = "db1"