Browse Source

缩短二维码

chenjunkai 6 years ago
parent
commit
20cabd0b3a
3 changed files with 118 additions and 23 deletions
  1. 4 4
      Controller/AppInfo.py
  2. 19 16
      Controller/DeviceShare.py
  3. 95 3
      Controller/UidappController.py

+ 4 - 4
Controller/AppInfo.py

@@ -214,9 +214,9 @@ class AppVersionView(View):
         appBundleId = request_dict.get('appBundleId', None)
         appBundleId = request_dict.get('appBundleId', None)
         app_type = request_dict.get('app_type', None)
         app_type = request_dict.get('app_type', None)
         lang = request_dict.get('lang', None)
         lang = request_dict.get('lang', None)
-        qs = App_Info.objects.filter(appBundleId=appBundleId,app_type=app_type).values('content')
-        ql = CommonService.qs_to_list(qs)
-        for q in ql:
-            data.append(json.loads(q['content'], strict=False))
+        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):
+            data.append(json.loads(queryset_dict[k]['fields']['content']))
         return render_to_response('appVerList.html', locals())
         return render_to_response('appVerList.html', locals())
 
 

+ 19 - 16
Controller/DeviceShare.py

@@ -67,11 +67,14 @@ class DeviceShareView(View):
         userqs = Device_User.objects.filter(userID=userID).values('username', 'userEmail', 'phone')
         userqs = Device_User.objects.filter(userID=userID).values('username', 'userEmail', 'phone')
         if dvqs:
         if dvqs:
             data = {'sharer': userID, 'UID': UID}
             data = {'sharer': userID, 'UID': UID}
-            share_token = jwt.encode(data, '.#^^&', algorithm='HS256').decode('utf-8')
-            # redisObj = RedisObject()
-            # share_token = str(int(time.time())) + CommonService.RandomStr(8)
-            # if not redisObj.set_data(key=share_token, val=json.dumps(data),expire=3600):
-            #     return response.json(10,'生成失败')
+            # -----------------
+            # share_token = jwt.encode(data, '.#^^&', algorithm='HS256').decode('utf-8')
+            # +++++++++++++++++
+            redisObj = RedisObject()
+            share_token = str(int(time.time())) + CommonService.RandomStr(8)
+            if not redisObj.set_data(key=share_token, val=json.dumps(data), expire=3600):
+                return response.json(10, '生成失败')
+            # =================
             if userqs[0]['username']:
             if userqs[0]['username']:
                 share_user = userqs[0]['username']
                 share_user = userqs[0]['username']
             elif userqs[0]['userEmail']:
             elif userqs[0]['userEmail']:
@@ -92,17 +95,17 @@ class DeviceShareView(View):
     def do_confirm(self, userID, request_dict, response):
     def do_confirm(self, userID, request_dict, response):
         shareToken = request_dict.get('shareToken', None)
         shareToken = request_dict.get('shareToken', None)
         if shareToken is not None:
         if shareToken is not None:
-            try:
-                data = jwt.decode(shareToken, '.#^^&', algorithms='HS256')
-            except Exception as e:
-                return response.json(10,repr(e))
-            # redisObj = RedisObject()
-            # data_str = redisObj.get_data(key=shareToken)
-            # if not data_str:
-            #     return response.json(404)
-            # else:
-            #     redisObj.del_data(key=shareToken)
-            # data = json.loads(data_str)
+            # try:
+            #     data = jwt.decode(shareToken, '.#^^&', algorithms='HS256')
+            # except Exception as e:
+            #     return response.json(10, repr(e))
+            redisObj = RedisObject()
+            data_str = redisObj.get_data(key=shareToken)
+            if not data_str:
+                return response.json(404)
+            else:
+                redisObj.del_data(key=shareToken)
+            data = json.loads(data_str)
             # 分享者userID
             # 分享者userID
             sharer = data.get('sharer', None)
             sharer = data.get('sharer', None)
             # 分享的uid
             # 分享的uid

+ 95 - 3
Controller/UidappController.py

@@ -9,6 +9,7 @@ from Model.models import UID_App
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 import traceback
 import traceback
+
 '''
 '''
 # 管理员获取信息
 # 管理员获取信息
 http://192.168.136.39:8000/uidApp/adminQuery?token=local&page=1&line=10
 http://192.168.136.39:8000/uidApp/adminQuery?token=local&page=1&line=10
@@ -59,7 +60,6 @@ class UidappView(View):
         else:
         else:
             return response.json(444, 'error path')
             return response.json(444, 'error path')
 
 
-
     # 管理员删除
     # 管理员删除
     def do_admin_delete(self, request_dict, userID, response):
     def do_admin_delete(self, request_dict, userID, response):
         own_perm = ModelService.check_perm(userID, 20)
         own_perm = ModelService.check_perm(userID, 20)
@@ -77,6 +77,7 @@ class UidappView(View):
                 return response.json(424, repr(e))
                 return response.json(424, repr(e))
         else:
         else:
             return response.json(404)
             return response.json(404)
+
     # 管理员查询接口
     # 管理员查询接口
     def do_admin_query(self, request_dict, userID, response):
     def do_admin_query(self, request_dict, userID, response):
         own_perm = ModelService.check_perm(userID, 20)
         own_perm = ModelService.check_perm(userID, 20)
@@ -89,13 +90,14 @@ class UidappView(View):
             if not omqs.exists():
             if not omqs.exists():
                 return response.json(0, [])
                 return response.json(0, [])
             count = omqs.count()
             count = omqs.count()
-            order_ql = omqs[(page - 1) * line:page * line].\
-                values("id","uid","app_type","token_val","addTime","updTime","app__id","app__appName")
+            order_ql = omqs[(page - 1) * line:page * line]. \
+                values("id", "uid", "app_type", "token_val", "addTime", "updTime", "app__id", "app__appName")
             order_list = list(order_ql)
             order_list = list(order_ql)
             return response.json(0, {'data': order_list, 'count': count})
             return response.json(0, {'data': order_list, 'count': count})
 
 
         else:
         else:
             return response.json(404)
             return response.json(404)
+
     # 管理员的添加
     # 管理员的添加
     def do_admin_add(self, request_dict, userID, response):
     def do_admin_add(self, request_dict, userID, response):
         own_perm = ModelService.check_perm(userID=userID, permID=40)
         own_perm = ModelService.check_perm(userID=userID, permID=40)
@@ -147,3 +149,93 @@ class UidappView(View):
             errorInfo = traceback.format_exc()
             errorInfo = traceback.format_exc()
             print(errorInfo)
             print(errorInfo)
             return response.json(500, {'details': errorInfo})
             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