Parcourir la source

增加app版本信息内容

chenjunkai il y a 6 ans
Parent
commit
ffbf04c0dd

+ 5 - 0
Controller/AppInfo.py

@@ -214,6 +214,11 @@ class AppVersionView(View):
         appBundleId = request_dict.get('appBundleId', None)
         app_type = request_dict.get('app_type', None)
         lang = request_dict.get('lang', None)
+        if lang == 'cn':
+            return render_to_response('appVersionLists_cn.html')
+        else:
+            return render_to_response('appVersionLists_en.html')
+        
         queryset = App_Info.objects.filter(appBundleId=appBundleId,app_type=app_type)
         queryset_dict = CommonService.qs_to_dict(queryset).get('datas')
         for k, v in enumerate(queryset_dict):

+ 147 - 6
Controller/DetectController.py

@@ -19,6 +19,9 @@ import apns2
 from Object.ResponseObject import ResponseObject
 import os
 from Ansjer.config import BASE_DIR
+from Object.TokenObject import TokenObject
+import jpush as jpush
+from Model.models import Device_User, Device_Info, Equipment_Info, App_Info,UID_App
 
 
 class DetectControllerView(View):
@@ -29,19 +32,35 @@ class DetectControllerView(View):
     def get(self, request, *args, **kwargs):
         request.encoding = 'utf-8'
         operation = kwargs.get('operation')
-        return self.validation(request.GET, request, operation)
+        return self.validation(request.GET, operation)
 
     def post(self, request, *args, **kwargs):
         request.encoding = 'utf-8'
         operation = kwargs.get('operation')
-        return self.validation(request.POST, request, operation)
+        return self.validation(request.POST, operation)
 
-    def validation(self, request_dict, request, operation):
+    def validation(self, request_dict, operation):
         response = ResponseObject()
         if operation is None:
             return response.json(444, 'error path')
-        if operation == 'push':
-            return self.do_push(request_dict, response)
+        token = request_dict.get('token', None)
+        uid = request_dict.get('uid', None)
+        tko = TokenObject(token)
+        if tko.code == 0:
+            userID = tko.userID
+            if operation == 'changeStatus':
+                return self.do_change_status(userID, uid, response)
+            else:
+                return response.json(414)
+        else:
+            return response.json(tko.code)
+
+    def do_change_status(self, userID, uid,response):
+        dvqs = Device_Info.objects.filter(userID_id=userID, UID=uid)
+        if dvqs.exists():
+            return
+        else:
+            return response.json(173)
 
     def do_push(self, request_dict, response):
         device_token = request_dict.get('device_token')
@@ -64,4 +83,126 @@ class DetectControllerView(View):
         except Exception as e:
             return response.json(10, repr(e))
 
-    # def do_
+
+class NotificationView(View):
+
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.GET, operation)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.POST, operation)
+
+    def validation(self, request_dict, operation):
+        response = ResponseObject()
+        if operation is None:
+            return response.json(444, 'error path')
+        uidToken = request_dict.get('uidToken', None)
+        time = request_dict.get('time', None)
+
+        # 设备主键uid
+        tko = TokenObject(uidToken)
+        response.lang = tko.lang
+        if tko.code != 0:
+            if operation == 'jpush':
+                return
+            elif operation == 'gcm':
+                return
+            elif operation == 'apns':
+                return
+            else:
+                return response.json(414)
+        else:
+            return response.json(tko.code)
+
+    def do_jpush(self):
+        jpush_config = {
+            'com.ansjer.accloud_ab': {
+                'Key': 'f0dc047e5e53fd14199de5b0',
+                'Secret': 'aa7f7db33e9f0a7f3871aa1c'},
+            'com.ansjer.adcloud_ab': {
+                'Key': '76d97b535185114985608234',
+                'Secret': 'c9a92b301043cc9c52778692'},
+            'com.ansjer.zccloud_ab': {
+                'Key': 'd9924f56d3cc7c6017965130',
+                'Secret': '869d832d126a232f158b5987'},
+            'com.ansjer.loocamccloud_ab': {
+                'Key': 'd1cc44797b4642b0e05304fe',
+                'Secret': 'c3e8b4ca8c576de61401e56a'},
+            'com.ansjer.loocamdcloud_ab': {
+                'Key': '76d97b535185114985608234',
+                'Secret': 'c9a92b301043cc9c52778692'},
+            'com.ansjer.zccloud_a': {
+                'Key': '57de2a80d68bf270fd6bdf5a',
+                'Secret': '3d354eb6a0b49c2610decf42'},
+            'com.ansjer.accloud_a': {
+                'Key': 'ff95ee685f49c0dc4013347b',
+                'Secret': 'de2c20959f5516fdeeafe78e'},
+            'com.ansjer.adcloud_a': {
+                'Key': '2e47eb1aee9b164460df3668',
+                'Secret': 'b9137d8d684bc248f1809b6d'},
+            'com.ansjer.loocamccloud_a': {
+                'Key': '23c9213215c7ca0ec945629b',
+                'Secret': '81e4b1e859cc8387e2e6c431'},
+            'com.ansjer.loocamdcloud_a': {
+                'Key': '1dbdd60a16e9892d6f68a073',
+                'Secret': '80a97690e7e043109059b403'},
+            'com.ansjer.customizedb_a': {
+                'Key': '9d79630aa49adfa291fe2568',
+                'Secret': '4d8ff52f88136561875a0212'},
+        }
+        response = ResponseObject()
+        devToken = ''
+        app_key = ''
+        master_secret = ''
+
+        # 此处换成各自的app_key和master_secret
+        _jpush = jpush.JPush(app_key, master_secret)
+        push = _jpush.create_push()
+        # if you set the logging level to "DEBUG",it will show the debug logging.
+        _jpush.set_logging("DEBUG")
+        # push.audience = jpush.all_
+        push.audience = jpush.registration_id(devToken)
+
+        push.notification = jpush.notification(alert="hello python jpush api")
+        push.platform = jpush.all_
+        try:
+            res = push.send()
+        except Exception as e:
+            print("Exception")
+            return response.json(10, repr(e))
+        return response.json(0)
+
+    def do_gmc(self):
+        import json
+        import requests
+
+        data = {
+            "key1": "abc",
+            "key2": "def"
+        }
+
+        json_data = {
+            "collapse_key": "WhatYouWant",
+            "data": data,
+            "delay_while_idle": False,
+            "time_to_live": 3600,
+            "registration_ids": [
+                'eSooD4fAARg:APA91bEPenBPnSn5aXIQk56QdLOQ1Mu3hevHsekP_0eDpg458y2ZMBP6By2rVsGYIoxZrXxvkkptPKUE9CmUygBxaZXABddUWB9FyLlznRFerC7RG9X5PsEOH58xK9_aTUdkT7p6Ocld']
+        }
+
+        url = 'https://android.googleapis.com/gcm/send'
+        serverKey = "AAAAb9YP3rk:APA91bHu8u-CTpcd0g6lKPo0WNVqCi8jZub1cPPbSAY9AucT1HxlF65ZDUko9iG8q2ch17bwu9YWHpK1xI1gHSRXCslLvZlXEmHZC0AG3JKg15XuUvlFKACIajUFV-pOeGRT8tM6-31I"
+
+        data = json.dumps(json_data).encode('utf-8')
+        headers = {'Content-Type': 'application/json', 'Authorization': 'key=%s' % serverKey}
+        req = requests.post(url, data, headers=headers)
+        response = ResponseObject()
+
+        return response.json(0)
+
+    def do_apns(self):
+        return

+ 4 - 89
Controller/UidappController.py

@@ -1,14 +1,16 @@
 import time
+import traceback
+
 import simplejson as json
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
+
+from Model.models import UID_App
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
-from Model.models import UID_App
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
-import traceback
 
 '''
 # 管理员获取信息
@@ -151,91 +153,4 @@ class UidappView(View):
             return response.json(500, {'details': errorInfo})
 
 
-class NotificationView(View):
-
-    def get(self, request, *args, **kwargs):
-        request.encoding = 'utf-8'
-        operation = kwargs.get('operation')
-        return self.validation(request.GET, request, operation)
-
-    def post(self, request, *args, **kwargs):
-        request.encoding = 'utf-8'
-        operation = kwargs.get('operation')
-        return self.validation(request.POST, request, operation)
-
-    def validation(self, request_dict, request, operation):
-        response = ResponseObject()
-        if operation is None:
-            return response.json(444, 'error path')
-        token = request_dict.get('token', None)
-        time = request_dict.get('time',None)
-
-        # 设备主键uid
-        tko = TokenObject(token)
-        response.lang = tko.lang
-        if tko.code != 0:
-            if operation == 'jpush':
-                return
-            elif operation == 'gcm':
-                return
-            elif operation == 'apns':
-                return
-            else:
-                return response.json(414)
-        else:
-            return response.json(tko.code)
-
-    def do_jpush(self):
-        response = ResponseObject()
-        devToken = ''
-        app_key = ''
-        master_secret = ''
-        import jpush as jpush
-
-        # 此处换成各自的app_key和master_secret
-        _jpush = jpush.JPush(app_key, master_secret)
-        push = _jpush.create_push()
-        # if you set the logging level to "DEBUG",it will show the debug logging.
-        _jpush.set_logging("DEBUG")
-        # push.audience = jpush.all_
-        push.audience = jpush.registration_id(devToken)
-
-        push.notification = jpush.notification(alert="hello python jpush api")
-        push.platform = jpush.all_
-        try:
-            res = push.send()
-        except Exception as e:
-            print("Exception")
-            return response.json(10, repr(e))
-        return response.json(0)
-
-    def do_gmc(self):
-        import json
-        import requests
-
-        data = {
-            "key1": "abc",
-            "key2": "def"
-        }
-
-        json_data = {
-            "collapse_key": "WhatYouWant",
-            "data": data,
-            "delay_while_idle": False,
-            "time_to_live": 3600,
-            "registration_ids": [
-                'eSooD4fAARg:APA91bEPenBPnSn5aXIQk56QdLOQ1Mu3hevHsekP_0eDpg458y2ZMBP6By2rVsGYIoxZrXxvkkptPKUE9CmUygBxaZXABddUWB9FyLlznRFerC7RG9X5PsEOH58xK9_aTUdkT7p6Ocld']
-        }
-
-        url = 'https://android.googleapis.com/gcm/send'
-        serverKey = "AAAAb9YP3rk:APA91bHu8u-CTpcd0g6lKPo0WNVqCi8jZub1cPPbSAY9AucT1HxlF65ZDUko9iG8q2ch17bwu9YWHpK1xI1gHSRXCslLvZlXEmHZC0AG3JKg15XuUvlFKACIajUFV-pOeGRT8tM6-31I"
-
-        data = json.dumps(json_data).encode('utf-8')
-        headers = {'Content-Type': 'application/json', 'Authorization': 'key=%s' % serverKey}
-        req = requests.post(url, data, headers=headers)
-        response = ResponseObject()
-
-        return response.json(0)
 
-    def do_apns(self):
-        return

+ 14 - 13
Model/models.py

@@ -8,7 +8,6 @@ from imagekit.models import ProcessedImageField
 from imagekit.processors import ResizeToFill
 
 from Ansjer.config import SERVER_DOMAIN
-from Service.CommonService import CommonService
 
 
 class PermissionsManager(models.Manager):
@@ -206,18 +205,18 @@ class Device_Info(models.Model):
     id = models.CharField(blank=True, max_length=32, primary_key=True)
     userID = models.ForeignKey(Device_User, blank=True, to_field='userID', on_delete=models.CASCADE)
     NickName = models.CharField(blank=True, max_length=32, verbose_name=u'设备名称')
-    UID = models.CharField(blank=True, max_length=32, verbose_name=u'设备UID',default='')
-    SID = models.CharField(blank=True, max_length=32, verbose_name=u'服务器ID',default='')
-    View_Account = models.CharField(blank=True, max_length=32, verbose_name=u'设备用户名称',default='')
-    View_Password = models.CharField(blank=True, max_length=32, verbose_name=u'设备密码',default='')
+    UID = models.CharField(blank=True, max_length=32, verbose_name=u'设备UID', default='')
+    SID = models.CharField(blank=True, max_length=32, verbose_name=u'服务器ID', default='')
+    View_Account = models.CharField(blank=True, max_length=32, verbose_name=u'设备用户名称', default='')
+    View_Password = models.CharField(blank=True, max_length=32, verbose_name=u'设备密码', default='')
     AudioFormat = models.IntegerField(blank=True, default=1, verbose_name=u'初始化影像')
-    EventNotification = models.IntegerField(blank=True, verbose_name=u'报警类型',default=0)
-    ChannelIndex = models.IntegerField(blank=True, verbose_name=u'通道号',default=0)
+    EventNotification = models.IntegerField(blank=True, verbose_name=u'报警类型', default=0)
+    ChannelIndex = models.IntegerField(blank=True, verbose_name=u'通道号', default=0)
     Online = models.BooleanField(blank=True, default=False, verbose_name=u'设备是否在线')
     mMonitorIndex = models.IntegerField(blank=True, default=-1)
-    Type = models.IntegerField(blank=True,verbose_name='设备类型')
-    DebugMode = models.IntegerField(blank=True, verbose_name=u'调试模式',default=0)
-    NotificationMode = models.IntegerField(blank=True, verbose_name=u'是否报警',default=0)
+    Type = models.IntegerField(blank=True, verbose_name='设备类型')
+    DebugMode = models.IntegerField(blank=True, verbose_name=u'调试模式', default=0)
+    NotificationMode = models.IntegerField(blank=True, verbose_name=u'是否报警', default=0)
     qvgaLevel = models.BooleanField(blank=True, verbose_name=u'SD与HD画面', default=0,
                                     help_text=u'0代表:SD、1代表:HD')
     isShare = models.BooleanField(blank=True, verbose_name=u'共享设备',
@@ -393,7 +392,7 @@ class Store_Meal(models.Model):
     day = models.IntegerField(default=0, blank=True, verbose_name=u'套餐天数')
     content = models.TextField(blank=True, null=True, verbose_name=u'描述')
     add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
-    type = models.SmallIntegerField(default=0,verbose_name='付款类型') # 0 是paypal,1为支付宝
+    type = models.SmallIntegerField(default=0, verbose_name='付款类型')  # 0 是paypal,1为支付宝
     update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
     bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, default=1,
                                verbose_name='存储空间')
@@ -477,7 +476,7 @@ class Order_Model(models.Model):
     # 订单关联套餐
     rank = models.ForeignKey(Store_Meal, to_field='id', default='', on_delete=models.CASCADE, verbose_name='套餐类型')
     paypal = models.CharField(max_length=150, default='', verbose_name='paypal付款url')
-    payType = models.SmallIntegerField(default=0,verbose_name='付款类型0:paypal,1:alipay')
+    payType = models.SmallIntegerField(default=0, verbose_name='付款类型0:paypal,1:alipay')
 
     def __str__(self):
         return self.orderID
@@ -493,7 +492,7 @@ class VodHlsModel(models.Model):
     id = models.AutoField(primary_key=True, verbose_name='回放列表主键')
     uid = models.CharField(max_length=20, verbose_name='设备UID')
     channel = models.SmallIntegerField(default=0, verbose_name='通道')
-    time = models.IntegerField(verbose_name='播放列表名字时间戳', default=0,db_index=True)
+    time = models.IntegerField(verbose_name='播放列表名字时间戳', default=0, db_index=True)
     endTime = models.IntegerField(verbose_name='删除时间', default=0)
     sec = models.IntegerField(verbose_name='秒数', default=0)
     bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, default=1,
@@ -542,6 +541,7 @@ class UID_Bucket(models.Model):
         verbose_name_plural = verbose_name
         ordering = ('id',)
 
+
 class UID_App(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     uid = models.CharField(max_length=20, verbose_name='设备UID')
@@ -551,6 +551,7 @@ class UID_App(models.Model):
     token_val = models.CharField(default='', max_length=160, verbose_name=u'设备验证令牌')
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
     updTime = models.IntegerField(verbose_name='更新时间', default=0)
+
     class Meta:
         db_table = 'uid_app'
         verbose_name = u'设备关联APP表'

+ 0 - 2
Object/UidTokenObject.py

@@ -18,8 +18,6 @@ import jwt
 class UidTokenObject:
 
     def __init__(self, token=None):
-        if token == 'local':
-            token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiJGVFNMTDhITTQzN1ozOFdVMTExQSIsImNoYW5uZWwiOiIyIn0.uyRvPUB7Bp9X0dAOAsGWOpYuQTKFGbOBOMPz_pIzPMw'
         self.token = token
         self.UID = ''
         self.channel = ''

+ 44 - 0
templates/appVersionLists_cn.html

@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <title>LayoutIt! - Bootstrap 4</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="">
+    <meta name="author" content="LayoutIt!">
+    <link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
+</head>
+
+<body>
+<div class="container-fluid">
+    <div class="row">
+        <div class="col-md-4">
+        </div>
+        <div class="col-md-4">
+            <h3>
+                V.1.8.3
+            </h3>
+            <p>
+                我是更新内容
+            </p>
+            <h3>
+                V.1.7.3
+            </h3>
+            <p>
+                我是更新内容
+            </p>
+            <h3>
+                V.1.6.3
+            </h3>
+            <p>
+                我是更新内容
+            </p>
+        </div>
+        <div class="col-md-4">
+        </div>
+    </div>
+</div>
+</body>
+
+</html>

+ 44 - 0
templates/appVersionLists_en.html

@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <title>LayoutIt! - Bootstrap 4</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="">
+    <meta name="author" content="LayoutIt!">
+    <link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
+</head>
+
+<body>
+<div class="container-fluid">
+    <div class="row">
+        <div class="col-md-4">
+        </div>
+        <div class="col-md-4">
+            <h3>
+                V.1.8.3
+            </h3>
+            <p>
+                This is an update
+            </p>
+            <h3>
+                V.1.7.3
+            </h3>
+            <p>
+                This is an update
+            </p>
+            <h3>
+                V.1.6.3
+            </h3>
+            <p>
+                This is an update
+            </p>
+        </div>
+        <div class="col-md-4">
+        </div>
+    </div>
+</div>
+</body>
+
+</html>