Quellcode durchsuchen

feature:
1,增加设备预览图
2,设备添接口增加获取预览图

chenjunkai vor 6 Jahren
Ursprung
Commit
13ac4a1704
3 geänderte Dateien mit 132 neuen und 2 gelöschten Zeilen
  1. 1 1
      Ansjer/urls.py
  2. 12 1
      Controller/EquipmentManager.py
  3. 119 0
      Controller/UIDPreview.py

+ 1 - 1
Ansjer/urls.py

@@ -134,7 +134,7 @@ urlpatterns = [
 
     # 用户反馈信息
     url(r'^feedback/(?P<operation>.*)$', FeedBackInfo.FeedBackInfoView.as_view()),
-    url(r'^uidpreview/add$', EquipmentStatus.addUIDPreview),
+    url(r'^uidpreview/(?P<operation>.*)$', EquipmentStatus.addUIDPreview),
 
     # 新的设备接口
     path('Test', Test.Test.as_view()),

+ 12 - 1
Controller/EquipmentManager.py

@@ -4,12 +4,14 @@ import traceback
 
 import simplejson as json
 from django.utils import timezone
-from Model.models import Device_User, Device_Info, UID_Bucket, UID_App
+from Model.models import Device_User, Device_Info, UID_Bucket, UID_App,UID_Preview
 from django.db.models import Q
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
+from Ansjer.config import OSS_STS_ACCESS_SECRET,OSS_STS_ACCESS_KEY
+import oss2
 
 
 #     查询用户设备
@@ -587,6 +589,9 @@ def queryInterface(request):
                 uid_list.append(dvl['UID'])
         ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
             values('bucket__content', 'status', 'channel', 'endTime', 'uid')
+        upqs = UID_Preview.objects.filter(uid__in=uid_list).values('id','uid','channel')
+        auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+        uidPreview_bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
         nowTime = int(time.time())
         data = []
         for p in dvls:
@@ -595,6 +600,12 @@ def queryInterface(request):
                 if p['UID'] == dm['uid']:
                     if dm['endTime'] > nowTime:
                         p['vod'].append(dm)
+            p['preview'] = []
+            for up in upqs:
+                if p['UID'] == up['uid']:
+                    obj = 'uid_preview/{uid}/{channel}.jpeg'.format(uid=up['uid'], channel=up['channel'])
+                    img_sign = uidPreview_bucket.sign_url('GET', obj, 300)
+                    p['preview'].append(img_sign)
             data.append(p)
         return response.json(0, {'data': data, 'count': count})
     else:

+ 119 - 0
Controller/UIDPreview.py

@@ -0,0 +1,119 @@
+#!/usr/bin/env python3  
+# -*- coding: utf-8 -*-  
+"""
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
+@AUTHOR: ASJRD018
+@NAME: AnsjerFormal
+@software: PyCharm
+@DATE: 2019/5/13 17:35
+@Version: python3.6
+@MODIFY DECORD:ansjer dev
+@file: UIDPreview.py
+@Contact: chanjunkai@163.com
+"""
+# !/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
+@AUTHOR: ASJRD018
+@NAME: AnsjerFormal
+@software: PyCharm
+@DATE: 2018/12/6 10:53
+@Version: python3.6
+@MODIFY DECORD:ansjer dev
+@file: OrderContrller.py
+@Contact: chanjunkai@163.com
+"""
+import time
+
+import oss2
+from django.views.generic.base import View
+
+from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY
+from Model.models import UID_Preview, Device_Info
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+
+'''
+# 获取所有设备下单信息
+http://192.168.136.40:8077/order/querylist?token=local&page=1&line=10
+'''
+
+
+# 设备信息添加
+class UIDPreview(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()
+        token = request_dict.get('token', None)
+        # 设备主键uid
+        tko = TokenObject(token)
+        if tko.code == 0:
+            response.lang = tko.lang
+            userID = tko.userID
+            if operation == 'add':
+                return self.do_add(userID, request_dict, response)
+            # if operation == 'query':
+            #     return self.do_query(userID, request_dict, response)
+            else:
+                return response.json(414)
+        else:
+            return response.json(tko.code)
+
+    def do_add(self, userID, request_dict, response):
+        nowTime = int(time.time())
+        uid = request_dict.get('uid', None)
+        channel = request_dict.get('channel', None)
+        if all([uid, channel]):
+            dvqs = Device_Info.objects.filter(UID=uid, userID_id=userID)
+            upqs = UID_Preview.objects.filter(uid=uid, channel=channel)
+            if dvqs.exists():
+                if upqs.exists():
+                    try:
+                        is_update = upqs.update(updTime=nowTime)
+                    except Exception as e:
+                        print(repr(e))
+                        return response.json(177)
+                    else:
+                        if is_update:
+                            auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+                            bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
+                            obj = 'uid_preview/{uid}/{channel}.jpeg'.format(uid=uid, channel=channel)
+                            # 设置此签名URL在60秒内有效。
+                            url = bucket.sign_url('PUT', obj, 7200)
+                            return response.json(0, url)
+                        else:
+                            return response.json(177)
+                else:
+                    create_data = {
+                        'addTime': nowTime,
+                        'updTime': nowTime,
+                        'uid': uid,
+                        'channel': channel
+                    }
+                    try:
+                        UID_Preview.objects.create(**create_data)
+                    except Exception as e:
+                        print(repr(e))
+                        return response.json(178)
+                    else:
+                        auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+                        bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
+                        obj = 'uid_preview/{uid}/{channel}.jpeg'.format(uid=uid, channel=channel)
+                        # 设置此签名URL在60秒内有效。
+                        url = bucket.sign_url('PUT', obj, 7200)
+                        return response.json(0, url)
+            else:
+                return response.json(14)
+        else:
+            return response.json(444, 'uid,channel')